xref: /aosp_15_r20/external/webrtc/third_party/abseil-cpp/absl/base/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright 2018 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//third_party/abseil-cpp/absl.gni")
6
7absl_source_set("atomic_hook") {
8  public = [ "internal/atomic_hook.h" ]
9  public_deps = [
10    ":config",
11    ":core_headers",
12  ]
13  visibility = [ "//third_party/abseil-cpp/absl/*" ]
14}
15
16absl_source_set("errno_saver") {
17  public = [ "internal/errno_saver.h" ]
18  public_deps = [ ":config" ]
19  visibility = [ "//third_party/abseil-cpp/absl/*" ]
20}
21
22absl_source_set("log_severity") {
23  sources = [ "log_severity.cc" ]
24  public = [ "log_severity.h" ]
25  public_deps = [
26    ":config",
27    ":core_headers",
28  ]
29}
30
31absl_source_set("raw_logging_internal") {
32  sources = [ "internal/raw_logging.cc" ]
33  public = [ "internal/raw_logging.h" ]
34  public_deps = [
35    ":atomic_hook",
36    ":config",
37    ":core_headers",
38    ":errno_saver",
39    ":log_severity",
40  ]
41  visibility = [ "//third_party/abseil-cpp/absl/*" ]
42}
43
44absl_source_set("spinlock_wait") {
45  sources = [
46    "internal/spinlock_akaros.inc",
47    "internal/spinlock_linux.inc",
48    "internal/spinlock_posix.inc",
49    "internal/spinlock_wait.cc",
50    "internal/spinlock_win32.inc",
51  ]
52  public = [ "internal/spinlock_wait.h" ]
53  deps = [
54    ":base_internal",
55    ":core_headers",
56    ":errno_saver",
57  ]
58  visibility = [ "//third_party/abseil-cpp/absl/base:*" ]
59}
60
61absl_source_set("config") {
62  public = [
63    "config.h",
64    "options.h",
65    "policy_checks.h",
66  ]
67}
68
69absl_source_set("cycleclock_internal") {
70  public = [
71    "internal/cycleclock_config.h",
72    "internal/unscaledcycleclock_config.h",
73  ]
74  visibility = [ "//third_party/abseil-cpp/absl/*" ]
75  deps = [
76    ":base_internal",
77    ":config",
78  ]
79}
80
81absl_source_set("dynamic_annotations") {
82  public = [ "dynamic_annotations.h" ]
83
84  # Abseil's dynamic annotations are only visible inside Abseil because
85  # their usage is deprecated in Chromium (see README.chromium for more info).
86  visibility = [ "//third_party/abseil-cpp/absl/*" ]
87  deps = [
88    ":config",
89    ":core_headers",
90  ]
91}
92
93absl_source_set("core_headers") {
94  public = [
95    "attributes.h",
96    "const_init.h",
97    "macros.h",
98    "optimization.h",
99    "port.h",
100    "thread_annotations.h",
101  ]
102  public_deps = [ ":config" ]
103}
104
105absl_source_set("malloc_internal") {
106  sources = [ "internal/low_level_alloc.cc" ]
107  public = [
108    "internal/direct_mmap.h",
109    "internal/low_level_alloc.h",
110  ]
111  public_deps = [
112    ":base",
113    ":base_internal",
114    ":config",
115    ":core_headers",
116    ":dynamic_annotations",
117    ":raw_logging_internal",
118  ]
119}
120
121absl_source_set("base_internal") {
122  public = [
123    "internal/hide_ptr.h",
124    "internal/identity.h",
125    "internal/inline_variable.h",
126    "internal/invoke.h",
127    "internal/scheduling_mode.h",
128  ]
129  public_deps = [
130    ":config",
131    "//third_party/abseil-cpp/absl/meta:type_traits",
132  ]
133  visibility = [ "//third_party/abseil-cpp/absl/*" ]
134}
135
136absl_source_set("base") {
137  sources = [
138    "internal/cycleclock.cc",
139    "internal/spinlock.cc",
140    "internal/sysinfo.cc",
141    "internal/thread_identity.cc",
142    "internal/unscaledcycleclock.cc",
143  ]
144  public = [
145    "call_once.h",
146    "casts.h",
147    "internal/cycleclock.h",
148    "internal/low_level_scheduling.h",
149    "internal/per_thread_tls.h",
150    "internal/spinlock.h",
151    "internal/sysinfo.h",
152    "internal/thread_identity.h",
153    "internal/tsan_mutex_interface.h",
154    "internal/unscaledcycleclock.h",
155  ]
156
157  # TODO(mbonadei): The bazel file has:
158  #   "-DEFAULTLIB:advapi32.lib"
159  # understand if this is needed here as well.
160  public_deps = [
161    ":atomic_hook",
162    ":base_internal",
163    ":config",
164    ":core_headers",
165    ":cycleclock_internal",
166    ":dynamic_annotations",
167    ":log_severity",
168    ":raw_logging_internal",
169    ":spinlock_wait",
170    "//third_party/abseil-cpp/absl/meta:type_traits",
171  ]
172}
173
174absl_source_set("throw_delegate") {
175  sources = [ "internal/throw_delegate.cc" ]
176  public = [ "internal/throw_delegate.h" ]
177  public_deps = [
178    ":config",
179    ":raw_logging_internal",
180  ]
181  visibility = [ "//third_party/abseil-cpp/absl/*" ]
182}
183
184absl_source_set("exception_testing") {
185  testonly = true
186  public = [ "internal/exception_testing.h" ]
187  public_deps = [ ":config" ]
188  visibility = [ "//third_party/abseil-cpp/absl/*" ]
189}
190
191absl_source_set("pretty_function") {
192  public = [ "internal/pretty_function.h" ]
193  visibility = [ "//third_party/abseil-cpp/absl/*" ]
194}
195
196# TODO(mbonadei): This target throws by design. We should probably
197# just remove it.
198# source_set("exception_safety_testing") {
199#   testonly = true
200#   configs -= [ "//build/config/compiler:chromium_code" ]
201#   configs += [
202#     "//build/config/compiler:no_chromium_code",
203#     "//third_party/abseil-cpp:absl_test_cflags_cc",
204#   ]
205#   public_configs = [ "//third_party/abseil-cpp:absl_include_config" ]
206#   sources = [
207#     "internal/exception_safety_testing.cc",
208#   ]
209#   public = [
210#     "internal/exception_safety_testing.h",
211#   ]
212#   deps = [
213#     ":config",
214#     ":pretty_function",
215#     "//third_party/abseil-cpp/absl/memory",
216#     "//third_party/abseil-cpp/absl/meta:type_traits",
217#     "//third_party/abseil-cpp/absl/strings",
218#     "//third_party/abseil-cpp/absl/utility",
219#     "//third_party/googletest:gtest",
220#   ]
221# }
222
223absl_source_set("spinlock_test_common") {
224  testonly = true
225  sources = [ "spinlock_test_common.cc" ]
226  deps = [
227    ":base",
228    ":base_internal",
229    ":config",
230    ":core_headers",
231    "//third_party/abseil-cpp/absl/synchronization",
232    "//third_party/googletest:gtest",
233  ]
234}
235
236absl_source_set("endian") {
237  public = [
238    "internal/endian.h",
239    "internal/unaligned_access.h",
240  ]
241  public_deps = [
242    ":base",
243    ":config",
244    ":core_headers",
245  ]
246}
247
248absl_source_set("scoped_set_env") {
249  testonly = true
250  public = [ "internal/scoped_set_env.h" ]
251  sources = [ "internal/scoped_set_env.cc" ]
252  public_deps = [ ":config" ]
253  deps = [ ":raw_logging_internal" ]
254  visibility = [ "//third_party/abseil-cpp/absl/*" ]
255}
256
257absl_source_set("strerror") {
258  sources = [ "internal/strerror.cc" ]
259  public = [ "internal/strerror.h" ]
260  public_deps = [ ":config" ]
261  deps = [
262    ":core_headers",
263    ":errno_saver",
264  ]
265  visibility = [ "//third_party/abseil-cpp/absl/*" ]
266}
267
268absl_source_set("fast_type_id") {
269  public = [ "internal/fast_type_id.h" ]
270  public_deps = [ ":config" ]
271  visibility = [ "//third_party/abseil-cpp/absl/*" ]
272}
273
274absl_source_set("prefetch") {
275  public = [ "internal/prefetch.h" ]
276  deps = [ ":config" ]
277  visibility = [ "//third_party/abseil-cpp/absl/*" ]
278}
279
280absl_test("prefetch_test") {
281  sources = [ "internal/prefetch_test.cc" ]
282  deps = [ ":prefetch" ]
283}
284
285absl_test("config_test") {
286  sources = [ "config_test.cc" ]
287  deps = [
288    ":config",
289    "//third_party/abseil-cpp/absl/synchronization:thread_pool",
290  ]
291}
292