Add additional actions that are not specified in action_names.bzl.

BEGIN_PUBLIC
Add additional actions that are not specified in action_names.bzl.

These are mostly taken from https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionNames.java.

These also include some actions that have explicitly been removed from CppActionNames, because those actions are still in use elsewhere (eg. 9a333bc59e/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java (L974)).
END_PUBLIC

PiperOrigin-RevId: 619420983
Change-Id: I1f5eb1c0e43fb1563db9065ebc46f70bf8d06fc5
This commit is contained in:
Googler 2024-03-26 22:49:54 -07:00 committed by Copybara-Service
parent 991cdf09a9
commit 4a62c69330
2 changed files with 39 additions and 1 deletions

View File

@ -50,7 +50,7 @@ cc_action_type(
) )
def _cc_action_type_set_impl(ctx): def _cc_action_type_set_impl(ctx):
if not ctx.attr.actions: if not ctx.attr.actions and not ctx.attr.allow_empty:
fail("Each cc_action_type_set must contain at least one action type.") fail("Each cc_action_type_set must contain at least one action type.")
return [ActionTypeSetInfo( return [ActionTypeSetInfo(
label = ctx.label, label = ctx.label,
@ -77,6 +77,7 @@ cc_action_type_set(
mandatory = True, mandatory = True,
doc = "A list of cc_action_type or cc_action_type_set", doc = "A list of cc_action_type or cc_action_type_set",
), ),
"allow_empty": attr.bool(default = False),
}, },
provides = [ActionTypeSetInfo], provides = [ActionTypeSetInfo],
) )

View File

@ -43,6 +43,11 @@ cc_action_type(
action_name = ACTION_NAMES.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( cc_action_type(
name = "cpp_header_parsing", name = "cpp_header_parsing",
action_name = ACTION_NAMES.cpp_header_parsing, action_name = ACTION_NAMES.cpp_header_parsing,
@ -113,6 +118,29 @@ cc_action_type(
action_name = ACTION_NAMES.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( cc_action_type(
name = "objc_compile", name = "objc_compile",
action_name = ACTION_NAMES.objc_compile, action_name = ACTION_NAMES.objc_compile,
@ -133,6 +161,11 @@ cc_action_type(
action_name = ACTION_NAMES.objcpp_compile, action_name = ACTION_NAMES.objcpp_compile,
) )
cc_action_type(
name = "objcpp_executable",
action_name = "objc++-executable",
)
cc_action_type( cc_action_type(
name = "clif_match", name = "clif_match",
action_name = ACTION_NAMES.clif_match, action_name = ACTION_NAMES.clif_match,
@ -224,6 +257,7 @@ cc_action_type_set(
":linkstamp_compile", ":linkstamp_compile",
":cc_flags_make_variable", ":cc_flags_make_variable",
":cpp_module_codegen", ":cpp_module_codegen",
":cpp_header_analysis",
":cpp_header_parsing", ":cpp_header_parsing",
":cpp_module_compile", ":cpp_module_compile",
":assemble", ":assemble",
@ -238,10 +272,13 @@ cc_action_type_set(
":cpp_link_nodeps_dynamic_library", ":cpp_link_nodeps_dynamic_library",
":cpp_link_static_library", ":cpp_link_static_library",
":strip", ":strip",
":objcopy_embed_data",
":ld_embed_data",
":objc_compile", ":objc_compile",
":objc_executable", ":objc_executable",
":objc_fully_link", ":objc_fully_link",
":objcpp_compile", ":objcpp_compile",
":objcpp_executable",
":clif_match", ":clif_match",
], ],
) )