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):
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.")
return [ActionTypeSetInfo(
label = ctx.label,
@ -77,6 +77,7 @@ cc_action_type_set(
mandatory = True,
doc = "A list of cc_action_type or cc_action_type_set",
),
"allow_empty": attr.bool(default = False),
},
provides = [ActionTypeSetInfo],
)

View File

@ -43,6 +43,11 @@ cc_action_type(
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,
@ -113,6 +118,29 @@ cc_action_type(
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,
@ -133,6 +161,11 @@ cc_action_type(
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,
@ -224,6 +257,7 @@ cc_action_type_set(
":linkstamp_compile",
":cc_flags_make_variable",
":cpp_module_codegen",
":cpp_header_analysis",
":cpp_header_parsing",
":cpp_module_compile",
":assemble",
@ -238,10 +272,13 @@ cc_action_type_set(
":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",
],
)