xref: /aosp_15_r20/external/abseil-cpp/absl/base/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
1#
2# Copyright 2017 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
17find_library(LIBRT rt)
18
19# Internal-only target, do not depend on directly.
20absl_cc_library(
21  NAME
22    atomic_hook
23  HDRS
24    "internal/atomic_hook.h"
25  DEPS
26    absl::config
27    absl::core_headers
28  COPTS
29    ${ABSL_DEFAULT_COPTS}
30)
31
32# Internal-only target, do not depend on directly.
33absl_cc_library(
34  NAME
35    errno_saver
36  HDRS
37    "internal/errno_saver.h"
38  DEPS
39    absl::config
40  COPTS
41    ${ABSL_DEFAULT_COPTS}
42)
43
44absl_cc_library(
45  NAME
46    log_severity
47  HDRS
48    "log_severity.h"
49  SRCS
50    "log_severity.cc"
51  DEPS
52    absl::config
53    absl::core_headers
54  COPTS
55    ${ABSL_DEFAULT_COPTS}
56)
57
58absl_cc_library(
59  NAME
60    no_destructor
61  HDRS
62    "no_destructor.h"
63  DEPS
64    absl::config
65    absl::nullability
66  COPTS
67    ${ABSL_DEFAULT_COPTS}
68)
69
70absl_cc_library(
71  NAME
72    nullability
73  HDRS
74    "nullability.h"
75  SRCS
76    "internal/nullability_impl.h"
77  DEPS
78    absl::config
79    absl::core_headers
80    absl::type_traits
81  COPTS
82    ${ABSL_DEFAULT_COPTS}
83)
84
85absl_cc_test(
86  NAME
87    nullability_test
88  SRCS
89    "nullability_test.cc"
90  COPTS
91    ${ABSL_TEST_COPTS}
92  DEPS
93    absl::core_headers
94    absl::nullability
95    GTest::gtest_main
96)
97
98# Internal-only target, do not depend on directly.
99absl_cc_library(
100  NAME
101    raw_logging_internal
102  HDRS
103    "internal/raw_logging.h"
104  SRCS
105    "internal/raw_logging.cc"
106  DEPS
107    absl::atomic_hook
108    absl::config
109    absl::core_headers
110    absl::errno_saver
111    absl::log_severity
112  COPTS
113    ${ABSL_DEFAULT_COPTS}
114)
115
116# Internal-only target, do not depend on directly.
117absl_cc_library(
118  NAME
119    spinlock_wait
120  HDRS
121    "internal/spinlock_wait.h"
122  SRCS
123    "internal/spinlock_akaros.inc"
124    "internal/spinlock_linux.inc"
125    "internal/spinlock_posix.inc"
126    "internal/spinlock_wait.cc"
127    "internal/spinlock_win32.inc"
128  COPTS
129    ${ABSL_DEFAULT_COPTS}
130  DEPS
131    absl::base_internal
132    absl::core_headers
133    absl::errno_saver
134)
135
136absl_cc_library(
137  NAME
138    config
139  HDRS
140    "config.h"
141    "options.h"
142    "policy_checks.h"
143  COPTS
144    ${ABSL_DEFAULT_COPTS}
145  PUBLIC
146)
147
148absl_cc_library(
149  NAME
150    dynamic_annotations
151  HDRS
152    "dynamic_annotations.h"
153  SRCS
154    "internal/dynamic_annotations.h"
155  COPTS
156    ${ABSL_DEFAULT_COPTS}
157  DEPS
158    absl::config
159  PUBLIC
160)
161
162absl_cc_library(
163  NAME
164    core_headers
165  HDRS
166    "attributes.h"
167    "const_init.h"
168    "macros.h"
169    "optimization.h"
170    "port.h"
171    "thread_annotations.h"
172  COPTS
173    ${ABSL_DEFAULT_COPTS}
174  DEPS
175    absl::config
176  PUBLIC
177)
178
179# Internal-only target, do not depend on directly.
180absl_cc_library(
181  NAME
182    malloc_internal
183  HDRS
184    "internal/direct_mmap.h"
185    "internal/low_level_alloc.h"
186  SRCS
187    "internal/low_level_alloc.cc"
188  COPTS
189    ${ABSL_DEFAULT_COPTS}
190  DEPS
191    absl::base
192    absl::base_internal
193    absl::config
194    absl::core_headers
195    absl::dynamic_annotations
196    absl::raw_logging_internal
197    Threads::Threads
198)
199
200# Internal-only target, do not depend on directly.
201absl_cc_library(
202  NAME
203    base_internal
204  HDRS
205    "internal/hide_ptr.h"
206    "internal/identity.h"
207    "internal/inline_variable.h"
208    "internal/invoke.h"
209    "internal/scheduling_mode.h"
210  COPTS
211    ${ABSL_DEFAULT_COPTS}
212  DEPS
213    absl::config
214    absl::type_traits
215)
216
217absl_cc_library(
218  NAME
219    base
220  HDRS
221    "call_once.h"
222    "casts.h"
223    "internal/cycleclock.h"
224    "internal/cycleclock_config.h"
225    "internal/low_level_scheduling.h"
226    "internal/per_thread_tls.h"
227    "internal/spinlock.h"
228    "internal/sysinfo.h"
229    "internal/thread_identity.h"
230    "internal/tsan_mutex_interface.h"
231    "internal/unscaledcycleclock.h"
232    "internal/unscaledcycleclock_config.h"
233  SRCS
234    "internal/cycleclock.cc"
235    "internal/spinlock.cc"
236    "internal/sysinfo.cc"
237    "internal/thread_identity.cc"
238    "internal/unscaledcycleclock.cc"
239  COPTS
240    ${ABSL_DEFAULT_COPTS}
241  LINKOPTS
242    ${ABSL_DEFAULT_LINKOPTS}
243    $<$<BOOL:${LIBRT}>:-lrt>
244    $<$<BOOL:${MINGW}>:-ladvapi32>
245  DEPS
246    absl::atomic_hook
247    absl::base_internal
248    absl::config
249    absl::core_headers
250    absl::dynamic_annotations
251    absl::log_severity
252    absl::nullability
253    absl::raw_logging_internal
254    absl::spinlock_wait
255    absl::type_traits
256    Threads::Threads
257  PUBLIC
258)
259
260# Internal-only target, do not depend on directly.
261absl_cc_library(
262  NAME
263    throw_delegate
264  HDRS
265    "internal/throw_delegate.h"
266  SRCS
267    "internal/throw_delegate.cc"
268  COPTS
269    ${ABSL_DEFAULT_COPTS}
270  DEPS
271    absl::config
272    absl::raw_logging_internal
273)
274
275# Internal-only target, do not depend on directly.
276absl_cc_library(
277  NAME
278    exception_testing
279  HDRS
280    "internal/exception_testing.h"
281  COPTS
282    ${ABSL_DEFAULT_COPTS}
283  DEPS
284    absl::config
285    GTest::gtest
286  TESTONLY
287)
288
289# Internal-only target, do not depend on directly.
290absl_cc_library(
291  NAME
292    pretty_function
293  HDRS
294    "internal/pretty_function.h"
295  COPTS
296    ${ABSL_DEFAULT_COPTS}
297)
298
299# Internal-only target, do not depend on directly.
300absl_cc_library(
301  NAME
302    exception_safety_testing
303  HDRS
304    "internal/exception_safety_testing.h"
305  SRCS
306    "internal/exception_safety_testing.cc"
307  COPTS
308    ${ABSL_TEST_COPTS}
309  DEPS
310    absl::config
311    absl::pretty_function
312    absl::memory
313    absl::meta
314    absl::strings
315    absl::utility
316    GTest::gtest
317  TESTONLY
318)
319
320absl_cc_test(
321  NAME
322    absl_exception_safety_testing_test
323  SRCS
324    "exception_safety_testing_test.cc"
325  COPTS
326    ${ABSL_TEST_COPTS}
327  DEPS
328    absl::exception_safety_testing
329    absl::memory
330    GTest::gtest_main
331)
332
333# Internal-only target, do not depend on directly.
334absl_cc_library(
335  NAME
336    atomic_hook_test_helper
337  SRCS
338    "internal/atomic_hook_test_helper.cc"
339  COPTS
340    ${ABSL_TEST_COPTS}
341  DEPS
342    absl::atomic_hook
343    absl::core_headers
344  TESTONLY
345)
346
347absl_cc_test(
348  NAME
349    atomic_hook_test
350  SRCS
351    "internal/atomic_hook_test.cc"
352  COPTS
353    ${ABSL_TEST_COPTS}
354  DEPS
355    absl::atomic_hook_test_helper
356    absl::atomic_hook
357    absl::core_headers
358    GTest::gmock
359    GTest::gtest_main
360)
361
362absl_cc_test(
363  NAME
364    bit_cast_test
365  SRCS
366    "bit_cast_test.cc"
367  COPTS
368    ${ABSL_TEST_COPTS}
369  DEPS
370    absl::base
371    absl::core_headers
372    GTest::gtest_main
373)
374
375absl_cc_test(
376  NAME
377    errno_saver_test
378  SRCS
379    "internal/errno_saver_test.cc"
380  COPTS
381    ${ABSL_TEST_COPTS}
382  DEPS
383    absl::errno_saver
384    absl::strerror
385    GTest::gmock
386    GTest::gtest_main
387)
388
389absl_cc_test(
390  NAME
391    throw_delegate_test
392  SRCS
393    "throw_delegate_test.cc"
394  COPTS
395    ${ABSL_TEST_COPTS}
396  DEPS
397    absl::base
398    absl::config
399    absl::throw_delegate
400    GTest::gtest_main
401)
402
403absl_cc_test(
404  NAME
405    inline_variable_test
406  SRCS
407    "internal/inline_variable_testing.h"
408    "inline_variable_test.cc"
409    "inline_variable_test_a.cc"
410    "inline_variable_test_b.cc"
411  COPTS
412    ${ABSL_TEST_COPTS}
413  DEPS
414    absl::base_internal
415    GTest::gtest_main
416)
417
418absl_cc_test(
419  NAME
420    invoke_test
421  SRCS
422    "invoke_test.cc"
423  COPTS
424    ${ABSL_TEST_COPTS}
425  DEPS
426    absl::base_internal
427    absl::memory
428    absl::strings
429    GTest::gmock
430    GTest::gtest_main
431)
432
433# Internal-only target, do not depend on directly.
434absl_cc_library(
435  NAME
436    spinlock_test_common
437  SRCS
438    "spinlock_test_common.cc"
439  COPTS
440    ${ABSL_TEST_COPTS}
441  DEPS
442    absl::base
443    absl::config
444    absl::base_internal
445    absl::core_headers
446    absl::synchronization
447    GTest::gtest
448  TESTONLY
449)
450
451# On bazel BUILD this target use "alwayslink = 1" which is not implemented here
452absl_cc_test(
453  NAME
454    spinlock_test
455  SRCS
456    "spinlock_test_common.cc"
457  COPTS
458    ${ABSL_TEST_COPTS}
459  DEPS
460    absl::base
461    absl::base_internal
462    absl::config
463    absl::core_headers
464    absl::synchronization
465    GTest::gtest_main
466)
467
468# Internal-only target, do not depend on directly.
469absl_cc_library(
470  NAME
471    endian
472  HDRS
473    "internal/endian.h"
474    "internal/unaligned_access.h"
475  COPTS
476    ${ABSL_DEFAULT_COPTS}
477  DEPS
478    absl::base
479    absl::config
480    absl::core_headers
481    absl::nullability
482  PUBLIC
483)
484
485absl_cc_test(
486  NAME
487    endian_test
488  SRCS
489    "internal/endian_test.cc"
490  COPTS
491    ${ABSL_TEST_COPTS}
492  DEPS
493    absl::base
494    absl::config
495    absl::endian
496    GTest::gtest_main
497)
498
499absl_cc_test(
500  NAME
501    config_test
502  SRCS
503    "config_test.cc"
504  COPTS
505    ${ABSL_TEST_COPTS}
506  DEPS
507    absl::config
508    absl::synchronization
509    GTest::gtest_main
510)
511
512absl_cc_test(
513  NAME
514    call_once_test
515  SRCS
516    "call_once_test.cc"
517  COPTS
518    ${ABSL_TEST_COPTS}
519  DEPS
520    absl::base
521    absl::core_headers
522    absl::synchronization
523    GTest::gtest_main
524)
525
526absl_cc_test(
527  NAME
528    no_destructor_test
529  SRCS
530    "no_destructor_test.cc"
531  COPTS
532    ${ABSL_TEST_COPTS}
533  DEPS
534    absl::no_destructor
535    absl::config
536    absl::raw_logging_internal
537    GTest::gtest_main
538)
539
540absl_cc_test(
541  NAME
542    raw_logging_test
543  SRCS
544    "raw_logging_test.cc"
545  COPTS
546    ${ABSL_TEST_COPTS}
547  DEPS
548    absl::raw_logging_internal
549    absl::strings
550    GTest::gtest_main
551)
552
553absl_cc_test(
554  NAME
555    sysinfo_test
556  SRCS
557    "internal/sysinfo_test.cc"
558  COPTS
559    ${ABSL_TEST_COPTS}
560  DEPS
561    absl::base
562    absl::synchronization
563    GTest::gtest_main
564)
565
566absl_cc_test(
567  NAME
568    low_level_alloc_test
569  SRCS
570    "internal/low_level_alloc_test.cc"
571  COPTS
572    ${ABSL_TEST_COPTS}
573  DEPS
574    absl::malloc_internal
575    absl::node_hash_map
576    Threads::Threads
577)
578
579absl_cc_test(
580  NAME
581    thread_identity_test
582  SRCS
583    "internal/thread_identity_test.cc"
584  COPTS
585    ${ABSL_TEST_COPTS}
586  DEPS
587    absl::base
588    absl::core_headers
589    absl::synchronization
590    Threads::Threads
591    GTest::gtest_main
592)
593
594# Internal-only target, do not depend on directly.
595absl_cc_library(
596  NAME
597    scoped_set_env
598  SRCS
599    "internal/scoped_set_env.cc"
600  HDRS
601    "internal/scoped_set_env.h"
602  COPTS
603    ${ABSL_DEFAULT_COPTS}
604  DEPS
605    absl::config
606    absl::raw_logging_internal
607)
608
609absl_cc_test(
610  NAME
611    scoped_set_env_test
612  SRCS
613    "internal/scoped_set_env_test.cc"
614  COPTS
615    ${ABSL_TEST_COPTS}
616  DEPS
617    absl::scoped_set_env
618    GTest::gtest_main
619)
620
621absl_cc_test(
622  NAME
623    cmake_thread_test
624  SRCS
625    "internal/cmake_thread_test.cc"
626  COPTS
627    ${ABSL_TEST_COPTS}
628  DEPS
629    absl::base
630)
631
632absl_cc_test(
633  NAME
634    log_severity_test
635  SRCS
636    "log_severity_test.cc"
637  DEPS
638    absl::flags_internal
639    absl::flags_marshalling
640    absl::log_severity
641    absl::strings
642    GTest::gmock
643    GTest::gtest_main
644)
645
646# Internal-only target, do not depend on directly.
647absl_cc_library(
648  NAME
649    strerror
650  SRCS
651    "internal/strerror.cc"
652  HDRS
653    "internal/strerror.h"
654  COPTS
655    ${ABSL_DEFAULT_COPTS}
656  LINKOPTS
657    ${ABSL_DEFAULT_LINKOPTS}
658  DEPS
659    absl::config
660    absl::core_headers
661    absl::errno_saver
662)
663
664absl_cc_test(
665  NAME
666    strerror_test
667  SRCS
668    "internal/strerror_test.cc"
669  COPTS
670    ${ABSL_TEST_COPTS}
671  DEPS
672    absl::strerror
673    absl::strings
674    GTest::gmock
675    GTest::gtest_main
676)
677
678# Internal-only target, do not depend on directly.
679absl_cc_library(
680  NAME
681    fast_type_id
682  HDRS
683    "internal/fast_type_id.h"
684  COPTS
685    ${ABSL_DEFAULT_COPTS}
686  LINKOPTS
687    ${ABSL_DEFAULT_LINKOPTS}
688  DEPS
689    absl::config
690)
691
692absl_cc_test(
693  NAME
694    fast_type_id_test
695  SRCS
696    "internal/fast_type_id_test.cc"
697  COPTS
698    ${ABSL_TEST_COPTS}
699  DEPS
700    absl::fast_type_id
701    GTest::gtest_main
702)
703
704absl_cc_library(
705  NAME
706    prefetch
707  HDRS
708    "prefetch.h"
709  COPTS
710    ${ABSL_DEFAULT_COPTS}
711  LINKOPTS
712    ${ABSL_DEFAULT_LINKOPTS}
713  DEPS
714    absl::config
715    absl::core_headers
716)
717
718absl_cc_test(
719  NAME
720    prefetch_test
721  SRCS
722    "prefetch_test.cc"
723  COPTS
724    ${ABSL_TEST_COPTS}
725  DEPS
726    absl::prefetch
727    GTest::gtest_main
728)
729
730absl_cc_test(
731  NAME
732    optimization_test
733  SRCS
734    "optimization_test.cc"
735  COPTS
736    ${ABSL_TEST_COPTS}
737  DEPS
738    absl::core_headers
739    absl::optional
740    GTest::gtest_main
741)
742
743absl_cc_library(
744  NAME
745    poison
746  SRCS
747    "internal/poison.cc"
748  HDRS
749    "internal/poison.h"
750  COPTS
751    ${ABSL_DEFAULT_COPTS}
752  LINKOPTS
753    ${ABSL_DEFAULT_LINKOPTS}
754  DEPS
755    absl::config
756    absl::core_headers
757    absl::malloc_internal
758)
759
760absl_cc_test(
761  NAME
762    poison_test
763  SRCS
764    "internal/poison_test.cc"
765  COPTS
766    ${ABSL_TEST_COPTS}
767  DEPS
768    absl::config
769    absl::poison
770    GTest::gtest_main
771)
772