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