aboutsummaryrefslogtreecommitdiff
path: root/cc/toolchains/actions/BUILD
diff options
context:
space:
mode:
Diffstat (limited to 'cc/toolchains/actions/BUILD')
-rw-r--r--cc/toolchains/actions/BUILD284
1 files changed, 284 insertions, 0 deletions
diff --git a/cc/toolchains/actions/BUILD b/cc/toolchains/actions/BUILD
new file mode 100644
index 0000000..e122f5c
--- /dev/null
+++ b/cc/toolchains/actions/BUILD
@@ -0,0 +1,284 @@
+# Copyright 2024 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+load("//cc:action_names.bzl", "ACTION_NAMES")
+load("//cc/toolchains:actions.bzl", "cc_action_type", "cc_action_type_set")
+
+package(default_visibility = ["//visibility:public"])
+
+# Keep in sync with //cc:action_names.bzl.
+
+cc_action_type(
+ name = "c_compile",
+ action_name = ACTION_NAMES.c_compile,
+)
+
+cc_action_type(
+ name = "cpp_compile",
+ action_name = ACTION_NAMES.cpp_compile,
+)
+
+cc_action_type(
+ name = "linkstamp_compile",
+ action_name = ACTION_NAMES.linkstamp_compile,
+)
+
+cc_action_type(
+ name = "cc_flags_make_variable",
+ action_name = ACTION_NAMES.cc_flags_make_variable,
+)
+
+cc_action_type(
+ name = "cpp_module_codegen",
+ action_name = ACTION_NAMES.cpp_module_codegen,
+)
+
+cc_action_type(
+ name = "cpp_header_analysis",
+ action_name = "c++-header-analysis",
+)
+
+cc_action_type(
+ name = "cpp_header_parsing",
+ action_name = ACTION_NAMES.cpp_header_parsing,
+)
+
+cc_action_type(
+ name = "cpp_module_compile",
+ action_name = ACTION_NAMES.cpp_module_compile,
+)
+
+cc_action_type(
+ name = "assemble",
+ action_name = ACTION_NAMES.assemble,
+)
+
+cc_action_type(
+ name = "preprocess_assemble",
+ action_name = ACTION_NAMES.preprocess_assemble,
+)
+
+cc_action_type(
+ name = "lto_indexing",
+ action_name = ACTION_NAMES.lto_indexing,
+)
+
+cc_action_type(
+ name = "lto_backend",
+ action_name = ACTION_NAMES.lto_backend,
+)
+
+cc_action_type(
+ name = "lto_index_for_executable",
+ action_name = ACTION_NAMES.lto_index_for_executable,
+)
+
+cc_action_type(
+ name = "lto_index_for_dynamic_library",
+ action_name = ACTION_NAMES.lto_index_for_dynamic_library,
+)
+
+cc_action_type(
+ name = "lto_index_for_nodeps_dynamic_library",
+ action_name = ACTION_NAMES.lto_index_for_nodeps_dynamic_library,
+)
+
+cc_action_type(
+ name = "cpp_link_executable",
+ action_name = ACTION_NAMES.cpp_link_executable,
+)
+
+cc_action_type(
+ name = "cpp_link_dynamic_library",
+ action_name = ACTION_NAMES.cpp_link_dynamic_library,
+)
+
+cc_action_type(
+ name = "cpp_link_nodeps_dynamic_library",
+ action_name = ACTION_NAMES.cpp_link_nodeps_dynamic_library,
+)
+
+cc_action_type(
+ name = "cpp_link_static_library",
+ action_name = ACTION_NAMES.cpp_link_static_library,
+)
+
+cc_action_type(
+ name = "strip",
+ action_name = ACTION_NAMES.strip,
+)
+
+cc_action_type(
+ name = "objcopy_embed_data",
+ action_name = "objcopy_embed_data",
+)
+
+# ld_embed_data is only available within google.
+cc_action_type(
+ # # copybara-comment-this-out-please
+ name = "ld_embed_data_action", # # copybara-comment-this-out-please
+ action_name = "ld_embed_data", # # copybara-comment-this-out-please
+) # # copybara-comment-this-out-please
+
+# To make things simple, both internal and external rules will refer to
+# ld_embed_data, but externally it will evaluate to the empty set.
+cc_action_type_set(
+ name = "ld_embed_data",
+ actions = [
+ ":ld_embed_data_action", # # copybara-comment-this-out-please
+ ],
+ allow_empty = True,
+ visibility = ["//cc/toolchains:__subpackages__"],
+)
+
+cc_action_type(
+ name = "objc_compile",
+ action_name = ACTION_NAMES.objc_compile,
+)
+
+cc_action_type(
+ name = "objc_executable",
+ action_name = ACTION_NAMES.objc_executable,
+)
+
+cc_action_type(
+ name = "objc_fully_link",
+ action_name = ACTION_NAMES.objc_fully_link,
+)
+
+cc_action_type(
+ name = "objcpp_compile",
+ action_name = ACTION_NAMES.objcpp_compile,
+)
+
+cc_action_type(
+ name = "objcpp_executable",
+ action_name = "objc++-executable",
+)
+
+cc_action_type(
+ name = "clif_match",
+ action_name = ACTION_NAMES.clif_match,
+)
+
+cc_action_type_set(
+ name = "ar_actions",
+ actions = [":cpp_link_static_library"],
+)
+
+cc_action_type_set(
+ name = "assembly_actions",
+ actions = [
+ ":preprocess_assemble",
+ ":assemble",
+ ],
+)
+
+cc_action_type_set(
+ name = "cpp_compile_actions",
+ actions = [
+ ":linkstamp_compile",
+ ":cpp_compile",
+ ":cpp_header_parsing",
+ ":cpp_module_compile",
+ ":cpp_module_codegen",
+ ":lto_backend",
+ ":clif_match",
+ ],
+)
+
+cc_action_type_set(
+ name = "compile_actions",
+ actions = [
+ ":cpp_compile_actions",
+ ":c_compile",
+ ":assembly_actions",
+ ],
+)
+
+cc_action_type_set(
+ name = "link_actions",
+ actions = [
+ ":link_executable_actions",
+ ":dynamic_library_link_actions",
+ ],
+)
+
+cc_action_type_set(
+ name = "link_executable_actions",
+ actions = [
+ ":cpp_link_executable",
+ ":lto_index_for_executable",
+ ],
+)
+
+cc_action_type_set(
+ name = "dynamic_library_link_actions",
+ actions = [
+ ":cpp_link_dynamic_library",
+ ":lto_index_for_dynamic_library",
+ ":nodeps_dynamic_library_link_actions",
+ ],
+)
+
+cc_action_type_set(
+ name = "nodeps_dynamic_library_link_actions",
+ actions = [
+ ":cpp_link_nodeps_dynamic_library",
+ ":lto_index_for_nodeps_dynamic_library",
+ ],
+)
+
+cc_action_type_set(
+ name = "transitive_link_actions",
+ actions = [
+ ":cpp_link_executable",
+ ":cpp_link_dynamic_library",
+ ":lto_index_for_executable",
+ ":lto_index_for_dynamic_library",
+ ],
+)
+
+cc_action_type_set(
+ name = "all_actions",
+ actions = [
+ ":c_compile",
+ ":cpp_compile",
+ ":linkstamp_compile",
+ ":cc_flags_make_variable",
+ ":cpp_module_codegen",
+ ":cpp_header_analysis",
+ ":cpp_header_parsing",
+ ":cpp_module_compile",
+ ":assemble",
+ ":preprocess_assemble",
+ ":lto_indexing",
+ ":lto_backend",
+ ":lto_index_for_executable",
+ ":lto_index_for_dynamic_library",
+ ":lto_index_for_nodeps_dynamic_library",
+ ":cpp_link_executable",
+ ":cpp_link_dynamic_library",
+ ":cpp_link_nodeps_dynamic_library",
+ ":cpp_link_static_library",
+ ":strip",
+ ":objcopy_embed_data",
+ ":ld_embed_data",
+ ":objc_compile",
+ ":objc_executable",
+ ":objc_fully_link",
+ ":objcpp_compile",
+ ":objcpp_executable",
+ ":clif_match",
+ ],
+)