xref: /aosp_15_r20/external/abseil-cpp/absl/flags/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
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
17# Internal-only target, do not depend on directly.
18absl_cc_library(
19  NAME
20    flags_path_util
21  HDRS
22    "internal/path_util.h"
23  COPTS
24    ${ABSL_DEFAULT_COPTS}
25  LINKOPTS
26    ${ABSL_DEFAULT_LINKOPTS}
27  DEPS
28    absl::config
29    absl::strings
30  PUBLIC
31)
32
33# Internal-only target, do not depend on directly.
34absl_cc_library(
35  NAME
36    flags_program_name
37  SRCS
38    "internal/program_name.cc"
39  HDRS
40    "internal/program_name.h"
41  COPTS
42    ${ABSL_DEFAULT_COPTS}
43  LINKOPTS
44    ${ABSL_DEFAULT_LINKOPTS}
45  DEPS
46    absl::config
47    absl::core_headers
48    absl::flags_path_util
49    absl::strings
50    absl::synchronization
51  PUBLIC
52)
53
54absl_cc_library(
55  NAME
56    flags_config
57  SRCS
58    "usage_config.cc"
59  HDRS
60    "config.h"
61    "usage_config.h"
62  COPTS
63    ${ABSL_DEFAULT_COPTS}
64  LINKOPTS
65    ${ABSL_DEFAULT_LINKOPTS}
66  DEPS
67    absl::config
68    absl::flags_path_util
69    absl::flags_program_name
70    absl::core_headers
71    absl::strings
72    absl::synchronization
73)
74
75absl_cc_library(
76  NAME
77    flags_marshalling
78  SRCS
79    "marshalling.cc"
80  HDRS
81    "marshalling.h"
82  COPTS
83    ${ABSL_DEFAULT_COPTS}
84  LINKOPTS
85    ${ABSL_DEFAULT_LINKOPTS}
86  DEPS
87    absl::config
88    absl::core_headers
89    absl::log_severity
90    absl::int128
91    absl::optional
92    absl::strings
93    absl::str_format
94)
95
96# Internal-only target, do not depend on directly.
97absl_cc_library(
98  NAME
99    flags_commandlineflag_internal
100  SRCS
101    "internal/commandlineflag.cc"
102  HDRS
103    "internal/commandlineflag.h"
104  COPTS
105    ${ABSL_DEFAULT_COPTS}
106  LINKOPTS
107    ${ABSL_DEFAULT_LINKOPTS}
108  DEPS
109    absl::config
110    absl::dynamic_annotations
111    absl::fast_type_id
112)
113
114absl_cc_library(
115  NAME
116    flags_commandlineflag
117  SRCS
118    "commandlineflag.cc"
119  HDRS
120    "commandlineflag.h"
121  COPTS
122    ${ABSL_DEFAULT_COPTS}
123  LINKOPTS
124    ${ABSL_DEFAULT_LINKOPTS}
125  DEPS
126    absl::config
127    absl::fast_type_id
128    absl::flags_commandlineflag_internal
129    absl::optional
130    absl::strings
131)
132
133# Internal-only target, do not depend on directly.
134absl_cc_library(
135  NAME
136    flags_private_handle_accessor
137  SRCS
138    "internal/private_handle_accessor.cc"
139  HDRS
140    "internal/private_handle_accessor.h"
141  COPTS
142    ${ABSL_DEFAULT_COPTS}
143  LINKOPTS
144    ${ABSL_DEFAULT_LINKOPTS}
145  DEPS
146    absl::config
147    absl::flags_commandlineflag
148    absl::flags_commandlineflag_internal
149    absl::strings
150)
151
152absl_cc_library(
153  NAME
154    flags_reflection
155  SRCS
156    "reflection.cc"
157  HDRS
158    "reflection.h"
159    "internal/registry.h"
160  COPTS
161    ${ABSL_DEFAULT_COPTS}
162  LINKOPTS
163    ${ABSL_DEFAULT_LINKOPTS}
164  DEPS
165    absl::config
166    absl::flags_commandlineflag
167    absl::flags_private_handle_accessor
168    absl::flags_config
169    absl::strings
170    absl::synchronization
171    absl::flat_hash_map
172    absl::no_destructor
173)
174
175# Internal-only target, do not depend on directly.
176absl_cc_library(
177  NAME
178    flags_internal
179  SRCS
180    "internal/flag.cc"
181  HDRS
182    "internal/flag.h"
183    "internal/sequence_lock.h"
184  COPTS
185    ${ABSL_DEFAULT_COPTS}
186  LINKOPTS
187    ${ABSL_DEFAULT_LINKOPTS}
188  DEPS
189    absl::base
190    absl::config
191    absl::flags_commandlineflag
192    absl::flags_commandlineflag_internal
193    absl::flags_config
194    absl::flags_marshalling
195    absl::synchronization
196    absl::meta
197    absl::utility
198  PUBLIC
199)
200
201absl_cc_library(
202  NAME
203    flags
204  HDRS
205    "declare.h"
206    "flag.h"
207  COPTS
208    ${ABSL_DEFAULT_COPTS}
209  LINKOPTS
210    ${ABSL_DEFAULT_LINKOPTS}
211  DEPS
212    absl::config
213    absl::flags_commandlineflag
214    absl::flags_config
215    absl::flags_internal
216    absl::flags_reflection
217    absl::core_headers
218    absl::strings
219)
220
221# Internal-only target, do not depend on directly.
222absl_cc_library(
223  NAME
224    flags_usage_internal
225  SRCS
226    "internal/usage.cc"
227  HDRS
228    "internal/usage.h"
229  COPTS
230    ${ABSL_DEFAULT_COPTS}
231  LINKOPTS
232    ${ABSL_DEFAULT_LINKOPTS}
233  DEPS
234    absl::config
235    absl::flags_config
236    absl::flags
237    absl::flags_commandlineflag
238    absl::flags_internal
239    absl::flags_path_util
240    absl::flags_private_handle_accessor
241    absl::flags_program_name
242    absl::flags_reflection
243    absl::strings
244    absl::synchronization
245)
246
247absl_cc_library(
248  NAME
249    flags_usage
250  SRCS
251    "usage.cc"
252  HDRS
253    "usage.h"
254  COPTS
255    ${ABSL_DEFAULT_COPTS}
256  LINKOPTS
257    ${ABSL_DEFAULT_LINKOPTS}
258  DEPS
259    absl::config
260    absl::core_headers
261    absl::flags_usage_internal
262    absl::raw_logging_internal
263    absl::strings
264    absl::synchronization
265)
266
267absl_cc_library(
268  NAME
269    flags_parse
270  SRCS
271    "parse.cc"
272  HDRS
273    "internal/parse.h"
274    "parse.h"
275  COPTS
276    ${ABSL_DEFAULT_COPTS}
277  LINKOPTS
278    ${ABSL_DEFAULT_LINKOPTS}
279  DEPS
280    absl::algorithm_container
281    absl::config
282    absl::core_headers
283    absl::flags_config
284    absl::flags
285    absl::flags_commandlineflag
286    absl::flags_commandlineflag_internal
287    absl::flags_internal
288    absl::flags_private_handle_accessor
289    absl::flags_program_name
290    absl::flags_reflection
291    absl::flags_usage
292    absl::strings
293    absl::synchronization
294)
295
296############################################################################
297# Unit tests in alphabetical order.
298
299absl_cc_test(
300  NAME
301    flags_commandlineflag_test
302  SRCS
303    "commandlineflag_test.cc"
304  COPTS
305    ${ABSL_TEST_COPTS}
306  DEPS
307    absl::flags
308    absl::flags_commandlineflag
309    absl::flags_config
310    absl::flags_private_handle_accessor
311    absl::flags_reflection
312    absl::memory
313    absl::strings
314    GTest::gtest_main
315)
316
317absl_cc_test(
318  NAME
319    flags_config_test
320  SRCS
321    "config_test.cc"
322  COPTS
323    ${ABSL_TEST_COPTS}
324  DEPS
325    absl::flags_config
326    GTest::gtest_main
327)
328
329absl_cc_test(
330  NAME
331    flags_flag_test
332  SRCS
333    "flag_test.cc"
334    "flag_test_defs.cc"
335  COPTS
336    ${ABSL_TEST_COPTS}
337  DEPS
338    absl::core_headers
339    absl::flags
340    absl::flags_config
341    absl::flags_internal
342    absl::flags_marshalling
343    absl::flags_parse
344    absl::flags_reflection
345    absl::int128
346    absl::optional
347    absl::raw_logging_internal
348    absl::strings
349    absl::time
350    GTest::gtest_main
351)
352
353absl_cc_test(
354  NAME
355    flags_marshalling_test
356  SRCS
357    "marshalling_test.cc"
358  COPTS
359    ${ABSL_TEST_COPTS}
360  DEPS
361    absl::flags_marshalling
362    GTest::gtest_main
363)
364
365absl_cc_test(
366  NAME
367    flags_parse_test
368  SRCS
369    "parse_test.cc"
370  COPTS
371    ${ABSL_TEST_COPTS}
372  DEPS
373    absl::flags
374    absl::flags_config
375    absl::flags_parse
376    absl::flags_reflection
377    absl::flags_usage_internal
378    absl::log
379    absl::scoped_set_env
380    absl::span
381    absl::strings
382    GTest::gmock_main
383)
384
385absl_cc_test(
386  NAME
387    flags_path_util_test
388  SRCS
389    "internal/path_util_test.cc"
390  COPTS
391    ${ABSL_TEST_COPTS}
392  DEPS
393    absl::flags_path_util
394    GTest::gtest_main
395)
396
397absl_cc_test(
398  NAME
399    flags_program_name_test
400  SRCS
401    "internal/program_name_test.cc"
402  COPTS
403    ${ABSL_TEST_COPTS}
404  DEPS
405    absl::flags_program_name
406    absl::strings
407    GTest::gtest_main
408)
409
410absl_cc_test(
411  NAME
412    flags_reflection_test
413  SRCS
414    "reflection_test.cc"
415  COPTS
416    ${ABSL_TEST_COPTS}
417  DEPS
418    absl::flags
419    absl::flags_config
420    absl::flags_reflection
421    absl::flags_usage
422    absl::memory
423    absl::strings
424    GTest::gmock_main
425)
426
427absl_cc_test(
428  NAME
429    flags_sequence_lock_test
430  SRCS
431    "internal/sequence_lock_test.cc"
432  COPTS
433    ${ABSL_TEST_COPTS}
434  DEPS
435    absl::base
436    absl::flags_internal
437    absl::time
438    GTest::gmock_main
439)
440
441absl_cc_test(
442  NAME
443    flags_usage_config_test
444  SRCS
445    "usage_config_test.cc"
446  COPTS
447    ${ABSL_TEST_COPTS}
448  DEPS
449    absl::flags_config
450    absl::flags_path_util
451    absl::flags_program_name
452    absl::strings
453    GTest::gtest_main
454)
455
456absl_cc_test(
457  NAME
458    flags_usage_test
459  SRCS
460    "internal/usage_test.cc"
461  COPTS
462    ${ABSL_TEST_COPTS}
463  DEPS
464    absl::flags_config
465    absl::flags
466    absl::flags_path_util
467    absl::flags_program_name
468    absl::flags_parse
469    absl::flags_reflection
470    absl::flags_usage
471    absl::strings
472    GTest::gmock
473)
474