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
19absl_cc_library(
20  NAME
21    atomic_hook
22  HDRS
23    "internal/atomic_hook.h"
24  DEPS
25    absl::config
26    absl::core_headers
27  COPTS
28    ${ABSL_DEFAULT_COPTS}
29)
30
31absl_cc_library(
32  NAME
33    errno_saver
34  HDRS
35    "internal/errno_saver.h"
36  DEPS
37    absl::config
38  COPTS
39    ${ABSL_DEFAULT_COPTS}
40)
41
42absl_cc_library(
43  NAME
44    log_severity
45  HDRS
46    "log_severity.h"
47  SRCS
48    "log_severity.cc"
49  DEPS
50    absl::core_headers
51  COPTS
52    ${ABSL_DEFAULT_COPTS}
53)
54
55absl_cc_library(
56  NAME
57    raw_logging_internal
58  HDRS
59    "internal/raw_logging.h"
60  SRCS
61    "internal/raw_logging.cc"
62  DEPS
63    absl::atomic_hook
64    absl::config
65    absl::core_headers
66    absl::log_severity
67  COPTS
68    ${ABSL_DEFAULT_COPTS}
69)
70
71absl_cc_library(
72  NAME
73    spinlock_wait
74  HDRS
75    "internal/spinlock_wait.h"
76  SRCS
77    "internal/spinlock_akaros.inc"
78    "internal/spinlock_linux.inc"
79    "internal/spinlock_posix.inc"
80    "internal/spinlock_wait.cc"
81    "internal/spinlock_win32.inc"
82  COPTS
83    ${ABSL_DEFAULT_COPTS}
84  DEPS
85    absl::base_internal
86    absl::core_headers
87    absl::errno_saver
88)
89
90absl_cc_library(
91  NAME
92    config
93  HDRS
94    "config.h"
95    "options.h"
96    "policy_checks.h"
97  COPTS
98    ${ABSL_DEFAULT_COPTS}
99  PUBLIC
100)
101
102absl_cc_library(
103  NAME
104    dynamic_annotations
105  HDRS
106    "dynamic_annotations.h"
107  SRCS
108    "dynamic_annotations.cc"
109  COPTS
110    ${ABSL_DEFAULT_COPTS}
111  DEFINES
112    "__CLANG_SUPPORT_DYN_ANNOTATION__"
113  PUBLIC
114)
115
116absl_cc_library(
117  NAME
118    core_headers
119  HDRS
120    "attributes.h"
121    "const_init.h"
122    "macros.h"
123    "optimization.h"
124    "port.h"
125    "thread_annotations.h"
126    "internal/thread_annotations.h"
127  COPTS
128    ${ABSL_DEFAULT_COPTS}
129  DEPS
130    absl::config
131  PUBLIC
132)
133
134absl_cc_library(
135  NAME
136    malloc_internal
137  HDRS
138    "internal/direct_mmap.h"
139    "internal/low_level_alloc.h"
140  SRCS
141    "internal/low_level_alloc.cc"
142  COPTS
143    ${ABSL_DEFAULT_COPTS}
144  DEPS
145    absl::base
146    absl::base_internal
147    absl::config
148    absl::core_headers
149    absl::dynamic_annotations
150    absl::raw_logging_internal
151    Threads::Threads
152)
153
154absl_cc_library(
155  NAME
156    base_internal
157  HDRS
158    "internal/hide_ptr.h"
159    "internal/identity.h"
160    "internal/inline_variable.h"
161    "internal/invoke.h"
162    "internal/scheduling_mode.h"
163  COPTS
164    ${ABSL_DEFAULT_COPTS}
165  DEPS
166    absl::config
167    absl::type_traits
168)
169
170absl_cc_library(
171  NAME
172    base
173  HDRS
174    "call_once.h"
175    "casts.h"
176    "internal/cycleclock.h"
177    "internal/low_level_scheduling.h"
178    "internal/per_thread_tls.h"
179    "internal/spinlock.h"
180    "internal/sysinfo.h"
181    "internal/thread_identity.h"
182    "internal/tsan_mutex_interface.h"
183    "internal/unscaledcycleclock.h"
184  SRCS
185    "internal/cycleclock.cc"
186    "internal/spinlock.cc"
187    "internal/sysinfo.cc"
188    "internal/thread_identity.cc"
189    "internal/unscaledcycleclock.cc"
190  COPTS
191    ${ABSL_DEFAULT_COPTS}
192  LINKOPTS
193    ${ABSL_DEFAULT_LINKOPTS}
194    $<$<BOOL:${LIBRT}>:${LIBRT}>
195    $<$<BOOL:${MINGW}>:"advapi32">
196  DEPS
197    absl::atomic_hook
198    absl::base_internal
199    absl::config
200    absl::core_headers
201    absl::dynamic_annotations
202    absl::log_severity
203    absl::raw_logging_internal
204    absl::spinlock_wait
205    absl::type_traits
206    Threads::Threads
207  PUBLIC
208)
209
210absl_cc_library(
211  NAME
212    throw_delegate
213  HDRS
214    "internal/throw_delegate.h"
215  SRCS
216    "internal/throw_delegate.cc"
217  COPTS
218    ${ABSL_DEFAULT_COPTS}
219  DEPS
220    absl::config
221    absl::raw_logging_internal
222)
223
224absl_cc_library(
225  NAME
226    exception_testing
227  HDRS
228    "internal/exception_testing.h"
229  COPTS
230    ${ABSL_DEFAULT_COPTS}
231  DEPS
232    absl::config
233    gtest
234  TESTONLY
235)
236
237absl_cc_library(
238  NAME
239    pretty_function
240  HDRS
241    "internal/pretty_function.h"
242  COPTS
243    ${ABSL_DEFAULT_COPTS}
244)
245
246absl_cc_library(
247  NAME
248    exception_safety_testing
249  HDRS
250    "internal/exception_safety_testing.h"
251  SRCS
252    "internal/exception_safety_testing.cc"
253  COPTS
254    ${ABSL_TEST_COPTS}
255  DEPS
256    absl::config
257    absl::pretty_function
258    absl::memory
259    absl::meta
260    absl::strings
261    absl::utility
262    gtest
263  TESTONLY
264)
265
266absl_cc_test(
267  NAME
268    absl_exception_safety_testing_test
269  SRCS
270    "exception_safety_testing_test.cc"
271  COPTS
272    ${ABSL_TEST_COPTS}
273  DEPS
274    absl::exception_safety_testing
275    absl::memory
276    gtest_main
277)
278
279absl_cc_library(
280  NAME
281    atomic_hook_test_helper
282  SRCS
283    "internal/atomic_hook_test_helper.cc"
284  COPTS
285    ${ABSL_TEST_COPTS}
286  DEPS
287    absl::atomic_hook
288    absl::core_headers
289  TESTONLY
290)
291
292absl_cc_test(
293  NAME
294    atomic_hook_test
295  SRCS
296    "internal/atomic_hook_test.cc"
297  COPTS
298    ${ABSL_TEST_COPTS}
299  DEPS
300    absl::atomic_hook_test_helper
301    absl::atomic_hook
302    absl::core_headers
303    gmock
304    gtest_main
305)
306
307absl_cc_test(
308  NAME
309    bit_cast_test
310  SRCS
311    "bit_cast_test.cc"
312  COPTS
313    ${ABSL_TEST_COPTS}
314  DEPS
315    absl::base
316    absl::core_headers
317    gtest_main
318)
319
320absl_cc_test(
321  NAME
322    errno_saver_test
323  SRCS
324    "internal/errno_saver_test.cc"
325  COPTS
326    ${ABSL_TEST_COPTS}
327  DEPS
328    absl::errno_saver
329    gmock
330    gtest_main
331)
332
333absl_cc_test(
334  NAME
335    throw_delegate_test
336  SRCS
337    "throw_delegate_test.cc"
338  COPTS
339    ${ABSL_TEST_COPTS}
340  DEPS
341    absl::base
342    absl::config
343    absl::throw_delegate
344    gtest_main
345)
346
347absl_cc_test(
348  NAME
349    inline_variable_test
350  SRCS
351    "internal/inline_variable_testing.h"
352    "inline_variable_test.cc"
353    "inline_variable_test_a.cc"
354    "inline_variable_test_b.cc"
355  COPTS
356    ${ABSL_TEST_COPTS}
357  DEPS
358    absl::base_internal
359    gtest_main
360)
361
362absl_cc_test(
363  NAME
364    invoke_test
365  SRCS
366    "invoke_test.cc"
367  COPTS
368    ${ABSL_TEST_COPTS}
369  DEPS
370    absl::base_internal
371    absl::memory
372    absl::strings
373    gmock
374    gtest_main
375)
376
377absl_cc_library(
378  NAME
379    spinlock_test_common
380  SRCS
381    "spinlock_test_common.cc"
382  COPTS
383    ${ABSL_TEST_COPTS}
384  DEPS
385    absl::base
386    absl::base_internal
387    absl::core_headers
388    absl::synchronization
389    gtest
390  TESTONLY
391)
392
393# On bazel BUILD this target use "alwayslink = 1" which is not implemented here
394absl_cc_test(
395  NAME
396    spinlock_test
397  SRCS
398    "spinlock_test_common.cc"
399  COPTS
400    ${ABSL_TEST_COPTS}
401  DEPS
402    absl::base
403    absl::base_internal
404    absl::core_headers
405    absl::synchronization
406    gtest_main
407)
408
409absl_cc_library(
410  NAME
411    endian
412  HDRS
413    "internal/endian.h"
414    "internal/unaligned_access.h"
415  COPTS
416    ${ABSL_DEFAULT_COPTS}
417  DEPS
418    absl::config
419    absl::core_headers
420  PUBLIC
421)
422
423absl_cc_test(
424  NAME
425    endian_test
426  SRCS
427    "internal/endian_test.cc"
428  COPTS
429    ${ABSL_TEST_COPTS}
430  DEPS
431    absl::base
432    absl::config
433    absl::endian
434    gtest_main
435)
436
437absl_cc_test(
438  NAME
439    config_test
440  SRCS
441    "config_test.cc"
442  COPTS
443    ${ABSL_TEST_COPTS}
444  DEPS
445    absl::config
446    absl::synchronization
447    gtest_main
448)
449
450absl_cc_test(
451  NAME
452    call_once_test
453  SRCS
454    "call_once_test.cc"
455  COPTS
456    ${ABSL_TEST_COPTS}
457  DEPS
458    absl::base
459    absl::core_headers
460    absl::synchronization
461    gtest_main
462)
463
464absl_cc_test(
465  NAME
466    raw_logging_test
467  SRCS
468    "raw_logging_test.cc"
469  COPTS
470    ${ABSL_TEST_COPTS}
471  DEPS
472    absl::raw_logging_internal
473    absl::strings
474    gtest_main
475)
476
477absl_cc_test(
478  NAME
479    sysinfo_test
480  SRCS
481    "internal/sysinfo_test.cc"
482  COPTS
483    ${ABSL_TEST_COPTS}
484  DEPS
485    absl::base
486    absl::synchronization
487    gtest_main
488)
489
490absl_cc_test(
491  NAME
492    low_level_alloc_test
493  SRCS
494    "internal/low_level_alloc_test.cc"
495  COPTS
496    ${ABSL_TEST_COPTS}
497  DEPS
498    absl::malloc_internal
499    Threads::Threads
500)
501
502absl_cc_test(
503  NAME
504    thread_identity_test
505  SRCS
506    "internal/thread_identity_test.cc"
507  COPTS
508    ${ABSL_TEST_COPTS}
509  DEPS
510    absl::base
511    absl::core_headers
512    absl::synchronization
513    Threads::Threads
514    gtest_main
515)
516
517absl_cc_library(
518  NAME
519    bits
520  HDRS
521    "internal/bits.h"
522  COPTS
523    ${ABSL_DEFAULT_COPTS}
524  DEPS
525    absl::config
526    absl::core_headers
527)
528
529absl_cc_test(
530  NAME
531    bits_test
532  SRCS
533    "internal/bits_test.cc"
534  COPTS
535    ${ABSL_TEST_COPTS}
536  DEPS
537    absl::bits
538    gtest_main
539)
540
541absl_cc_library(
542  NAME
543    exponential_biased
544  SRCS
545    "internal/exponential_biased.cc"
546  HDRS
547    "internal/exponential_biased.h"
548  COPTS
549    ${ABSL_DEFAULT_COPTS}
550  DEPS
551    absl::config
552    absl::core_headers
553)
554
555absl_cc_test(
556  NAME
557    exponential_biased_test
558  SRCS
559    "internal/exponential_biased_test.cc"
560  COPTS
561    ${ABSL_TEST_COPTS}
562  DEPS
563    absl::exponential_biased
564    absl::strings
565    gmock_main
566)
567
568absl_cc_library(
569  NAME
570    periodic_sampler
571  SRCS
572    "internal/periodic_sampler.cc"
573  HDRS
574    "internal/periodic_sampler.h"
575  COPTS
576    ${ABSL_DEFAULT_COPTS}
577  DEPS
578    absl::core_headers
579    absl::exponential_biased
580)
581
582absl_cc_test(
583  NAME
584    periodic_sampler_test
585  SRCS
586    "internal/periodic_sampler_test.cc"
587  COPTS
588    ${ABSL_TEST_COPTS}
589  DEPS
590    absl::core_headers
591    absl::periodic_sampler
592    gmock_main
593)
594
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_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    gmock
643    gtest_main
644)
645