xref: /aosp_15_r20/external/angle/third_party/abseil-cpp/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Worker# Flags specified here must not impact ABI. Code compiled with and without these
6*8975f5c5SAndroid Build Coastguard Worker# opts will be linked together, and in some cases headers compiled with and
7*8975f5c5SAndroid Build Coastguard Worker# without these options will be part of the same program.
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/c++/c++.gni")
10*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/nacl/config.gni")
11*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/sanitizers/sanitizers.gni")
12*8975f5c5SAndroid Build Coastguard Workerimport("//build/toolchain/toolchain.gni")
13*8975f5c5SAndroid Build Coastguard Workerimport("//build_overrides/build.gni")
14*8975f5c5SAndroid Build Coastguard Workerimport("//third_party/abseil-cpp/absl.gni")
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Workerconfig("absl_component_build") {
17*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ABSL_CONSUME_DLL" ]
18*8975f5c5SAndroid Build Coastguard Worker}
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Workerassert(!is_nacl || is_nacl_saigo,
21*8975f5c5SAndroid Build Coastguard Worker       "base must not be built in most nacl toolchains")
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Workercomponent("absl") {
24*8975f5c5SAndroid Build Coastguard Worker  public_deps = [ ":absl_component_deps" ]
25*8975f5c5SAndroid Build Coastguard Worker  if (is_component_build) {
26*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":absl_component_build" ]
27*8975f5c5SAndroid Build Coastguard Worker
28*8975f5c5SAndroid Build Coastguard Worker    if (is_win && is_clang) {
29*8975f5c5SAndroid Build Coastguard Worker      if (current_cpu == "x64") {
30*8975f5c5SAndroid Build Coastguard Worker        if (is_debug) {
31*8975f5c5SAndroid Build Coastguard Worker          sources = [ "symbols_x64_dbg.def" ]
32*8975f5c5SAndroid Build Coastguard Worker        } else {
33*8975f5c5SAndroid Build Coastguard Worker          if (is_asan) {
34*8975f5c5SAndroid Build Coastguard Worker            sources = [ "symbols_x64_rel_asan.def" ]
35*8975f5c5SAndroid Build Coastguard Worker          } else {
36*8975f5c5SAndroid Build Coastguard Worker            sources = [ "symbols_x64_rel.def" ]
37*8975f5c5SAndroid Build Coastguard Worker          }
38*8975f5c5SAndroid Build Coastguard Worker        }
39*8975f5c5SAndroid Build Coastguard Worker      }
40*8975f5c5SAndroid Build Coastguard Worker      if (current_cpu == "x86") {
41*8975f5c5SAndroid Build Coastguard Worker        if (is_debug) {
42*8975f5c5SAndroid Build Coastguard Worker          sources = [ "symbols_x86_dbg.def" ]
43*8975f5c5SAndroid Build Coastguard Worker        } else {
44*8975f5c5SAndroid Build Coastguard Worker          sources = [ "symbols_x86_rel.def" ]
45*8975f5c5SAndroid Build Coastguard Worker        }
46*8975f5c5SAndroid Build Coastguard Worker      }
47*8975f5c5SAndroid Build Coastguard Worker      if (current_cpu == "arm64") {
48*8975f5c5SAndroid Build Coastguard Worker        if (is_debug) {
49*8975f5c5SAndroid Build Coastguard Worker          sources = [ "symbols_arm64_dbg.def" ]
50*8975f5c5SAndroid Build Coastguard Worker        } else {
51*8975f5c5SAndroid Build Coastguard Worker          sources = [ "symbols_arm64_rel.def" ]
52*8975f5c5SAndroid Build Coastguard Worker        }
53*8975f5c5SAndroid Build Coastguard Worker      }
54*8975f5c5SAndroid Build Coastguard Worker    }
55*8975f5c5SAndroid Build Coastguard Worker  }
56*8975f5c5SAndroid Build Coastguard Worker}
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Workergroup("absl_component_deps") {
59*8975f5c5SAndroid Build Coastguard Worker  public_deps = [
60*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm",
61*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/algorithm:container",
62*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base",
63*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:config",
64*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:core_headers",
65*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:log_severity",
66*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:no_destructor",
67*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:nullability",
68*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:prefetch",
69*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/cleanup",
70*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:btree",
71*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:fixed_array",
72*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:flat_hash_map",
73*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:flat_hash_set",
74*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:inlined_vector",
75*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:node_hash_map",
76*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/container:node_hash_set",
77*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/debugging:failure_signal_handler",
78*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/debugging:stacktrace",
79*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/debugging:symbolize",
80*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/functional:any_invocable",
81*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/functional:bind_front",
82*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/functional:function_ref",
83*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/functional:overload",
84*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/hash",
85*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:absl_check",
86*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:absl_log",
87*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:absl_vlog_is_on",
88*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:die_if_null",
89*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:globals",
90*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:initialize",
91*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:log_entry",
92*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:log_sink",
93*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:log_sink_registry",
94*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/memory",
95*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/meta:type_traits",
96*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/numeric:bits",
97*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/numeric:int128",
98*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/random",
99*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/random:distributions",
100*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/status",
101*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/status:statusor",
102*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings",
103*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings:cord",
104*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings:has_ostream_operator",
105*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings:str_format",
106*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/strings:string_view",
107*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/synchronization",
108*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/time",
109*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:optional",
110*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:span",
111*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/types:variant",
112*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/utility",
113*8975f5c5SAndroid Build Coastguard Worker  ]
114*8975f5c5SAndroid Build Coastguard Worker
115*8975f5c5SAndroid Build Coastguard Worker  # Dependencies that preferably shouldn't be public in chromium.
116*8975f5c5SAndroid Build Coastguard Worker  public_deps += [
117*8975f5c5SAndroid Build Coastguard Worker    # public in abseil, but deprecated in chromium, yet used.
118*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
119*8975f5c5SAndroid Build Coastguard Worker
120*8975f5c5SAndroid Build Coastguard Worker    # base/logging.cc uses this non-public absl dependency while there no better
121*8975f5c5SAndroid Build Coastguard Worker    # alternative to inject abort hook. See notes in `base/logging.cc`.
122*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
123*8975f5c5SAndroid Build Coastguard Worker  ]
124*8975f5c5SAndroid Build Coastguard Worker
125*8975f5c5SAndroid Build Coastguard Worker  if (is_component_build) {
126*8975f5c5SAndroid Build Coastguard Worker    public_deps += [ ":absl_full_deps" ]
127*8975f5c5SAndroid Build Coastguard Worker  }
128*8975f5c5SAndroid Build Coastguard Worker
129*8975f5c5SAndroid Build Coastguard Worker  # The following dependencies currently don't build with NaCl.
130*8975f5c5SAndroid Build Coastguard Worker  # TODO(https://crbug.com/1114625): Fix build errors and remove this section.
131*8975f5c5SAndroid Build Coastguard Worker  if (is_nacl) {
132*8975f5c5SAndroid Build Coastguard Worker    public_deps -=
133*8975f5c5SAndroid Build Coastguard Worker        [ "//third_party/abseil-cpp/absl/debugging:failure_signal_handler" ]
134*8975f5c5SAndroid Build Coastguard Worker  }
135*8975f5c5SAndroid Build Coastguard Worker
136*8975f5c5SAndroid Build Coastguard Worker  visibility = [ ":absl" ]
137*8975f5c5SAndroid Build Coastguard Worker}
138*8975f5c5SAndroid Build Coastguard Worker
139*8975f5c5SAndroid Build Coastguard Worker# Some third-party libraries use additional parts of absl that are banned in
140*8975f5c5SAndroid Build Coastguard Worker# Chrome (e.g. flags generates static initializers that are undesirable in
141*8975f5c5SAndroid Build Coastguard Worker# non-test binaries). These third-party libraries can depend on `absl_full`
142*8975f5c5SAndroid Build Coastguard Worker# instead of `absl` to use those banned subsets of Abseil as well.
143*8975f5c5SAndroid Build Coastguard Workersource_set("absl_full") {
144*8975f5c5SAndroid Build Coastguard Worker  public_deps = [ ":absl" ]
145*8975f5c5SAndroid Build Coastguard Worker
146*8975f5c5SAndroid Build Coastguard Worker  # In component builds, `absl` itself depends on `absl_full_deps` directly so
147*8975f5c5SAndroid Build Coastguard Worker  # that all of absl is built as a single shared library. This is to prevent
148*8975f5c5SAndroid Build Coastguard Worker  # globals from being duplicated between both `absl` and `absl_full` (e.g.
149*8975f5c5SAndroid Build Coastguard Worker  # inline variables), and the subtle breakage that could cause.
150*8975f5c5SAndroid Build Coastguard Worker  #
151*8975f5c5SAndroid Build Coastguard Worker  # Deps violations will still be enforced by the non-component build.
152*8975f5c5SAndroid Build Coastguard Worker  if (!is_component_build) {
153*8975f5c5SAndroid Build Coastguard Worker    public_deps += [ ":absl_full_deps" ]
154*8975f5c5SAndroid Build Coastguard Worker  }
155*8975f5c5SAndroid Build Coastguard Worker
156*8975f5c5SAndroid Build Coastguard Worker  if (build_with_chromium) {
157*8975f5c5SAndroid Build Coastguard Worker    visibility = [
158*8975f5c5SAndroid Build Coastguard Worker      # Used by some test executables, but not by anything that is a
159*8975f5c5SAndroid Build Coastguard Worker      # part of Chrome.
160*8975f5c5SAndroid Build Coastguard Worker      "//components/optimization_guide/internal/*",
161*8975f5c5SAndroid Build Coastguard Worker      "//third_party/fuzztest:*",
162*8975f5c5SAndroid Build Coastguard Worker      "//third_party/webrtc/*",
163*8975f5c5SAndroid Build Coastguard Worker
164*8975f5c5SAndroid Build Coastguard Worker      # GoogleTest doesn't actually need absl_full, but this makes gn check
165*8975f5c5SAndroid Build Coastguard Worker      # happier.
166*8975f5c5SAndroid Build Coastguard Worker      "//third_party/googletest:*",
167*8975f5c5SAndroid Build Coastguard Worker    ]
168*8975f5c5SAndroid Build Coastguard Worker  }
169*8975f5c5SAndroid Build Coastguard Worker}
170*8975f5c5SAndroid Build Coastguard Worker
171*8975f5c5SAndroid Build Coastguard Workergroup("absl_full_deps") {
172*8975f5c5SAndroid Build Coastguard Worker  public_deps = [
173*8975f5c5SAndroid Build Coastguard Worker    # Banned because each flag registration generates a static initializer, and
174*8975f5c5SAndroid Build Coastguard Worker    # the flag registration mechanism is problematic in component builds.
175*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/flags:config",
176*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/flags:flag",
177*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/flags:parse",
178*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/flags:reflection",
179*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/flags:usage",
180*8975f5c5SAndroid Build Coastguard Worker
181*8975f5c5SAndroid Build Coastguard Worker    # Banned because the LOG and CHECK macros conflict with Chrome's version of
182*8975f5c5SAndroid Build Coastguard Worker    # those macros.
183*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log",
184*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:check",
185*8975f5c5SAndroid Build Coastguard Worker
186*8975f5c5SAndroid Build Coastguard Worker    # TODO(danilchap): Investigate if these targets need to be banned in 3rd party library code.
187*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:globals",
188*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/log:initialize",
189*8975f5c5SAndroid Build Coastguard Worker    "//third_party/abseil-cpp/absl/random:bit_gen_ref",
190*8975f5c5SAndroid Build Coastguard Worker  ]
191*8975f5c5SAndroid Build Coastguard Worker
192*8975f5c5SAndroid Build Coastguard Worker  visibility = [
193*8975f5c5SAndroid Build Coastguard Worker    ":absl_component_deps",
194*8975f5c5SAndroid Build Coastguard Worker    ":absl_full",
195*8975f5c5SAndroid Build Coastguard Worker  ]
196*8975f5c5SAndroid Build Coastguard Worker
197*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ "//third_party/abseil-cpp/absl/flags:absl_flags_config" ]
198*8975f5c5SAndroid Build Coastguard Worker}
199*8975f5c5SAndroid Build Coastguard Worker
200*8975f5c5SAndroid Build Coastguard Workerconfig("absl_include_config") {
201*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "." ]
202*8975f5c5SAndroid Build Coastguard Worker}
203*8975f5c5SAndroid Build Coastguard Worker
204*8975f5c5SAndroid Build Coastguard Workerconfig("absl_define_config") {
205*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ABSL_ALLOCATOR_NOTHROW=1" ]
206*8975f5c5SAndroid Build Coastguard Worker
207*8975f5c5SAndroid Build Coastguard Worker  if (is_win && !use_custom_libcxx) {
208*8975f5c5SAndroid Build Coastguard Worker    defines += [
209*8975f5c5SAndroid Build Coastguard Worker      # See crbug.com/1101367: Acknowledge extended alignment when using
210*8975f5c5SAndroid Build Coastguard Worker      # MSVC's standard library.
211*8975f5c5SAndroid Build Coastguard Worker      "_ENABLE_EXTENDED_ALIGNED_STORAGE",
212*8975f5c5SAndroid Build Coastguard Worker    ]
213*8975f5c5SAndroid Build Coastguard Worker  }
214*8975f5c5SAndroid Build Coastguard Worker}
215*8975f5c5SAndroid Build Coastguard Worker
216*8975f5c5SAndroid Build Coastguard Workerconfig("absl_default_cflags_cc") {
217*8975f5c5SAndroid Build Coastguard Worker  cflags_cc = []
218*8975f5c5SAndroid Build Coastguard Worker  if (is_clang) {
219*8975f5c5SAndroid Build Coastguard Worker    cflags_cc += [
220*8975f5c5SAndroid Build Coastguard Worker      # TODO(crbug.com/588506): Explicitly enable conversion warnings.
221*8975f5c5SAndroid Build Coastguard Worker      "-Wbool-conversion",
222*8975f5c5SAndroid Build Coastguard Worker      "-Wconstant-conversion",
223*8975f5c5SAndroid Build Coastguard Worker      "-Wenum-conversion",
224*8975f5c5SAndroid Build Coastguard Worker      "-Wint-conversion",
225*8975f5c5SAndroid Build Coastguard Worker      "-Wliteral-conversion",
226*8975f5c5SAndroid Build Coastguard Worker      "-Wnon-literal-null-conversion",
227*8975f5c5SAndroid Build Coastguard Worker      "-Wnull-conversion",
228*8975f5c5SAndroid Build Coastguard Worker      "-Wobjc-literal-conversion",
229*8975f5c5SAndroid Build Coastguard Worker      "-Wstring-conversion",
230*8975f5c5SAndroid Build Coastguard Worker    ]
231*8975f5c5SAndroid Build Coastguard Worker    if (!is_nacl) {
232*8975f5c5SAndroid Build Coastguard Worker      cflags_cc += [ "-Wbitfield-enum-conversion" ]
233*8975f5c5SAndroid Build Coastguard Worker    }
234*8975f5c5SAndroid Build Coastguard Worker  }
235*8975f5c5SAndroid Build Coastguard Worker}
236*8975f5c5SAndroid Build Coastguard Worker
237*8975f5c5SAndroid Build Coastguard Workerconfig("absl_test_cflags_cc") {
238*8975f5c5SAndroid Build Coastguard Worker  cflags_cc = []
239*8975f5c5SAndroid Build Coastguard Worker  if (is_clang || !is_win) {
240*8975f5c5SAndroid Build Coastguard Worker    cflags_cc += [
241*8975f5c5SAndroid Build Coastguard Worker      "-Wno-conversion-null",
242*8975f5c5SAndroid Build Coastguard Worker      "-Wno-missing-declarations",
243*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-function",
244*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-parameter",
245*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-private-field",
246*8975f5c5SAndroid Build Coastguard Worker    ]
247*8975f5c5SAndroid Build Coastguard Worker  }
248*8975f5c5SAndroid Build Coastguard Worker  if (is_win) {
249*8975f5c5SAndroid Build Coastguard Worker    cflags_cc += [
250*8975f5c5SAndroid Build Coastguard Worker      "/wd4101",  # unreferenced local variable
251*8975f5c5SAndroid Build Coastguard Worker    ]
252*8975f5c5SAndroid Build Coastguard Worker  }
253*8975f5c5SAndroid Build Coastguard Worker}
254*8975f5c5SAndroid Build Coastguard Worker
255*8975f5c5SAndroid Build Coastguard Workerconfig("absl_test_config") {
256*8975f5c5SAndroid Build Coastguard Worker  cflags_cc = []
257*8975f5c5SAndroid Build Coastguard Worker  if (is_win && !is_clang) {
258*8975f5c5SAndroid Build Coastguard Worker    cflags_cc += [ "/wd4996" ]
259*8975f5c5SAndroid Build Coastguard Worker  }
260*8975f5c5SAndroid Build Coastguard Worker  if (is_clang) {
261*8975f5c5SAndroid Build Coastguard Worker    cflags_cc += [
262*8975f5c5SAndroid Build Coastguard Worker      "-Wno-deprecated-declarations",
263*8975f5c5SAndroid Build Coastguard Worker      "-Wno-implicit-const-int-float-conversion",
264*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-private-field",
265*8975f5c5SAndroid Build Coastguard Worker      "-Wno-unused-function",
266*8975f5c5SAndroid Build Coastguard Worker    ]
267*8975f5c5SAndroid Build Coastguard Worker  }
268*8975f5c5SAndroid Build Coastguard Worker}
269*8975f5c5SAndroid Build Coastguard Worker
270*8975f5c5SAndroid Build Coastguard Workerif (absl_build_tests) {
271*8975f5c5SAndroid Build Coastguard Worker  import("//testing/test.gni")
272*8975f5c5SAndroid Build Coastguard Worker
273*8975f5c5SAndroid Build Coastguard Worker  if (!is_component_build) {
274*8975f5c5SAndroid Build Coastguard Worker    test("absl_tests") {
275*8975f5c5SAndroid Build Coastguard Worker      testonly = true
276*8975f5c5SAndroid Build Coastguard Worker      deps = [
277*8975f5c5SAndroid Build Coastguard Worker        "absl/algorithm:algorithm_test",
278*8975f5c5SAndroid Build Coastguard Worker        "absl/algorithm:container_test",
279*8975f5c5SAndroid Build Coastguard Worker        "absl/base:config_test",
280*8975f5c5SAndroid Build Coastguard Worker        "absl/base:no_destructor_test",
281*8975f5c5SAndroid Build Coastguard Worker        "absl/base:nullability_default_nonnull_test",
282*8975f5c5SAndroid Build Coastguard Worker        "absl/base:nullability_test",
283*8975f5c5SAndroid Build Coastguard Worker        "absl/base:poison_test",
284*8975f5c5SAndroid Build Coastguard Worker        "absl/base:prefetch_test",
285*8975f5c5SAndroid Build Coastguard Worker        "absl/base:tracing_internal_strong_test",
286*8975f5c5SAndroid Build Coastguard Worker        "absl/base:tracing_internal_weak_test",
287*8975f5c5SAndroid Build Coastguard Worker        "absl/cleanup:cleanup_test",
288*8975f5c5SAndroid Build Coastguard Worker
289*8975f5c5SAndroid Build Coastguard Worker        # TODO(mbonadei): Fix issue with EXPECT_DEATH and uncomment.
290*8975f5c5SAndroid Build Coastguard Worker        # "absl/container:btree_test",
291*8975f5c5SAndroid Build Coastguard Worker        "absl/container:common_policy_traits_test",
292*8975f5c5SAndroid Build Coastguard Worker        "absl/container:fixed_array_test",
293*8975f5c5SAndroid Build Coastguard Worker        "absl/container:flat_hash_map_test",
294*8975f5c5SAndroid Build Coastguard Worker        "absl/container:flat_hash_set_test",
295*8975f5c5SAndroid Build Coastguard Worker        "absl/container:hash_function_defaults_test",
296*8975f5c5SAndroid Build Coastguard Worker        "absl/container:inlined_vector_test",
297*8975f5c5SAndroid Build Coastguard Worker        "absl/container:node_hash_map_test",
298*8975f5c5SAndroid Build Coastguard Worker        "absl/container:node_hash_set_test",
299*8975f5c5SAndroid Build Coastguard Worker        "absl/container:node_slot_policy_test",
300*8975f5c5SAndroid Build Coastguard Worker        "absl/container:raw_hash_set_allocator_test",
301*8975f5c5SAndroid Build Coastguard Worker        "absl/container:raw_hash_set_test",
302*8975f5c5SAndroid Build Coastguard Worker        "absl/container:sample_element_size_test",
303*8975f5c5SAndroid Build Coastguard Worker        "absl/crc:crc32c_test",
304*8975f5c5SAndroid Build Coastguard Worker        "absl/crc:crc_cord_state_test",
305*8975f5c5SAndroid Build Coastguard Worker        "absl/crc:crc_memcpy_test",
306*8975f5c5SAndroid Build Coastguard Worker        "absl/crc:non_temporal_memcpy_test",
307*8975f5c5SAndroid Build Coastguard Worker        "absl/debugging:bounded_utf8_length_sequence_test",
308*8975f5c5SAndroid Build Coastguard Worker        "absl/debugging:decode_rust_punycode_test",
309*8975f5c5SAndroid Build Coastguard Worker        "absl/debugging:demangle_rust_test",
310*8975f5c5SAndroid Build Coastguard Worker        "absl/debugging:stacktrace_test",
311*8975f5c5SAndroid Build Coastguard Worker        "absl/debugging:utf8_for_code_point_test",
312*8975f5c5SAndroid Build Coastguard Worker        "absl/flags:flag_test",
313*8975f5c5SAndroid Build Coastguard Worker        "absl/functional:any_invocable_test",
314*8975f5c5SAndroid Build Coastguard Worker        "absl/functional:function_ref_test",
315*8975f5c5SAndroid Build Coastguard Worker        "absl/functional:overload_test",
316*8975f5c5SAndroid Build Coastguard Worker        "absl/hash:hash_instantiated_test",
317*8975f5c5SAndroid Build Coastguard Worker        "absl/hash:hash_test",
318*8975f5c5SAndroid Build Coastguard Worker        "absl/hash:low_level_hash_test",
319*8975f5c5SAndroid Build Coastguard Worker        "absl/log:absl_check_test",
320*8975f5c5SAndroid Build Coastguard Worker        "absl/log:absl_log_basic_test",
321*8975f5c5SAndroid Build Coastguard Worker        "absl/log:die_if_null_test",
322*8975f5c5SAndroid Build Coastguard Worker        "absl/log:flags_test",
323*8975f5c5SAndroid Build Coastguard Worker        "absl/log:globals_test",
324*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_entry_test",
325*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_format_test",
326*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_macro_hygiene_test",
327*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_modifier_methods_test",
328*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_sink_test",
329*8975f5c5SAndroid Build Coastguard Worker        "absl/log:log_streamer_test",
330*8975f5c5SAndroid Build Coastguard Worker        "absl/log:scoped_mock_log_test",
331*8975f5c5SAndroid Build Coastguard Worker        "absl/log:stripping_test",
332*8975f5c5SAndroid Build Coastguard Worker        "absl/log:vlog_is_on_test",
333*8975f5c5SAndroid Build Coastguard Worker        "absl/log/internal:fnmatch_test",
334*8975f5c5SAndroid Build Coastguard Worker        "absl/log/internal:stderr_log_sink_test",
335*8975f5c5SAndroid Build Coastguard Worker        "absl/memory:memory_test",
336*8975f5c5SAndroid Build Coastguard Worker        "absl/meta:type_traits_test",
337*8975f5c5SAndroid Build Coastguard Worker        "absl/numeric:int128_test",
338*8975f5c5SAndroid Build Coastguard Worker        "absl/profiling:exponential_biased_test",
339*8975f5c5SAndroid Build Coastguard Worker        "absl/profiling:periodic_sampler_test",
340*8975f5c5SAndroid Build Coastguard Worker        "absl/random:distributions_test",
341*8975f5c5SAndroid Build Coastguard Worker        "absl/random:mock_distributions_test",
342*8975f5c5SAndroid Build Coastguard Worker        "absl/status:status_matchers_test",
343*8975f5c5SAndroid Build Coastguard Worker        "absl/status:status_test",
344*8975f5c5SAndroid Build Coastguard Worker        "absl/status:statusor_test",
345*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:ascii_test",
346*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:char_formatting_test",
347*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:charset_test",
348*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_buffer_test",
349*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_data_edge_test",
350*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_rep_btree_navigator_test",
351*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_rep_btree_reader_test",
352*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_rep_btree_test",
353*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cord_rep_crc_test",
354*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_functions_test",
355*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_info_statistics_test",
356*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_info_test",
357*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_test",
358*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_update_scope_test",
359*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:cordz_update_tracker_test",
360*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:damerau_levenshtein_distance_test",
361*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:has_absl_stringify_test",
362*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:has_ostream_operator_test",
363*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:match_test",
364*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_arg_test",
365*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_bind_test",
366*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_checker_test",
367*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_convert_test",
368*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_extension_test",
369*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_output_test",
370*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_parser_test",
371*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_format_test",
372*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:str_replace_test",
373*8975f5c5SAndroid Build Coastguard Worker        "absl/strings:string_view_test",
374*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:barrier_test",
375*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:graphcycles_test",
376*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:kernel_timeout_internal_test",
377*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:mutex_test",
378*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:per_thread_sem_test",
379*8975f5c5SAndroid Build Coastguard Worker        "absl/synchronization:waiter_test",
380*8975f5c5SAndroid Build Coastguard Worker        "absl/time:time_test",
381*8975f5c5SAndroid Build Coastguard Worker        "absl/types:optional_test",
382*8975f5c5SAndroid Build Coastguard Worker        "absl/types:span_test",
383*8975f5c5SAndroid Build Coastguard Worker        "absl/types:variant_test",
384*8975f5c5SAndroid Build Coastguard Worker        "absl/utility:if_constexpr_test",
385*8975f5c5SAndroid Build Coastguard Worker        "//third_party/googletest:gtest_main",
386*8975f5c5SAndroid Build Coastguard Worker      ]
387*8975f5c5SAndroid Build Coastguard Worker    }
388*8975f5c5SAndroid Build Coastguard Worker  }
389*8975f5c5SAndroid Build Coastguard Worker
390*8975f5c5SAndroid Build Coastguard Worker  test("absl_hardening_tests") {
391*8975f5c5SAndroid Build Coastguard Worker    testonly = true
392*8975f5c5SAndroid Build Coastguard Worker    sources = [ "absl_hardening_test.cc" ]
393*8975f5c5SAndroid Build Coastguard Worker    deps = [
394*8975f5c5SAndroid Build Coastguard Worker      ":absl",
395*8975f5c5SAndroid Build Coastguard Worker      "//base/test:run_all_unittests",
396*8975f5c5SAndroid Build Coastguard Worker      "//third_party/googletest:gtest",
397*8975f5c5SAndroid Build Coastguard Worker    ]
398*8975f5c5SAndroid Build Coastguard Worker  }
399*8975f5c5SAndroid Build Coastguard Worker}
400