diff --git a/bazel/cc_rules/BUILD b/bazel/cc_rules/BUILD new file mode 100644 index 000000000000..fbf99f25a6fb --- /dev/null +++ b/bazel/cc_rules/BUILD @@ -0,0 +1,5 @@ +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM +# Exceptions. See /LICENSE for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# Empty; only defs.bzl is needed. diff --git a/bazel/cc_rules/defs.bzl b/bazel/cc_rules/defs.bzl new file mode 100644 index 000000000000..c8ddc8508f43 --- /dev/null +++ b/bazel/cc_rules/defs.bzl @@ -0,0 +1,33 @@ +# Part of the Carbon Language project, under the Apache License v2.0 with LLVM +# Exceptions. See /LICENSE for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +"""Wraps standard cc rules with the `cc_env` addition. + +These should generally be used in place of `@rules_cc`. +""" + +load( + "@rules_cc//cc:defs.bzl", + actual_cc_binary = "cc_binary", + actual_cc_library = "cc_library", + actual_cc_test = "cc_test", +) +load("//bazel/cc_toolchains:defs.bzl", "cc_env") + +# Expose cc_library directly, for consistency. +cc_library = actual_cc_library + +def cc_binary(env = {}, **kwargs): + """Wraps `cc_binary`, adding `cc_env`.""" + actual_cc_binary( + env = cc_env() | env, + **kwargs + ) + +def cc_test(env = {}, **kwargs): + """Wraps `cc_binary`, adding `cc_env`.""" + actual_cc_test( + env = cc_env() | env, + **kwargs + ) diff --git a/bazel/malloc/BUILD b/bazel/malloc/BUILD index b404ee5fafdf..a2127a3fbd40 100644 --- a/bazel/malloc/BUILD +++ b/bazel/malloc/BUILD @@ -3,7 +3,7 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception load("@bazel_skylib//lib:selects.bzl", "selects") -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") config_setting( name = "is_linux", diff --git a/common/BUILD b/common/BUILD index 7b8c620660d9..b626dee7d9c5 100644 --- a/common/BUILD +++ b/common/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") load("//bazel/version:rules.bzl", "expand_version_build_info") package(default_visibility = ["//visibility:public"]) diff --git a/testing/base/BUILD b/testing/base/BUILD index 5688af8c5150..81c7ba6bd928 100644 --- a/testing/base/BUILD +++ b/testing/base/BUILD @@ -5,7 +5,7 @@ # Trivial, single-file testing libraries. More complex libraries should get # their own directory. -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") package(default_visibility = ["//visibility:public"]) diff --git a/testing/file_test/BUILD b/testing/file_test/BUILD index 6560c8a8129f..9786e431f659 100644 --- a/testing/file_test/BUILD +++ b/testing/file_test/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") load("rules.bzl", "file_test") package(default_visibility = ["//visibility:public"]) diff --git a/testing/file_test/rules.bzl b/testing/file_test/rules.bzl index d4db39f488e7..e629b13a4ab4 100644 --- a/testing/file_test/rules.bzl +++ b/testing/file_test/rules.bzl @@ -8,8 +8,7 @@ file_test uses the tests_as_input_file rule to transform test dependencies into a file which can be accessed as a list. This avoids long argument parsing. """ -load("@rules_cc//cc:defs.bzl", "cc_test") -load("//bazel/cc_toolchains:defs.bzl", "cc_env") +load("//bazel/cc_rules:defs.bzl", "cc_test") load("//bazel/manifest:defs.bzl", "manifest", "manifest_as_cpp") def file_test( @@ -58,7 +57,6 @@ def file_test( deps = deps, data = [":" + tests_file] + tests + data, args = args, - env = cc_env(), **kwargs ) else: @@ -75,6 +73,5 @@ def file_test( deps = deps + ["//testing/file_test:manifest_impl"], data = tests + data, args = args, - env = cc_env(), **kwargs ) diff --git a/testing/fuzzing/BUILD b/testing/fuzzing/BUILD index 329208204f82..1882529d5356 100644 --- a/testing/fuzzing/BUILD +++ b/testing/fuzzing/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) diff --git a/testing/fuzzing/rules.bzl b/testing/fuzzing/rules.bzl index 84a0b4f14bcc..f61250877cac 100644 --- a/testing/fuzzing/rules.bzl +++ b/testing/fuzzing/rules.bzl @@ -4,7 +4,7 @@ """Rules for building fuzz tests.""" -load("@rules_cc//cc:defs.bzl", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_test") def _cc_fuzz_test(corpus, args, data, **kwargs): """Generates a single test target. diff --git a/toolchain/base/BUILD b/toolchain/base/BUILD index e711317bf954..22484407d27c 100644 --- a/toolchain/base/BUILD +++ b/toolchain/base/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") load("llvm_tools.bzl", "LLVM_MAIN_TOOLS", "generate_llvm_tools_def") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/check/BUILD b/toolchain/check/BUILD index f466a8644c51..4c2f08e901d1 100644 --- a/toolchain/check/BUILD +++ b/toolchain/check/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") load("//testing/fuzzing:rules.bzl", "cc_fuzz_test") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/codegen/BUILD b/toolchain/codegen/BUILD index e7844b27c837..e02f7d7989c7 100644 --- a/toolchain/codegen/BUILD +++ b/toolchain/codegen/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/diagnostics/BUILD b/toolchain/diagnostics/BUILD index b1429f86b38f..c0a7f583f418 100644 --- a/toolchain/diagnostics/BUILD +++ b/toolchain/diagnostics/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") load("//bazel/manifest:defs.bzl", "manifest") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/driver/BUILD b/toolchain/driver/BUILD index c1e889ed67b8..a1d6d0c2f0fe 100644 --- a/toolchain/driver/BUILD +++ b/toolchain/driver/BUILD @@ -2,8 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") -load("//bazel/cc_toolchains:defs.bzl", "cc_env") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") load("//testing/fuzzing:rules.bzl", "cc_fuzz_test") package(default_visibility = ["//visibility:public"]) @@ -39,7 +38,6 @@ cc_test( name = "clang_runner_test", size = "small", srcs = ["clang_runner_test.cpp"], - env = cc_env(), deps = [ ":clang_runner", "//common:all_llvm_targets", @@ -155,7 +153,6 @@ cc_test( name = "driver_test", size = "small", srcs = ["driver_test.cpp"], - env = cc_env(), deps = [ ":driver", "//common:all_llvm_targets", @@ -208,7 +205,6 @@ cc_test( name = "lld_runner_test", size = "small", srcs = ["lld_runner_test.cpp"], - env = cc_env(), deps = [ ":clang_runner", ":lld_runner", @@ -248,7 +244,6 @@ cc_test( name = "llvm_runner_test", size = "small", srcs = ["llvm_runner_test.cpp"], - env = cc_env(), deps = [ ":llvm_runner", "//common:all_llvm_targets", diff --git a/toolchain/format/BUILD b/toolchain/format/BUILD index 6ecaedf3fc67..4b2e0cdfd269 100644 --- a/toolchain/format/BUILD +++ b/toolchain/format/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/install/BUILD b/toolchain/install/BUILD index 94b200226525..a8a10fe29704 100644 --- a/toolchain/install/BUILD +++ b/toolchain/install/BUILD @@ -6,9 +6,8 @@ load( "@llvm-project//:vars.bzl", "LLVM_VERSION_MAJOR", ) -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") load("@rules_python//python:defs.bzl", "py_test") -load("//bazel/cc_toolchains:defs.bzl", "cc_env") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") load("//bazel/manifest:defs.bzl", "manifest") load("//toolchain/base:llvm_tools.bzl", "LLVM_MAIN_TOOLS", "LLVM_TOOL_ALIASES") load("install_filegroups.bzl", "install_filegroup", "install_symlink", "install_target", "make_install_filegroups") @@ -104,7 +103,6 @@ cc_test( cc_binary( name = "carbon-busybox", srcs = ["busybox_main.cpp"], - env = cc_env(), deps = [ ":busybox_info", ":install_paths", diff --git a/toolchain/language_server/BUILD b/toolchain/language_server/BUILD index adb417864a83..786d87b8c900 100644 --- a/toolchain/language_server/BUILD +++ b/toolchain/language_server/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/lex/BUILD b/toolchain/lex/BUILD index 27caef8a20c9..c2dbd4b12a34 100644 --- a/toolchain/lex/BUILD +++ b/toolchain/lex/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") load("//testing/fuzzing:rules.bzl", "cc_fuzz_test") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/lower/BUILD b/toolchain/lower/BUILD index a796c161519c..def9c42a730e 100644 --- a/toolchain/lower/BUILD +++ b/toolchain/lower/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library") +load("//bazel/cc_rules:defs.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/parse/BUILD b/toolchain/parse/BUILD index 3e341daa968a..de6f65b959b8 100644 --- a/toolchain/parse/BUILD +++ b/toolchain/parse/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") load("//bazel/manifest:defs.bzl", "manifest") load("//testing/fuzzing:rules.bzl", "cc_fuzz_test") diff --git a/toolchain/sem_ir/BUILD b/toolchain/sem_ir/BUILD index 7bd4ff5def99..a7e361cf74c6 100644 --- a/toolchain/sem_ir/BUILD +++ b/toolchain/sem_ir/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/source/BUILD b/toolchain/source/BUILD index db6c4cd558a6..65ce739f26a9 100644 --- a/toolchain/source/BUILD +++ b/toolchain/source/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") package(default_visibility = ["//visibility:public"]) diff --git a/toolchain/testing/BUILD b/toolchain/testing/BUILD index e090b368b2a6..108c716d2a11 100644 --- a/toolchain/testing/BUILD +++ b/toolchain/testing/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_library", "cc_test") load("//testing/file_test:rules.bzl", "file_test") package(default_visibility = ["//visibility:public"]) diff --git a/utils/tree_sitter/BUILD b/utils/tree_sitter/BUILD index 8209fef4a125..7036f1ac2471 100644 --- a/utils/tree_sitter/BUILD +++ b/utils/tree_sitter/BUILD @@ -2,7 +2,7 @@ # Exceptions. See /LICENSE for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test") +load("//bazel/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test") package(default_visibility = ["//bazel/check_deps:__pkg__"])