# 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", ], )