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
17absl_cc_library(
18  NAME
19    graphcycles_internal
20  HDRS
21    "internal/graphcycles.h"
22  SRCS
23    "internal/graphcycles.cc"
24  COPTS
25    ${ABSL_DEFAULT_COPTS}
26  DEPS
27    absl::base
28    absl::base_internal
29    absl::config
30    absl::core_headers
31    absl::malloc_internal
32    absl::raw_logging_internal
33)
34
35absl_cc_library(
36  NAME
37    kernel_timeout_internal
38  HDRS
39    "internal/kernel_timeout.h"
40  COPTS
41    ${ABSL_DEFAULT_COPTS}
42  DEPS
43    absl::core_headers
44    absl::raw_logging_internal
45    absl::time
46)
47
48absl_cc_library(
49  NAME
50    synchronization
51  HDRS
52    "barrier.h"
53    "blocking_counter.h"
54    "internal/create_thread_identity.h"
55    "internal/mutex_nonprod.inc"
56    "internal/per_thread_sem.h"
57    "internal/waiter.h"
58    "mutex.h"
59    "notification.h"
60  SRCS
61    "barrier.cc"
62    "blocking_counter.cc"
63    "internal/create_thread_identity.cc"
64    "internal/per_thread_sem.cc"
65    "internal/waiter.cc"
66    "notification.cc"
67    "mutex.cc"
68  COPTS
69    ${ABSL_DEFAULT_COPTS}
70  DEPS
71    absl::graphcycles_internal
72    absl::kernel_timeout_internal
73    absl::atomic_hook
74    absl::base
75    absl::base_internal
76    absl::config
77    absl::core_headers
78    absl::dynamic_annotations
79    absl::malloc_internal
80    absl::raw_logging_internal
81    absl::stacktrace
82    absl::symbolize
83    absl::time
84    Threads::Threads
85  PUBLIC
86)
87
88absl_cc_test(
89  NAME
90    barrier_test
91  SRCS
92    "barrier_test.cc"
93  COPTS
94    ${ABSL_TEST_COPTS}
95  DEPS
96    absl::synchronization
97    absl::time
98    gmock_main
99)
100
101absl_cc_test(
102  NAME
103    blocking_counter_test
104  SRCS
105    "blocking_counter_test.cc"
106  COPTS
107    ${ABSL_TEST_COPTS}
108  DEPS
109    absl::synchronization
110    absl::time
111    gmock_main
112)
113
114absl_cc_test(
115  NAME
116    graphcycles_test
117  SRCS
118    "internal/graphcycles_test.cc"
119  COPTS
120    ${ABSL_TEST_COPTS}
121  DEPS
122    absl::graphcycles_internal
123    absl::core_headers
124    absl::raw_logging_internal
125    gmock_main
126)
127
128absl_cc_library(
129  NAME
130    thread_pool
131  HDRS
132    "internal/thread_pool.h"
133  COPTS
134    ${ABSL_DEFAULT_COPTS}
135  DEPS
136    absl::synchronization
137    absl::core_headers
138  TESTONLY
139)
140
141absl_cc_test(
142  NAME
143    mutex_test
144  SRCS
145    "mutex_test.cc"
146  COPTS
147    ${ABSL_TEST_COPTS}
148  DEPS
149    absl::synchronization
150    absl::thread_pool
151    absl::base
152    absl::core_headers
153    absl::memory
154    absl::raw_logging_internal
155    absl::time
156    gmock_main
157)
158
159absl_cc_test(
160  NAME
161    notification_test
162  SRCS
163    "notification_test.cc"
164  COPTS
165    ${ABSL_TEST_COPTS}
166  DEPS
167    absl::synchronization
168    absl::time
169    gmock_main
170)
171
172absl_cc_library(
173  NAME
174    per_thread_sem_test_common
175  SRCS
176    "internal/per_thread_sem_test.cc"
177  COPTS
178    ${ABSL_TEST_COPTS}
179  DEPS
180    absl::synchronization
181    absl::base
182    absl::strings
183    absl::time
184    gmock
185  TESTONLY
186)
187
188absl_cc_test(
189  NAME
190    per_thread_sem_test
191  SRCS
192    "internal/per_thread_sem_test.cc"
193  COPTS
194    ${ABSL_TEST_COPTS}
195  DEPS
196    absl::per_thread_sem_test_common
197    absl::synchronization
198    absl::strings
199    absl::time
200    gmock_main
201)
202
203absl_cc_test(
204  NAME
205    lifetime_test
206  SRCS
207    "lifetime_test.cc"
208  COPTS
209    ${ABSL_TEST_COPTS}
210  DEPS
211    absl::synchronization
212    absl::core_headers
213    absl::raw_logging_internal
214)
215