Skip to content

Commit

Permalink
Add additional actions that are not specified in action_names.bzl.
Browse files Browse the repository at this point in the history
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. https://github.com/bazelbuild/bazel/blob/9a333bc59e04e3c926121b11eb97547ba823c6ed/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java#L974).
END_PUBLIC

PiperOrigin-RevId: 619420983
Change-Id: I1f5eb1c0e43fb1563db9065ebc46f70bf8d06fc5
  • Loading branch information
Googler authored and copybara-github committed Mar 27, 2024
1 parent 991cdf0 commit 4a62c69
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
3 changes: 2 additions & 1 deletion cc/toolchains/actions.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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],
)
37 changes: 37 additions & 0 deletions cc/toolchains/actions/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -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",
Expand All @@ -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",
],
)

0 comments on commit 4a62c69

Please sign in to comment.