xref: /aosp_15_r20/external/openscreen/third_party/abseil/src/absl/flags/BUILD.bazel (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1#
2# Copyright 2019 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
18load(
19    "//absl:copts/configure_copts.bzl",
20    "ABSL_DEFAULT_COPTS",
21    "ABSL_DEFAULT_LINKOPTS",
22    "ABSL_TEST_COPTS",
23)
24
25package(default_visibility = ["//visibility:public"])
26
27licenses(["notice"])
28
29cc_library(
30    name = "path_util",
31    hdrs = [
32        "internal/path_util.h",
33    ],
34    copts = ABSL_DEFAULT_COPTS,
35    linkopts = ABSL_DEFAULT_LINKOPTS,
36    visibility = [
37        "//absl/flags:__pkg__",
38    ],
39    deps = [
40        "//absl/base:config",
41        "//absl/strings",
42    ],
43)
44
45cc_library(
46    name = "program_name",
47    srcs = [
48        "internal/program_name.cc",
49    ],
50    hdrs = [
51        "internal/program_name.h",
52    ],
53    copts = ABSL_DEFAULT_COPTS,
54    linkopts = ABSL_DEFAULT_LINKOPTS,
55    visibility = [
56        "//absl/flags:__pkg__",
57    ],
58    deps = [
59        ":path_util",
60        "//absl/base:config",
61        "//absl/base:core_headers",
62        "//absl/strings",
63        "//absl/synchronization",
64    ],
65)
66
67cc_library(
68    name = "config",
69    srcs = [
70        "usage_config.cc",
71    ],
72    hdrs = [
73        "config.h",
74        "usage_config.h",
75    ],
76    copts = ABSL_DEFAULT_COPTS,
77    linkopts = ABSL_DEFAULT_LINKOPTS,
78    deps = [
79        ":path_util",
80        ":program_name",
81        "//absl/base:config",
82        "//absl/base:core_headers",
83        "//absl/strings",
84        "//absl/synchronization",
85    ],
86)
87
88cc_library(
89    name = "marshalling",
90    srcs = [
91        "marshalling.cc",
92    ],
93    hdrs = [
94        "marshalling.h",
95    ],
96    copts = ABSL_DEFAULT_COPTS,
97    linkopts = ABSL_DEFAULT_LINKOPTS,
98    deps = [
99        "//absl/base:config",
100        "//absl/base:core_headers",
101        "//absl/base:log_severity",
102        "//absl/strings",
103        "//absl/strings:str_format",
104    ],
105)
106
107cc_library(
108    name = "commandlineflag_internal",
109    srcs = [
110        "internal/commandlineflag.cc",
111    ],
112    hdrs = [
113        "internal/commandlineflag.h",
114    ],
115    copts = ABSL_DEFAULT_COPTS,
116    linkopts = ABSL_DEFAULT_LINKOPTS,
117    deps = [
118        "//absl/base:config",
119        "//absl/base:fast_type_id",
120    ],
121)
122
123cc_library(
124    name = "commandlineflag",
125    srcs = [
126        "commandlineflag.cc",
127    ],
128    hdrs = [
129        "commandlineflag.h",
130    ],
131    copts = ABSL_DEFAULT_COPTS,
132    linkopts = ABSL_DEFAULT_LINKOPTS,
133    deps = [
134        ":commandlineflag_internal",
135        "//absl/base:config",
136        "//absl/base:fast_type_id",
137        "//absl/strings",
138        "//absl/types:optional",
139    ],
140)
141
142cc_library(
143    name = "private_handle_accessor",
144    srcs = [
145        "internal/private_handle_accessor.cc",
146    ],
147    hdrs = [
148        "internal/private_handle_accessor.h",
149    ],
150    copts = ABSL_DEFAULT_COPTS,
151    linkopts = ABSL_DEFAULT_LINKOPTS,
152    visibility = [
153        "//absl/flags:__pkg__",
154    ],
155    deps = [
156        ":commandlineflag",
157        ":commandlineflag_internal",
158        "//absl/base:config",
159        "//absl/strings",
160    ],
161)
162
163cc_library(
164    name = "reflection",
165    srcs = [
166        "reflection.cc",
167    ],
168    hdrs = [
169        "internal/registry.h",
170        "reflection.h",
171    ],
172    copts = ABSL_DEFAULT_COPTS,
173    linkopts = ABSL_DEFAULT_LINKOPTS,
174    deps = [
175        ":commandlineflag",
176        ":commandlineflag_internal",
177        ":config",
178        ":private_handle_accessor",
179        "//absl/base:config",
180        "//absl/base:core_headers",
181        "//absl/container:flat_hash_map",
182        "//absl/strings",
183        "//absl/synchronization",
184    ],
185)
186
187cc_library(
188    name = "flag_internal",
189    srcs = [
190        "internal/flag.cc",
191    ],
192    hdrs = [
193        "internal/flag.h",
194    ],
195    copts = ABSL_DEFAULT_COPTS,
196    linkopts = ABSL_DEFAULT_LINKOPTS,
197    visibility = ["//absl/base:__subpackages__"],
198    deps = [
199        ":commandlineflag",
200        ":commandlineflag_internal",
201        ":config",
202        ":marshalling",
203        ":reflection",
204        "//absl/base",
205        "//absl/base:config",
206        "//absl/base:core_headers",
207        "//absl/memory",
208        "//absl/meta:type_traits",
209        "//absl/strings",
210        "//absl/synchronization",
211        "//absl/utility",
212    ],
213)
214
215cc_library(
216    name = "flag",
217    srcs = [
218        "flag.cc",
219    ],
220    hdrs = [
221        "declare.h",
222        "flag.h",
223    ],
224    copts = ABSL_DEFAULT_COPTS,
225    linkopts = ABSL_DEFAULT_LINKOPTS,
226    deps = [
227        ":config",
228        ":flag_internal",
229        ":reflection",
230        "//absl/base",
231        "//absl/base:config",
232        "//absl/base:core_headers",
233        "//absl/strings",
234    ],
235)
236
237cc_library(
238    name = "usage_internal",
239    srcs = [
240        "internal/usage.cc",
241    ],
242    hdrs = [
243        "internal/usage.h",
244    ],
245    copts = ABSL_DEFAULT_COPTS,
246    linkopts = ABSL_DEFAULT_LINKOPTS,
247    visibility = [
248        "//absl/flags:__pkg__",
249    ],
250    deps = [
251        ":commandlineflag",
252        ":config",
253        ":flag",
254        ":flag_internal",
255        ":path_util",
256        ":private_handle_accessor",
257        ":program_name",
258        ":reflection",
259        "//absl/base:config",
260        "//absl/base:core_headers",
261        "//absl/strings",
262    ],
263)
264
265cc_library(
266    name = "usage",
267    srcs = [
268        "usage.cc",
269    ],
270    hdrs = [
271        "usage.h",
272    ],
273    copts = ABSL_DEFAULT_COPTS,
274    linkopts = ABSL_DEFAULT_LINKOPTS,
275    deps = [
276        ":usage_internal",
277        "//absl/base:config",
278        "//absl/base:core_headers",
279        "//absl/strings",
280        "//absl/synchronization",
281    ],
282)
283
284cc_library(
285    name = "parse",
286    srcs = ["parse.cc"],
287    hdrs = [
288        "internal/parse.h",
289        "parse.h",
290    ],
291    copts = ABSL_DEFAULT_COPTS,
292    linkopts = ABSL_DEFAULT_LINKOPTS,
293    deps = [
294        ":commandlineflag",
295        ":commandlineflag_internal",
296        ":config",
297        ":flag",
298        ":flag_internal",
299        ":private_handle_accessor",
300        ":program_name",
301        ":reflection",
302        ":usage",
303        ":usage_internal",
304        "//absl/base:config",
305        "//absl/base:core_headers",
306        "//absl/strings",
307        "//absl/synchronization",
308    ],
309)
310
311############################################################################
312# Unit tests in alphabetical order.
313
314cc_test(
315    name = "commandlineflag_test",
316    size = "small",
317    srcs = [
318        "commandlineflag_test.cc",
319    ],
320    copts = ABSL_TEST_COPTS,
321    linkopts = ABSL_DEFAULT_LINKOPTS,
322    deps = [
323        ":commandlineflag",
324        ":commandlineflag_internal",
325        ":config",
326        ":flag",
327        ":private_handle_accessor",
328        ":reflection",
329        "//absl/memory",
330        "//absl/strings",
331        "@com_google_googletest//:gtest_main",
332    ],
333)
334
335cc_test(
336    name = "config_test",
337    size = "small",
338    srcs = [
339        "config_test.cc",
340    ],
341    copts = ABSL_TEST_COPTS,
342    linkopts = ABSL_DEFAULT_LINKOPTS,
343    deps = [
344        ":config",
345        "@com_google_googletest//:gtest_main",
346    ],
347)
348
349cc_test(
350    name = "flag_test",
351    size = "small",
352    srcs = [
353        "flag_test.cc",
354        "flag_test_defs.cc",
355    ],
356    copts = ABSL_TEST_COPTS,
357    linkopts = ABSL_DEFAULT_LINKOPTS,
358    deps = [
359        ":config",
360        ":flag",
361        ":flag_internal",
362        ":marshalling",
363        ":reflection",
364        "//absl/base:core_headers",
365        "//absl/base:malloc_internal",
366        "//absl/strings",
367        "//absl/time",
368        "@com_google_googletest//:gtest_main",
369    ],
370)
371
372cc_binary(
373    name = "flag_benchmark",
374    testonly = 1,
375    srcs = [
376        "flag_benchmark.cc",
377    ],
378    copts = ABSL_TEST_COPTS,
379    tags = ["benchmark"],
380    visibility = ["//visibility:private"],
381    deps = [
382        ":flag",
383        ":marshalling",
384        ":parse",
385        ":reflection",
386        "//absl/strings",
387        "//absl/time",
388        "//absl/types:optional",
389        "@com_github_google_benchmark//:benchmark_main",
390    ],
391)
392
393cc_test(
394    name = "marshalling_test",
395    size = "small",
396    srcs = [
397        "marshalling_test.cc",
398    ],
399    copts = ABSL_TEST_COPTS,
400    linkopts = ABSL_DEFAULT_LINKOPTS,
401    deps = [
402        ":marshalling",
403        "@com_google_googletest//:gtest_main",
404    ],
405)
406
407cc_test(
408    name = "parse_test",
409    size = "small",
410    srcs = [
411        "parse_test.cc",
412    ],
413    copts = ABSL_TEST_COPTS,
414    linkopts = ABSL_DEFAULT_LINKOPTS,
415    deps = [
416        ":flag",
417        ":parse",
418        ":reflection",
419        ":usage_internal",
420        "//absl/base:raw_logging_internal",
421        "//absl/base:scoped_set_env",
422        "//absl/strings",
423        "//absl/types:span",
424        "@com_google_googletest//:gtest_main",
425    ],
426)
427
428cc_test(
429    name = "path_util_test",
430    size = "small",
431    srcs = [
432        "internal/path_util_test.cc",
433    ],
434    copts = ABSL_TEST_COPTS,
435    linkopts = ABSL_DEFAULT_LINKOPTS,
436    deps = [
437        ":path_util",
438        "@com_google_googletest//:gtest_main",
439    ],
440)
441
442cc_test(
443    name = "program_name_test",
444    size = "small",
445    srcs = [
446        "internal/program_name_test.cc",
447    ],
448    copts = ABSL_TEST_COPTS,
449    linkopts = ABSL_DEFAULT_LINKOPTS,
450    deps = [
451        ":program_name",
452        "//absl/strings",
453        "@com_google_googletest//:gtest_main",
454    ],
455)
456
457cc_test(
458    name = "reflection_test",
459    size = "small",
460    srcs = [
461        "reflection_test.cc",
462    ],
463    copts = ABSL_TEST_COPTS,
464    linkopts = ABSL_DEFAULT_LINKOPTS,
465    deps = [
466        ":commandlineflag_internal",
467        ":flag",
468        ":marshalling",
469        ":reflection",
470        ":usage_internal",
471        "//absl/memory",
472        "//absl/strings",
473        "@com_google_googletest//:gtest_main",
474    ],
475)
476
477cc_test(
478    name = "usage_config_test",
479    size = "small",
480    srcs = [
481        "usage_config_test.cc",
482    ],
483    copts = ABSL_TEST_COPTS,
484    linkopts = ABSL_DEFAULT_LINKOPTS,
485    deps = [
486        ":config",
487        ":path_util",
488        ":program_name",
489        "//absl/strings",
490        "@com_google_googletest//:gtest_main",
491    ],
492)
493
494cc_test(
495    name = "usage_test",
496    size = "small",
497    srcs = [
498        "internal/usage_test.cc",
499    ],
500    copts = ABSL_TEST_COPTS,
501    linkopts = ABSL_DEFAULT_LINKOPTS,
502    deps = [
503        ":config",
504        ":flag",
505        ":parse",
506        ":path_util",
507        ":program_name",
508        ":reflection",
509        ":usage",
510        ":usage_internal",
511        "//absl/strings",
512        "@com_google_googletest//:gtest",
513    ],
514)
515