diff options
Diffstat (limited to 'cc/toolchains/actions/BUILD')
-rw-r--r-- | cc/toolchains/actions/BUILD | 284 |
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", + ], +) |