diff --git a/toolchain/args/BUILD.bazel b/toolchain/args/BUILD.bazel index e6dc56c..b323589 100644 --- a/toolchain/args/BUILD.bazel +++ b/toolchain/args/BUILD.bazel @@ -17,8 +17,8 @@ package(default_visibility = ["//visibility:public"]) cc_args( name = "resource_dir", actions = [ + "@rules_cc//cc/toolchains/actions:compile_actions", "@rules_cc//cc/toolchains/actions:link_actions", - # We may need it for other actions too? ], args = [ "-resource-dir", @@ -32,6 +32,46 @@ cc_args( ], ) +alias( + name = "clang_builtin_headers_include_search_directory", + actual = select({ + "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64_gnu": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64_gnu": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64_musl": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64_musl": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:macos_x86_64": "@llvm-toolchain-minimal-21.1.8-darwin-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:macos_aarch64": "@llvm-toolchain-minimal-21.1.8-darwin-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:windows_x86_64": "@llvm-toolchain-minimal-21.1.8-windows-amd64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:windows_aarch64": "@llvm-toolchain-minimal-21.1.8-windows-arm64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:none_wasm32": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers", + "@toolchains_llvm_bootstrapped//platforms/config:none_wasm64": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers", + }), + visibility = ["//toolchain:__subpackages__"], +) + +cc_args( + name = "clang_builtin_headers_include_search_paths", + actions = [ + "@rules_cc//cc/toolchains/actions:compile_actions", + "@rules_cc//cc/toolchains/actions:link_actions", + ], + args = [ + "-isystem", + "{clang_builtin_headers_include_search_path}", + ], + format = { + "clang_builtin_headers_include_search_path": ":clang_builtin_headers_include_search_directory", + }, + data = [ + ":clang_builtin_headers_include_search_directory", + ], + allowlist_include_directories = [ + ":clang_builtin_headers_include_search_directory", + ], +) + cc_args( name = "llvm_target_for_platform", actions = [ diff --git a/toolchain/BUILD.bazel b/toolchain/BUILD.bazel index 6ffc9f7..e02089a 100644 --- a/toolchain/BUILD.bazel +++ b/toolchain/BUILD.bazel @@ -100,6 +100,7 @@ cc_args_list( "@platforms//os:macos": [], "//conditions:default": [ "//toolchain/args:resource_dir", + "//toolchain/args:clang_builtin_headers_include_search_paths", ], }), ) diff --git a/toolchain/llvm/llvm.bzl b/toolchain/llvm/llvm.bzl index d068085..c152552 100644 --- a/toolchain/llvm/llvm.bzl +++ b/toolchain/llvm/llvm.bzl @@ -7,6 +7,7 @@ def declare_llvm_targets(*, suffix = ""): name = "builtin_headers", # Grab whichever version-specific dir is there. path = native.glob(["lib/clang/*"], exclude_directories = 0)[0] + "/include", + visibility = ["//visibility:public"], ) # Convenient exports