| # Copyright 2018 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. |
| """Constants for action names used for C++ rules.""" |
| |
| # Name for the C compilation action. |
| C_COMPILE_ACTION_NAME = "c-compile" |
| |
| # Name of the C++ compilation action. |
| CPP_COMPILE_ACTION_NAME = "c++-compile" |
| |
| # Name of the linkstamp-compile action. |
| LINKSTAMP_COMPILE_ACTION_NAME = "linkstamp-compile" |
| |
| # Name of the action used to compute CC_FLAGS make variable. |
| CC_FLAGS_MAKE_VARIABLE_ACTION_NAME = "cc-flags-make-variable" |
| |
| # Name of the C++ module codegen action. |
| CPP_MODULE_CODEGEN_ACTION_NAME = "c++-module-codegen" |
| |
| # Name of the C++ header parsing action. |
| CPP_HEADER_PARSING_ACTION_NAME = "c++-header-parsing" |
| |
| # Name of the C++ module compile action. |
| CPP_MODULE_COMPILE_ACTION_NAME = "c++-module-compile" |
| |
| # Name of the assembler action. |
| ASSEMBLE_ACTION_NAME = "assemble" |
| |
| # Name of the assembly preprocessing action. |
| PREPROCESS_ASSEMBLE_ACTION_NAME = "preprocess-assemble" |
| |
| # Name of the action producing ThinLto index. |
| LTO_INDEXING_ACTION_NAME = "lto-indexing" |
| |
| # Name of the action producing ThinLto index for executable. |
| LTO_INDEX_FOR_EXECUTABLE_ACTION_NAME = "lto-index-for-executable" |
| |
| # Name of the action producing ThinLto index for dynamic library. |
| LTO_INDEX_FOR_DYNAMIC_LIBRARY_ACTION_NAME = "lto-index-for-dynamic-library" |
| |
| # Name of the action producing ThinLto index for nodeps dynamic library. |
| LTO_INDEX_FOR_NODEPS_DYNAMIC_LIBRARY_ACTION_NAME = "lto-index-for-nodeps-dynamic-library" |
| |
| # Name of the action compiling lto bitcodes into native objects. |
| LTO_BACKEND_ACTION_NAME = "lto-backend" |
| |
| # Name of the link action producing executable binary. |
| CPP_LINK_EXECUTABLE_ACTION_NAME = "c++-link-executable" |
| |
| # Name of the link action producing dynamic library. |
| CPP_LINK_DYNAMIC_LIBRARY_ACTION_NAME = "c++-link-dynamic-library" |
| |
| # Name of the link action producing dynamic library that doesn't include it's |
| # transitive dependencies. |
| CPP_LINK_NODEPS_DYNAMIC_LIBRARY_ACTION_NAME = "c++-link-nodeps-dynamic-library" |
| |
| # Name of the archiving action producing static library. |
| CPP_LINK_STATIC_LIBRARY_ACTION_NAME = "c++-link-static-library" |
| |
| # Name of the action stripping the binary. |
| STRIP_ACTION_NAME = "strip" |
| |
| # A string constant for the objc compilation action. |
| OBJC_COMPILE_ACTION_NAME = "objc-compile" |
| |
| # A string constant for the objc++ compile action. |
| OBJCPP_COMPILE_ACTION_NAME = "objc++-compile" |
| |
| # A string constant for the objc executable link action. |
| OBJC_EXECUTABLE_ACTION_NAME = "objc-executable" |
| |
| # A string constant for the objc fully-link link action. |
| OBJC_FULLY_LINK_ACTION_NAME = "objc-fully-link" |
| |
| # A string constant for the clif action. |
| CLIF_MATCH_ACTION_NAME = "clif-match" |
| |
| ACTION_NAMES = struct( |
| c_compile = C_COMPILE_ACTION_NAME, |
| cpp_compile = CPP_COMPILE_ACTION_NAME, |
| linkstamp_compile = LINKSTAMP_COMPILE_ACTION_NAME, |
| cc_flags_make_variable = CC_FLAGS_MAKE_VARIABLE_ACTION_NAME, |
| cpp_module_codegen = CPP_MODULE_CODEGEN_ACTION_NAME, |
| cpp_header_parsing = CPP_HEADER_PARSING_ACTION_NAME, |
| cpp_module_compile = CPP_MODULE_COMPILE_ACTION_NAME, |
| assemble = ASSEMBLE_ACTION_NAME, |
| preprocess_assemble = PREPROCESS_ASSEMBLE_ACTION_NAME, |
| lto_indexing = LTO_INDEXING_ACTION_NAME, |
| lto_backend = LTO_BACKEND_ACTION_NAME, |
| lto_index_for_executable = LTO_INDEX_FOR_EXECUTABLE_ACTION_NAME, |
| lto_index_for_dynamic_library = LTO_INDEX_FOR_DYNAMIC_LIBRARY_ACTION_NAME, |
| lto_index_for_nodeps_dynamic_library = LTO_INDEX_FOR_NODEPS_DYNAMIC_LIBRARY_ACTION_NAME, |
| cpp_link_executable = CPP_LINK_EXECUTABLE_ACTION_NAME, |
| cpp_link_dynamic_library = CPP_LINK_DYNAMIC_LIBRARY_ACTION_NAME, |
| cpp_link_nodeps_dynamic_library = CPP_LINK_NODEPS_DYNAMIC_LIBRARY_ACTION_NAME, |
| cpp_link_static_library = CPP_LINK_STATIC_LIBRARY_ACTION_NAME, |
| strip = STRIP_ACTION_NAME, |
| objc_compile = OBJC_COMPILE_ACTION_NAME, |
| objc_executable = OBJC_EXECUTABLE_ACTION_NAME, |
| objc_fully_link = OBJC_FULLY_LINK_ACTION_NAME, |
| objcpp_compile = OBJCPP_COMPILE_ACTION_NAME, |
| clif_match = CLIF_MATCH_ACTION_NAME, |
| ) |
| |
| # Names of actions that parse or compile C++ code. |
| ALL_CPP_COMPILE_ACTION_NAMES = [ |
| ACTION_NAMES.linkstamp_compile, |
| ACTION_NAMES.cpp_compile, |
| ACTION_NAMES.cpp_header_parsing, |
| ACTION_NAMES.cpp_module_compile, |
| ACTION_NAMES.cpp_module_codegen, |
| ACTION_NAMES.lto_backend, |
| ACTION_NAMES.clif_match, |
| ] |
| |
| # Names of actions that parse or compile C, C++ and assembly code. |
| ALL_CC_COMPILE_ACTION_NAMES = ALL_CPP_COMPILE_ACTION_NAMES + [ |
| ACTION_NAMES.c_compile, |
| ACTION_NAMES.preprocess_assemble, |
| ACTION_NAMES.assemble, |
| ] |
| |
| # Names of actions that link C, C++ and assembly code. |
| ALL_CC_LINK_ACTION_NAMES = [ |
| ACTION_NAMES.cpp_link_executable, |
| ACTION_NAMES.cpp_link_dynamic_library, |
| ACTION_NAMES.cpp_link_nodeps_dynamic_library, |
| ACTION_NAMES.lto_index_for_executable, |
| ACTION_NAMES.lto_index_for_dynamic_library, |
| ACTION_NAMES.lto_index_for_nodeps_dynamic_library, |
| ] |
| |
| # Names of actions that link entire programs. |
| CC_LINK_EXECUTABLE_ACTION_NAMES = [ |
| ACTION_NAMES.cpp_link_executable, |
| ACTION_NAMES.lto_index_for_executable, |
| ] |
| |
| # Names of actions that link dynamic libraries. |
| DYNAMIC_LIBRARY_LINK_ACTION_NAMES = [ |
| ACTION_NAMES.cpp_link_dynamic_library, |
| ACTION_NAMES.cpp_link_nodeps_dynamic_library, |
| ACTION_NAMES.lto_index_for_dynamic_library, |
| ACTION_NAMES.lto_index_for_nodeps_dynamic_library, |
| ] |
| |
| # Names of actions that link nodeps dynamic libraries. |
| NODEPS_DYNAMIC_LIBRARY_LINK_ACTION_NAMES = [ |
| ACTION_NAMES.cpp_link_nodeps_dynamic_library, |
| ACTION_NAMES.lto_index_for_nodeps_dynamic_library, |
| ] |
| |
| # Names of actions that link transitive dependencies. |
| TRANSITIVE_LINK_ACTION_NAMES = [ |
| ACTION_NAMES.cpp_link_executable, |
| ACTION_NAMES.cpp_link_dynamic_library, |
| ACTION_NAMES.lto_index_for_executable, |
| ACTION_NAMES.lto_index_for_dynamic_library, |
| ] |
| |
| ACTION_NAME_GROUPS = struct( |
| all_cc_compile_actions = ALL_CC_COMPILE_ACTION_NAMES, |
| all_cc_link_actions = ALL_CC_LINK_ACTION_NAMES, |
| all_cpp_compile_actions = ALL_CPP_COMPILE_ACTION_NAMES, |
| cc_link_executable_actions = CC_LINK_EXECUTABLE_ACTION_NAMES, |
| dynamic_library_link_actions = DYNAMIC_LIBRARY_LINK_ACTION_NAMES, |
| nodeps_dynamic_library_link_actions = NODEPS_DYNAMIC_LIBRARY_LINK_ACTION_NAMES, |
| transitive_link_actions = TRANSITIVE_LINK_ACTION_NAMES, |
| ) |