mirror of
https://github.com/bazelbuild/rules_cc
synced 2024-11-26 20:02:22 +00:00
0d5561bcba
BEGIN_PUBLIC Consolidate action labels in toolchain args Consolidates action labels used by re-implementation of legacy features to use logical groups rather than individually listing every action. This simplifies the rule definitions slightly. END_PUBLIC PiperOrigin-RevId: 673920103 Change-Id: If5453dd5b45d5549ff75d656da8a2873232117ae
69 lines
2 KiB
Python
69 lines
2 KiB
Python
load("//cc/toolchains:args.bzl", "cc_args")
|
|
load("//cc/toolchains:args_list.bzl", "cc_args_list")
|
|
load("//cc/toolchains:nested_args.bzl", "cc_nested_args")
|
|
|
|
package(default_visibility = ["//visibility:private"])
|
|
|
|
cc_args_list(
|
|
name = "archiver_flags",
|
|
args = [
|
|
":create_static_archive",
|
|
":output_execpath",
|
|
":libraries_to_link",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
cc_args(
|
|
name = "create_static_archive",
|
|
actions = ["//cc/toolchains/actions:ar_actions"],
|
|
args = select({
|
|
"@platforms//os:macos": ["-static"],
|
|
"//conditions:default": ["rcsD"],
|
|
}),
|
|
)
|
|
|
|
cc_args(
|
|
name = "output_execpath",
|
|
actions = ["//cc/toolchains/actions:ar_actions"],
|
|
args = select({
|
|
"@platforms//os:macos": ["-o"],
|
|
"//conditions:default": [],
|
|
}) + ["{output_execpath}"],
|
|
format = {"output_execpath": "//cc/toolchains/variables:output_execpath"},
|
|
requires_not_none = "//cc/toolchains/variables:output_execpath",
|
|
)
|
|
|
|
cc_args(
|
|
name = "libraries_to_link",
|
|
actions = ["//cc/toolchains/actions:ar_actions"],
|
|
nested = ["libraries_to_link_expansion"],
|
|
requires_not_none = "//cc/toolchains/variables:libraries_to_link",
|
|
)
|
|
|
|
cc_nested_args(
|
|
name = "libraries_to_link_expansion",
|
|
iterate_over = "//cc/toolchains/variables:libraries_to_link",
|
|
nested = [
|
|
":link_obj_file",
|
|
":link_object_file_group",
|
|
],
|
|
)
|
|
|
|
cc_nested_args(
|
|
name = "link_obj_file",
|
|
args = ["{object_file}"],
|
|
format = {"object_file": "//cc/toolchains/variables:libraries_to_link.name"},
|
|
requires_equal = "//cc/toolchains/variables:libraries_to_link.type",
|
|
requires_equal_value = "object_file",
|
|
)
|
|
|
|
cc_nested_args(
|
|
name = "link_object_file_group",
|
|
args = ["{object_files}"],
|
|
format = {"object_files": "//cc/toolchains/variables:libraries_to_link.object_files"},
|
|
iterate_over = "//cc/toolchains/variables:libraries_to_link.object_files",
|
|
requires_equal = "//cc/toolchains/variables:libraries_to_link.type",
|
|
requires_equal_value = "object_file_group",
|
|
)
|