xref: /aosp_15_r20/external/abseil-cpp/absl/synchronization/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
17# Internal-only target, do not depend on directly.
18absl_cc_library(
19  NAME
20    graphcycles_internal
21  HDRS
22    "internal/graphcycles.h"
23  SRCS
24    "internal/graphcycles.cc"
25  COPTS
26    ${ABSL_DEFAULT_COPTS}
27  DEPS
28    absl::base
29    absl::base_internal
30    absl::config
31    absl::core_headers
32    absl::malloc_internal
33    absl::raw_logging_internal
34)
35
36# Internal-only target, do not depend on directly.
37absl_cc_library(
38  NAME
39    kernel_timeout_internal
40  HDRS
41    "internal/kernel_timeout.h"
42  SRCS
43    "internal/kernel_timeout.cc"
44  COPTS
45    ${ABSL_DEFAULT_COPTS}
46  DEPS
47    absl::base
48    absl::config
49    absl::core_headers
50    absl::raw_logging_internal
51    absl::time
52)
53
54absl_cc_test(
55  NAME
56    kernel_timeout_internal_test
57  SRCS
58    "internal/kernel_timeout_test.cc"
59  COPTS
60    ${ABSL_TEST_COPTS}
61  DEPS
62    absl::kernel_timeout_internal
63    absl::config
64    absl::random_random
65    absl::time
66    GTest::gmock_main
67)
68
69absl_cc_library(
70  NAME
71    synchronization
72  HDRS
73    "barrier.h"
74    "blocking_counter.h"
75    "internal/create_thread_identity.h"
76    "internal/futex.h"
77    "internal/futex_waiter.h"
78    "internal/per_thread_sem.h"
79    "internal/pthread_waiter.h"
80    "internal/sem_waiter.h"
81    "internal/stdcpp_waiter.h"
82    "internal/waiter.h"
83    "internal/waiter_base.h"
84    "internal/win32_waiter.h"
85    "mutex.h"
86    "notification.h"
87  SRCS
88    "barrier.cc"
89    "blocking_counter.cc"
90    "internal/create_thread_identity.cc"
91    "internal/futex_waiter.cc"
92    "internal/per_thread_sem.cc"
93    "internal/pthread_waiter.cc"
94    "internal/sem_waiter.cc"
95    "internal/stdcpp_waiter.cc"
96    "internal/waiter_base.cc"
97    "internal/win32_waiter.cc"
98    "notification.cc"
99    "mutex.cc"
100  COPTS
101    ${ABSL_DEFAULT_COPTS}
102  DEPS
103    absl::graphcycles_internal
104    absl::kernel_timeout_internal
105    absl::atomic_hook
106    absl::base
107    absl::base_internal
108    absl::config
109    absl::core_headers
110    absl::dynamic_annotations
111    absl::malloc_internal
112    absl::raw_logging_internal
113    absl::stacktrace
114    absl::symbolize
115    absl::time
116    Threads::Threads
117  PUBLIC
118)
119
120absl_cc_test(
121  NAME
122    barrier_test
123  SRCS
124    "barrier_test.cc"
125  COPTS
126    ${ABSL_TEST_COPTS}
127  DEPS
128    absl::synchronization
129    absl::time
130    GTest::gmock_main
131)
132
133absl_cc_test(
134  NAME
135    blocking_counter_test
136  SRCS
137    "blocking_counter_test.cc"
138  COPTS
139    ${ABSL_TEST_COPTS}
140  DEPS
141    absl::synchronization
142    absl::time
143    GTest::gmock_main
144)
145
146absl_cc_test(
147  NAME
148    graphcycles_test
149  SRCS
150    "internal/graphcycles_test.cc"
151  COPTS
152    ${ABSL_TEST_COPTS}
153  DEPS
154    absl::check
155    absl::core_headers
156    absl::graphcycles_internal
157    absl::log
158    GTest::gmock_main
159)
160
161# Internal-only target, do not depend on directly.
162absl_cc_library(
163  NAME
164    thread_pool
165  HDRS
166    "internal/thread_pool.h"
167  COPTS
168    ${ABSL_DEFAULT_COPTS}
169  DEPS
170    absl::any_invocable
171    absl::core_headers
172    absl::synchronization
173  TESTONLY
174)
175
176absl_cc_test(
177  NAME
178    mutex_test
179  SRCS
180    "mutex_test.cc"
181  COPTS
182    ${ABSL_TEST_COPTS}
183  DEPS
184    absl::synchronization
185    absl::thread_pool
186    absl::base
187    absl::check
188    absl::config
189    absl::core_headers
190    absl::log
191    absl::memory
192    absl::time
193    GTest::gmock_main
194)
195
196absl_cc_test(
197  NAME
198    mutex_method_pointer_test
199  SRCS
200    "mutex_method_pointer_test.cc"
201  COPTS
202    ${ABSL_TEST_COPTS}
203  DEPS
204    absl::base
205    absl::config
206    absl::synchronization
207    GTest::gmock_main
208)
209
210absl_cc_test(
211  NAME
212    notification_test
213  SRCS
214    "notification_test.cc"
215  COPTS
216    ${ABSL_TEST_COPTS}
217  DEPS
218    absl::synchronization
219    absl::time
220    GTest::gmock_main
221)
222
223# Internal-only target, do not depend on directly.
224absl_cc_library(
225  NAME
226    per_thread_sem_test_common
227  SRCS
228    "internal/per_thread_sem_test.cc"
229  COPTS
230    ${ABSL_TEST_COPTS}
231  DEPS
232    absl::synchronization
233    absl::base
234    absl::config
235    absl::strings
236    absl::time
237    GTest::gmock
238  TESTONLY
239)
240
241absl_cc_test(
242  NAME
243    per_thread_sem_test
244  SRCS
245    "internal/per_thread_sem_test.cc"
246  COPTS
247    ${ABSL_TEST_COPTS}
248  DEPS
249    absl::per_thread_sem_test_common
250    absl::synchronization
251    absl::strings
252    absl::time
253    GTest::gmock_main
254)
255
256absl_cc_test(
257  NAME
258    waiter_test
259  SRCS
260    "internal/waiter_test.cc"
261  COPTS
262    ${ABSL_TEST_COPTS}
263  DEPS
264    absl::config
265    absl::kernel_timeout_internal
266    absl::random_random
267    absl::synchronization
268    absl::thread_pool
269    absl::time
270    GTest::gmock_main
271)
272
273absl_cc_test(
274  NAME
275    lifetime_test
276  SRCS
277    "lifetime_test.cc"
278  COPTS
279    ${ABSL_TEST_COPTS}
280  DEPS
281    absl::synchronization
282    absl::core_headers
283    absl::check
284)
285