1load("@rules_cc//cc:defs.bzl", "cc_library") 2 3package(default_visibility = ["//visibility:public"]) 4 5cc_library( 6 name = "program_name", 7 linkopts = ["-labsl_flags_program_name"], 8 visibility = [ 9 "//absl/flags:__pkg__", 10 ], 11 deps = [ 12 "//absl/strings", 13 "//absl/synchronization", 14 ], 15) 16 17cc_library( 18 name = "config", 19 linkopts = ["-labsl_flags_config"], 20 deps = [ 21 ":program_name", 22 "//absl/strings", 23 "//absl/synchronization", 24 ], 25) 26 27cc_library( 28 name = "marshalling", 29 linkopts = ["-labsl_flags_marshalling"], 30 deps = [ 31 "//absl/base:log_severity", 32 "//absl/strings", 33 "//absl/strings:str_format", 34 ], 35) 36 37cc_library( 38 name = "commandlineflag_internal", 39 linkopts = ["-labsl_flags_commandlineflag_internal"], 40) 41 42cc_library( 43 name = "commandlineflag", 44 linkopts = ["-labsl_flags_commandlineflag"], 45 deps = [ 46 ":commandlineflag_internal", 47 "//absl/strings", 48 "//absl/types:optional", 49 ], 50) 51 52cc_library( 53 name = "private_handle_accessor", 54 linkopts = ["-labsl_flags_private_handle_accessor"], 55 visibility = [ 56 "//absl/flags:__pkg__", 57 ], 58 deps = [ 59 ":commandlineflag", 60 ":commandlineflag_internal", 61 "//absl/strings", 62 ], 63) 64 65cc_library( 66 name = "reflection", 67 linkopts = ["-labsl_flags_reflection"], 68 deps = [ 69 ":commandlineflag", 70 ":commandlineflag_internal", 71 ":config", 72 ":private_handle_accessor", 73 "//absl/container:flat_hash_map", 74 "//absl/strings", 75 "//absl/synchronization", 76 ], 77) 78 79cc_library( 80 name = "flag_internal", 81 linkopts = ["-labsl_flags_internal"], 82 visibility = ["//absl/base:__subpackages__"], 83 deps = [ 84 ":commandlineflag", 85 ":commandlineflag_internal", 86 ":config", 87 ":marshalling", 88 ":reflection", 89 "//absl/base", 90 "//absl/memory", 91 "//absl/meta:type_traits", 92 "//absl/strings", 93 "//absl/synchronization", 94 "//absl/utility", 95 ], 96) 97 98cc_library( 99 name = "flag", 100 linkopts = ["-labsl_flags"], 101 deps = [ 102 ":config", 103 ":flag_internal", 104 ":reflection", 105 "//absl/base", 106 "//absl/strings", 107 ], 108) 109 110cc_library( 111 name = "usage_internal", 112 linkopts = ["-labsl_flags_usage_internal"], 113 visibility = [ 114 "//absl/flags:__pkg__", 115 ], 116 deps = [ 117 ":commandlineflag", 118 ":config", 119 ":flag", 120 ":flag_internal", 121 ":private_handle_accessor", 122 ":program_name", 123 ":reflection", 124 "//absl/strings", 125 ], 126) 127 128cc_library( 129 name = "usage", 130 linkopts = ["-labsl_flags_usage"], 131 deps = [ 132 ":usage_internal", 133 "//absl/strings", 134 "//absl/synchronization", 135 ], 136) 137 138cc_library( 139 name = "parse", 140 linkopts = ["-labsl_flags_parse"], 141 deps = [ 142 ":commandlineflag", 143 ":commandlineflag_internal", 144 ":config", 145 ":flag", 146 ":flag_internal", 147 ":private_handle_accessor", 148 ":program_name", 149 ":reflection", 150 ":usage", 151 ":usage_internal", 152 "//absl/strings", 153 "//absl/synchronization", 154 ], 155) 156