From 2ef42f3408ee701f64cb140316bf66225300b2ae Mon Sep 17 00:00:00 2001 From: Caleb Zulawski Date: Wed, 12 Nov 2025 15:37:48 -0500 Subject: [PATCH] Call compilers directly rather than use wrapper scripts --- bazel/detail/args/BUILD | 4 +- bazel/detail/tools/BUILD | 70 ++++++++-------------------------- bazel/detail/tools/wrapper.bat | 4 -- bazel/detail/tools/wrapper.ps1 | 19 --------- bazel/detail/tools/wrapper.sh | 13 ------- 5 files changed, 17 insertions(+), 93 deletions(-) delete mode 100644 bazel/detail/tools/wrapper.bat delete mode 100644 bazel/detail/tools/wrapper.ps1 delete mode 100644 bazel/detail/tools/wrapper.sh diff --git a/bazel/detail/args/BUILD b/bazel/detail/args/BUILD index 5fe4621..5b5ffcc 100644 --- a/bazel/detail/args/BUILD +++ b/bazel/detail/args/BUILD @@ -90,14 +90,14 @@ cc_args( '-D__DATE__="redacted"', '-D__TIMESTAMP__="redacted"', '-D__TIME__="redacted"', - "-ffile-prefix-map=__BAZEL_EXECUTION_ROOT__=.", + "-ffile-compilation-dir=.", ], ) cc_args( name = "reproducible_link_args_apple", actions = ["@rules_cc//cc/toolchains/actions:link_actions"], - args = ["-Wl,-oso_prefix,__BAZEL_EXECUTION_ROOT__/"], + args = ["-Wl,-oso_prefix,."], ) cc_args_list( diff --git a/bazel/detail/tools/BUILD b/bazel/detail/tools/BUILD index 59a49c5..41a24e2 100644 --- a/bazel/detail/tools/BUILD +++ b/bazel/detail/tools/BUILD @@ -46,69 +46,29 @@ TOOL = [ "llvm-cov", "llvm-strip", "clang-tidy", + "clang", + "clang++", + "clang-cl", ] +EXE_EXT = ".exe" if "windows" in HOST_TARGET else "" + [ cc_tool( name = tool, - src = select({ - "@platforms//os:windows": "@llvm-{}//:bin/{}.exe".format(HOST_TARGET, tool), - "//conditions:default": "@llvm-{}//:bin/{}".format(HOST_TARGET, tool), + src = "@llvm-{}//:bin/{}{}".format(HOST_TARGET, tool, EXE_EXT), + capabilities = select({ + "@platforms//os:windows": [ + # "@rules_cc//cc/toolchains/capabilities:supports_dynamic_linker", + # "@rules_cc//cc/toolchains/capabilities:supports_interface_shared_libraries", + # "@rules_cc//cc/toolchains/capabilities:targets_windows", + # "@rules_cc//cc/toolchains/capabilities:has_configured_linker_path", + # "@rules_cc//cc/toolchains/capabilities:copy_dynamic_libraries_to_binary", + ], + "//conditions:default": [], }), data = ["@llvm-{}//:data".format(HOST_TARGET)], visibility = ["//visibility:private"], ) for tool in TOOL ] - -SCRIPT_EXT = ".ps1" if "windows" in HOST_TARGET else ".sh" - -CALL_SCRIPT_EXT = ".bat" if "windows" in HOST_TARGET else ".sh" - -EXE_EXT = ".exe" if "windows" in HOST_TARGET else "" - -[ - ( - expand_template( - name = tool + "_wrapper", - out = tool + SCRIPT_EXT, - data = ["@llvm-{}//:bin/{}{}".format(HOST_TARGET, tool, EXE_EXT)], - substitutions = { - "{{TOOL}}": "$(execpath @llvm-{}//:bin/{}{})".format(HOST_TARGET, tool, EXE_EXT), - }, - template = "wrapper" + SCRIPT_EXT, - ), - expand_template( - name = tool + "_bat", - out = tool + ".bat", - substitutions = { - "{{TOOL}}": tool, - }, - template = "wrapper.bat", - ), - cc_tool( - name = tool, - src = tool + CALL_SCRIPT_EXT, - capabilities = select({ - "@platforms//os:windows": [ - # "@rules_cc//cc/toolchains/capabilities:supports_dynamic_linker", - # "@rules_cc//cc/toolchains/capabilities:supports_interface_shared_libraries", - # "@rules_cc//cc/toolchains/capabilities:targets_windows", - # "@rules_cc//cc/toolchains/capabilities:has_configured_linker_path", - # "@rules_cc//cc/toolchains/capabilities:copy_dynamic_libraries_to_binary", - ], - "//conditions:default": [], - }), - data = [ - "@llvm-{}//:data".format(HOST_TARGET), - tool + "_wrapper", - ], - visibility = ["//visibility:private"], - ), - ) - for tool in [ - "clang", - "clang++", - "clang-cl", - ] -] diff --git a/bazel/detail/tools/wrapper.bat b/bazel/detail/tools/wrapper.bat deleted file mode 100644 index 70b49c1..0000000 --- a/bazel/detail/tools/wrapper.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -powershell -ExecutionPolicy Bypass -File "%~dp0{{TOOL}}.ps1" %* -set exitcode=%errorlevel% -exit /b %exitcode% diff --git a/bazel/detail/tools/wrapper.ps1 b/bazel/detail/tools/wrapper.ps1 deleted file mode 100644 index 94673d4..0000000 --- a/bazel/detail/tools/wrapper.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -if ($env:EXT_BUILD_ROOT) { - # Workaround for rules_foreign_cc - $exe = (Join-Path $env:EXT_BUILD_ROOT '{{TOOL}}') -replace '/', '\' -} else { - $exe = '{{TOOL}}' -replace '/', '\' -} - -$processedArgs = @() -foreach ($arg in $args) { - $processedArg = $arg -replace '__BAZEL_EXECUTION_ROOT__', $PWD.Path - $processedArgs += $processedArg -} - -# Execute the tool and capture its exit code -& $exe @processedArgs -$toolExitCode = $LASTEXITCODE - -# Exit with the same code as the tool -exit $toolExitCode diff --git a/bazel/detail/tools/wrapper.sh b/bazel/detail/tools/wrapper.sh deleted file mode 100644 index bae0299..0000000 --- a/bazel/detail/tools/wrapper.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -set -eu -args=() -for i in "$@"; do - args+=("${i//__BAZEL_EXECUTION_ROOT__/$PWD}") -done - -if [ -z ${EXT_BUILD_ROOT+x} ]; then - "{{TOOL}}" "${args[@]}" -else - # workaround for rules_foreign_cc - "$EXT_BUILD_ROOT/{{TOOL}}" "${args[@]}" -fi