xref: /aosp_15_r20/external/cronet/third_party/abseil-cpp/absl/container/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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("compressed_tuple") {
8  public = [ "internal/compressed_tuple.h" ]
9  deps = [ "//third_party/abseil-cpp/absl/utility" ]
10}
11
12absl_source_set("fixed_array") {
13  public = [ "fixed_array.h" ]
14  deps = [
15    ":compressed_tuple",
16    "//third_party/abseil-cpp/absl/algorithm",
17    "//third_party/abseil-cpp/absl/base:config",
18    "//third_party/abseil-cpp/absl/base:core_headers",
19    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
20    "//third_party/abseil-cpp/absl/base:throw_delegate",
21    "//third_party/abseil-cpp/absl/memory",
22  ]
23}
24
25absl_test("fixed_array_test") {
26  sources = [ "fixed_array_test.cc" ]
27  deps = [
28    ":fixed_array",
29    ":test_allocator",
30    ":test_instance_tracker",
31    "//third_party/abseil-cpp/absl/base:config",
32    "//third_party/abseil-cpp/absl/base:exception_testing",
33    "//third_party/abseil-cpp/absl/hash:hash_testing",
34    "//third_party/abseil-cpp/absl/memory",
35  ]
36}
37
38absl_source_set("inlined_vector_internal") {
39  public = [ "internal/inlined_vector.h" ]
40  deps = [
41    ":compressed_tuple",
42    "//third_party/abseil-cpp/absl/base:config",
43    "//third_party/abseil-cpp/absl/base:core_headers",
44    "//third_party/abseil-cpp/absl/memory",
45    "//third_party/abseil-cpp/absl/meta:type_traits",
46    "//third_party/abseil-cpp/absl/types:span",
47  ]
48}
49
50absl_source_set("inlined_vector") {
51  public = [ "inlined_vector.h" ]
52  deps = [
53    ":inlined_vector_internal",
54    "//third_party/abseil-cpp/absl/algorithm",
55    "//third_party/abseil-cpp/absl/base:core_headers",
56    "//third_party/abseil-cpp/absl/base:throw_delegate",
57    "//third_party/abseil-cpp/absl/memory",
58    "//third_party/abseil-cpp/absl/meta:type_traits",
59  ]
60}
61
62absl_source_set("test_allocator") {
63  testonly = true
64  public = [ "internal/test_allocator.h" ]
65  deps = [
66    "//third_party/abseil-cpp/absl/base:config",
67    "//third_party/googletest:gtest",
68  ]
69  visibility = [ ":*" ]
70}
71
72absl_test("inlined_vector_test") {
73  sources = [ "inlined_vector_test.cc" ]
74  deps = [
75    ":inlined_vector",
76    ":test_allocator",
77    ":test_instance_tracker",
78    "//third_party/abseil-cpp/absl/base:config",
79    "//third_party/abseil-cpp/absl/base:core_headers",
80    "//third_party/abseil-cpp/absl/base:exception_testing",
81    "//third_party/abseil-cpp/absl/hash:hash_testing",
82    "//third_party/abseil-cpp/absl/log:check",
83    "//third_party/abseil-cpp/absl/memory",
84    "//third_party/abseil-cpp/absl/strings",
85  ]
86}
87
88absl_source_set("test_instance_tracker") {
89  testonly = true
90  sources = [ "internal/test_instance_tracker.cc" ]
91  public = [ "internal/test_instance_tracker.h" ]
92  deps = [ "//third_party/abseil-cpp/absl/types:compare" ]
93  visibility = [ "//third_party/abseil-cpp/absl/*" ]
94}
95
96absl_source_set("flat_hash_map") {
97  public = [ "flat_hash_map.h" ]
98  deps = [
99    ":container_memory",
100    ":hash_function_defaults",
101    ":raw_hash_map",
102    "//third_party/abseil-cpp/absl/algorithm:container",
103    "//third_party/abseil-cpp/absl/base:core_headers",
104    "//third_party/abseil-cpp/absl/memory",
105  ]
106}
107
108absl_test("flat_hash_map_test") {
109  sources = [ "flat_hash_map_test.cc" ]
110  deps = [
111    ":flat_hash_map",
112    ":hash_generator_testing",
113    ":test_allocator",
114    ":unordered_map_constructor_test",
115    ":unordered_map_lookup_test",
116    ":unordered_map_members_test",
117    ":unordered_map_modifiers_test",
118    "//third_party/abseil-cpp/absl/log:check",
119    "//third_party/abseil-cpp/absl/meta:type_traits",
120    "//third_party/abseil-cpp/absl/types:any",
121  ]
122}
123
124absl_source_set("flat_hash_set") {
125  public = [ "flat_hash_set.h" ]
126  deps = [
127    ":container_memory",
128    ":hash_function_defaults",
129    ":raw_hash_set",
130    "//third_party/abseil-cpp/absl/algorithm:container",
131    "//third_party/abseil-cpp/absl/base:core_headers",
132    "//third_party/abseil-cpp/absl/memory",
133  ]
134}
135
136absl_test("flat_hash_set_test") {
137  sources = [ "flat_hash_set_test.cc" ]
138  deps = [
139    ":container_memory",
140    ":flat_hash_set",
141    ":hash_generator_testing",
142    ":test_allocator",
143    ":unordered_set_constructor_test",
144    ":unordered_set_lookup_test",
145    ":unordered_set_members_test",
146    ":unordered_set_modifiers_test",
147    "//third_party/abseil-cpp/absl/base:config",
148    "//third_party/abseil-cpp/absl/log:check",
149    "//third_party/abseil-cpp/absl/memory",
150    "//third_party/abseil-cpp/absl/strings",
151  ]
152}
153
154absl_source_set("node_hash_map") {
155  public = [ "node_hash_map.h" ]
156  deps = [
157    ":container_memory",
158    ":hash_function_defaults",
159    ":node_slot_policy",
160    ":raw_hash_map",
161    "//third_party/abseil-cpp/absl/algorithm:container",
162    "//third_party/abseil-cpp/absl/base:core_headers",
163    "//third_party/abseil-cpp/absl/memory",
164  ]
165}
166
167absl_source_set("node_hash_set") {
168  public = [ "node_hash_set.h" ]
169  deps = [
170    ":container_memory",
171    ":hash_function_defaults",
172    ":node_slot_policy",
173    ":raw_hash_set",
174    "//third_party/abseil-cpp/absl/algorithm:container",
175    "//third_party/abseil-cpp/absl/base:core_headers",
176    "//third_party/abseil-cpp/absl/memory",
177  ]
178}
179
180absl_source_set("container_memory") {
181  public = [ "internal/container_memory.h" ]
182  deps = [
183    "//third_party/abseil-cpp/absl/base:config",
184    "//third_party/abseil-cpp/absl/memory",
185    "//third_party/abseil-cpp/absl/meta:type_traits",
186    "//third_party/abseil-cpp/absl/utility",
187  ]
188}
189
190# Disabled because container_memory_test requires -frtti
191# absl_test("container_memory_test") {
192#  sources = [ "internal/container_memory_test.cc" ]
193#  deps = [
194#    ":container_memory",
195#    ":test_instance_tracker",
196#    "//third_party/abseil-cpp/absl/base:no_destructor",
197#    "//third_party/abseil-cpp/absl/meta:type_traits",
198#    "//third_party/abseil-cpp/absl/strings",
199#  ]
200# }
201
202absl_source_set("hash_function_defaults") {
203  public = [ "internal/hash_function_defaults.h" ]
204  visibility = [ "//third_party/abseil-cpp/absl/container:*" ]
205  deps = [
206    ":common",
207    "//third_party/abseil-cpp/absl/base:config",
208    "//third_party/abseil-cpp/absl/hash",
209    "//third_party/abseil-cpp/absl/meta:type_traits",
210    "//third_party/abseil-cpp/absl/strings",
211    "//third_party/abseil-cpp/absl/strings:cord",
212    "//third_party/abseil-cpp/absl/strings:string_view",
213  ]
214}
215
216absl_test("hash_function_defaults_test") {
217  sources = [ "internal/hash_function_defaults_test.cc" ]
218  deps = [
219    ":flat_hash_map",
220    ":flat_hash_set",
221    ":hash_function_defaults",
222    "//third_party/abseil-cpp/absl/hash",
223    "//third_party/abseil-cpp/absl/random",
224    "//third_party/abseil-cpp/absl/strings",
225    "//third_party/abseil-cpp/absl/strings:cord",
226    "//third_party/abseil-cpp/absl/strings:cord_test_helpers",
227  ]
228}
229
230absl_source_set("hash_generator_testing") {
231  testonly = true
232  sources = [ "internal/hash_generator_testing.cc" ]
233  public = [ "internal/hash_generator_testing.h" ]
234  deps = [
235    ":hash_policy_testing",
236    "//third_party/abseil-cpp/absl/base:no_destructor",
237    "//third_party/abseil-cpp/absl/memory",
238    "//third_party/abseil-cpp/absl/meta:type_traits",
239    "//third_party/abseil-cpp/absl/strings:string_view",
240  ]
241}
242
243absl_source_set("hash_policy_testing") {
244  testonly = true
245  public = [ "internal/hash_policy_testing.h" ]
246  deps = [
247    "//third_party/abseil-cpp/absl/hash",
248    "//third_party/abseil-cpp/absl/strings:string_view",
249  ]
250}
251
252absl_source_set("hash_policy_traits") {
253  public = [ "internal/hash_policy_traits.h" ]
254  deps = [
255    ":common_policy_traits",
256    "//third_party/abseil-cpp/absl/meta:type_traits",
257  ]
258}
259
260absl_source_set("common_policy_traits") {
261  public = [ "internal/common_policy_traits.h" ]
262  visibility = [ "//third_party/abseil-cpp/absl/container:*" ]
263  deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
264}
265
266absl_test("common_policy_traits_test") {
267  sources = [ "internal/common_policy_traits_test.cc" ]
268  deps = [
269    ":common_policy_traits",
270    "//third_party/abseil-cpp/absl/base:config",
271  ]
272}
273
274absl_source_set("hashtable_debug") {
275  public = [ "internal/hashtable_debug.h" ]
276  deps = [ ":hashtable_debug_hooks" ]
277}
278
279absl_source_set("hashtable_debug_hooks") {
280  public = [ "internal/hashtable_debug_hooks.h" ]
281  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
282}
283
284absl_source_set("hashtablez_sampler") {
285  public = [ "internal/hashtablez_sampler.h" ]
286  sources = [
287    "internal/hashtablez_sampler.cc",
288    "internal/hashtablez_sampler_force_weak_definition.cc",
289  ]
290  deps = [
291    "//third_party/abseil-cpp/absl/base",
292    "//third_party/abseil-cpp/absl/base:config",
293    "//third_party/abseil-cpp/absl/base:core_headers",
294    "//third_party/abseil-cpp/absl/base:no_destructor",
295    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
296    "//third_party/abseil-cpp/absl/debugging:stacktrace",
297    "//third_party/abseil-cpp/absl/memory",
298    "//third_party/abseil-cpp/absl/profiling:exponential_biased",
299    "//third_party/abseil-cpp/absl/profiling:sample_recorder",
300    "//third_party/abseil-cpp/absl/synchronization",
301    "//third_party/abseil-cpp/absl/time",
302    "//third_party/abseil-cpp/absl/utility",
303  ]
304}
305
306absl_source_set("node_slot_policy") {
307  public = [ "internal/node_slot_policy.h" ]
308  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
309}
310
311absl_test("node_slot_policy_test") {
312  sources = [ "internal/node_slot_policy_test.cc" ]
313  deps = [
314    ":hash_policy_traits",
315    ":node_slot_policy",
316    "//third_party/abseil-cpp/absl/base:config",
317  ]
318}
319
320absl_source_set("raw_hash_map") {
321  public = [ "internal/raw_hash_map.h" ]
322  deps = [
323    ":container_memory",
324    ":raw_hash_set",
325    "//third_party/abseil-cpp/absl/base:config",
326    "//third_party/abseil-cpp/absl/base:core_headers",
327    "//third_party/abseil-cpp/absl/base:throw_delegate",
328  ]
329}
330
331absl_source_set("common") {
332  public = [ "internal/common.h" ]
333  deps = [
334    "//third_party/abseil-cpp/absl/meta:type_traits",
335    "//third_party/abseil-cpp/absl/types:optional",
336  ]
337}
338
339absl_source_set("raw_hash_set") {
340  sources = [ "internal/raw_hash_set.cc" ]
341  public = [ "internal/raw_hash_set.h" ]
342  deps = [
343    ":common",
344    ":compressed_tuple",
345    ":container_memory",
346    ":hash_policy_traits",
347    ":hashtable_debug_hooks",
348    ":hashtablez_sampler",
349    "//third_party/abseil-cpp/absl/base:config",
350    "//third_party/abseil-cpp/absl/base:core_headers",
351    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
352    "//third_party/abseil-cpp/absl/base:endian",
353    "//third_party/abseil-cpp/absl/base:prefetch",
354    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
355    "//third_party/abseil-cpp/absl/hash",
356    "//third_party/abseil-cpp/absl/memory",
357    "//third_party/abseil-cpp/absl/meta:type_traits",
358    "//third_party/abseil-cpp/absl/numeric:bits",
359    "//third_party/abseil-cpp/absl/utility",
360  ]
361}
362
363absl_test("raw_hash_set_test") {
364  sources = [ "internal/raw_hash_set_test.cc" ]
365  deps = [
366    ":container_memory",
367    ":flat_hash_map",
368    ":flat_hash_set",
369    ":hash_function_defaults",
370    ":hash_policy_testing",
371    ":hashtable_debug",
372    ":hashtablez_sampler",
373    ":raw_hash_set",
374    ":test_allocator",
375    "//third_party/abseil-cpp/absl/base",
376    "//third_party/abseil-cpp/absl/base:config",
377    "//third_party/abseil-cpp/absl/base:core_headers",
378    "//third_party/abseil-cpp/absl/base:prefetch",
379    "//third_party/abseil-cpp/absl/functional:function_ref",
380    "//third_party/abseil-cpp/absl/hash",
381    "//third_party/abseil-cpp/absl/log",
382    "//third_party/abseil-cpp/absl/log:check",
383    "//third_party/abseil-cpp/absl/memory",
384    "//third_party/abseil-cpp/absl/meta:type_traits",
385    "//third_party/abseil-cpp/absl/strings",
386  ]
387}
388
389absl_test("raw_hash_set_allocator_test") {
390  sources = [ "internal/raw_hash_set_allocator_test.cc" ]
391  deps = [
392    ":container_memory",
393    ":raw_hash_set",
394    ":tracked",
395    "//third_party/abseil-cpp/absl/base:config",
396  ]
397}
398
399absl_source_set("layout") {
400  public = [ "internal/layout.h" ]
401  deps = [
402    "//third_party/abseil-cpp/absl/base:config",
403    "//third_party/abseil-cpp/absl/base:core_headers",
404    "//third_party/abseil-cpp/absl/debugging:demangle_internal",
405    "//third_party/abseil-cpp/absl/meta:type_traits",
406    "//third_party/abseil-cpp/absl/strings",
407    "//third_party/abseil-cpp/absl/types:span",
408    "//third_party/abseil-cpp/absl/utility",
409  ]
410}
411
412absl_test("layout_test") {
413  sources = [ "internal/layout_test.cc" ]
414  deps = [
415    ":layout",
416    "//third_party/abseil-cpp/absl/base:config",
417    "//third_party/abseil-cpp/absl/log:check",
418    "//third_party/abseil-cpp/absl/types:span",
419    "//third_party/abseil-cpp/absl/utility",
420  ]
421}
422
423absl_source_set("tracked") {
424  testonly = true
425  public = [ "internal/tracked.h" ]
426  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
427}
428
429absl_source_set("unordered_map_constructor_test") {
430  testonly = true
431  public = [ "internal/unordered_map_constructor_test.h" ]
432  deps = [
433    ":hash_generator_testing",
434    ":hash_policy_testing",
435    "//third_party/googletest:gtest",
436  ]
437}
438
439absl_source_set("unordered_map_lookup_test") {
440  testonly = true
441  public = [ "internal/unordered_map_lookup_test.h" ]
442  deps = [
443    ":hash_generator_testing",
444    ":hash_policy_testing",
445    "//third_party/googletest:gtest",
446  ]
447}
448
449absl_source_set("unordered_map_modifiers_test") {
450  testonly = true
451  public = [ "internal/unordered_map_modifiers_test.h" ]
452  deps = [
453    ":hash_generator_testing",
454    ":hash_policy_testing",
455    "//third_party/googletest:gtest",
456  ]
457}
458
459absl_source_set("unordered_set_constructor_test") {
460  testonly = true
461  public = [ "internal/unordered_set_constructor_test.h" ]
462  deps = [
463    ":hash_generator_testing",
464    ":hash_policy_testing",
465    "//third_party/abseil-cpp/absl/meta:type_traits",
466    "//third_party/googletest:gtest",
467  ]
468}
469
470absl_source_set("unordered_set_members_test") {
471  testonly = true
472  public = [ "internal/unordered_set_members_test.h" ]
473  deps = [
474    "//third_party/abseil-cpp/absl/meta:type_traits",
475    "//third_party/googletest:gtest",
476  ]
477}
478
479absl_source_set("unordered_map_members_test") {
480  testonly = true
481  public = [ "internal/unordered_map_members_test.h" ]
482  deps = [
483    "//third_party/abseil-cpp/absl/meta:type_traits",
484    "//third_party/googletest:gtest",
485  ]
486}
487
488absl_source_set("unordered_set_lookup_test") {
489  testonly = true
490  public = [ "internal/unordered_set_lookup_test.h" ]
491  deps = [
492    ":hash_generator_testing",
493    ":hash_policy_testing",
494    "//third_party/googletest:gtest",
495  ]
496}
497
498absl_source_set("unordered_set_modifiers_test") {
499  testonly = true
500  public = [ "internal/unordered_set_modifiers_test.h" ]
501  deps = [
502    ":hash_generator_testing",
503    ":hash_policy_testing",
504    "//third_party/googletest:gtest",
505  ]
506}
507
508absl_test("sample_element_size_test") {
509  public = [ "sample_element_size_test.cc" ]
510  deps = [
511    ":flat_hash_map",
512    ":flat_hash_set",
513    ":node_hash_map",
514    ":node_hash_set",
515  ]
516}
517
518absl_source_set("btree") {
519  sources = [
520    "internal/btree.h",
521    "internal/btree_container.h",
522  ]
523  public = [
524    "btree_map.h",
525    "btree_set.h",
526  ]
527  deps = [
528    ":common",
529    ":common_policy_traits",
530    ":compressed_tuple",
531    ":container_memory",
532    ":layout",
533    "//third_party/abseil-cpp/absl/base:config",
534    "//third_party/abseil-cpp/absl/base:core_headers",
535    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
536    "//third_party/abseil-cpp/absl/base:throw_delegate",
537    "//third_party/abseil-cpp/absl/memory",
538    "//third_party/abseil-cpp/absl/meta:type_traits",
539    "//third_party/abseil-cpp/absl/strings:cord",
540    "//third_party/abseil-cpp/absl/strings:string_view",
541    "//third_party/abseil-cpp/absl/types:compare",
542  ]
543}
544
545absl_source_set("btree_test_common") {
546  testonly = true
547  public = [ "btree_test.h" ]
548  deps = [
549    ":btree",
550    ":flat_hash_set",
551    "//third_party/abseil-cpp/absl/strings",
552    "//third_party/abseil-cpp/absl/strings:cord",
553    "//third_party/abseil-cpp/absl/time",
554  ]
555}
556# TODO(mbonadei): Fix issue with EXPECT_DEATH and uncomment.
557# absl_test("btree_test") {
558#   sources = [ "btree_test.cc" ]
559#   deps = [
560#     ":btree",
561#     ":btree_test_common",
562#     ":test_allocator",
563#     ":test_instance_tracker",
564#     "//third_party/abseil-cpp/absl/algorithm:container",
565#     "//third_party/abseil-cpp/absl/base:core_headers",
566#     "//third_party/abseil-cpp/absl/base:raw_logging_internal",
567#     "//third_party/abseil-cpp/absl/flags:flag",
568#     "//third_party/abseil-cpp/absl/hash:hash_testing",
569#     "//third_party/abseil-cpp/absl/memory",
570#     "//third_party/abseil-cpp/absl/random",
571#     "//third_party/abseil-cpp/absl/strings",
572#     "//third_party/abseil-cpp/absl/types:compare",
573#     "//third_party/abseil-cpp/absl/types:optional",
574#   ]
575# }
576