1load("//cc/toolchains:args.bzl", "cc_args") 2load("//cc/toolchains:args_list.bzl", "cc_args_list") 3load("//cc/toolchains:nested_args.bzl", "cc_nested_args") 4 5package(default_visibility = ["//visibility:private"]) 6 7cc_args_list( 8 name = "archiver_flags", 9 args = [ 10 ":create_static_archive", 11 ":output_execpath", 12 ":libraries_to_link", 13 ], 14 visibility = ["//visibility:public"], 15) 16 17cc_args( 18 name = "create_static_archive", 19 actions = ["//cc/toolchains/actions:ar_actions"], 20 args = select({ 21 "@platforms//os:macos": ["-static"], 22 "//conditions:default": ["rcsD"], 23 }), 24) 25 26cc_args( 27 name = "output_execpath", 28 actions = ["//cc/toolchains/actions:ar_actions"], 29 args = select({ 30 "@platforms//os:macos": ["-o"], 31 "//conditions:default": [], 32 }) + ["{output_execpath}"], 33 format = {"output_execpath": "//cc/toolchains/variables:output_execpath"}, 34 requires_not_none = "//cc/toolchains/variables:output_execpath", 35) 36 37cc_args( 38 name = "libraries_to_link", 39 actions = ["//cc/toolchains/actions:ar_actions"], 40 nested = ["libraries_to_link_expansion"], 41 requires_not_none = "//cc/toolchains/variables:libraries_to_link", 42) 43 44cc_nested_args( 45 name = "libraries_to_link_expansion", 46 iterate_over = "//cc/toolchains/variables:libraries_to_link", 47 nested = [ 48 ":link_obj_file", 49 ":link_object_file_group", 50 ], 51) 52 53cc_nested_args( 54 name = "link_obj_file", 55 args = ["{object_file}"], 56 format = {"object_file": "//cc/toolchains/variables:libraries_to_link.name"}, 57 requires_equal = "//cc/toolchains/variables:libraries_to_link.type", 58 requires_equal_value = "object_file", 59) 60 61cc_nested_args( 62 name = "link_object_file_group", 63 args = ["{object_files}"], 64 format = {"object_files": "//cc/toolchains/variables:libraries_to_link.object_files"}, 65 iterate_over = "//cc/toolchains/variables:libraries_to_link.object_files", 66 requires_equal = "//cc/toolchains/variables:libraries_to_link.type", 67 requires_equal_value = "object_file_group", 68) 69