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