1#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17absl_cc_library(
18  NAME
19    btree
20  HDRS
21    "btree_map.h"
22    "btree_set.h"
23    "internal/btree.h"
24    "internal/btree_container.h"
25  COPTS
26    ${ABSL_DEFAULT_COPTS}
27  LINKOPTS
28    ${ABSL_DEFAULT_LINKOPTS}
29  DEPS
30    absl::container_common
31    absl::common_policy_traits
32    absl::compare
33    absl::compressed_tuple
34    absl::container_memory
35    absl::cord
36    absl::core_headers
37    absl::layout
38    absl::memory
39    absl::raw_logging_internal
40    absl::strings
41    absl::throw_delegate
42    absl::type_traits
43    absl::utility
44)
45
46# Internal-only target, do not depend on directly.
47absl_cc_library(
48  NAME
49    btree_test_common
50  hdrs
51    "btree_test.h"
52  COPTS
53    ${ABSL_TEST_COPTS}
54  LINKOPTS
55    ${ABSL_DEFAULT_LINKOPTS}
56  DEPS
57    absl::btree
58    absl::cord
59    absl::flat_hash_set
60    absl::strings
61    absl::time
62  TESTONLY
63)
64
65absl_cc_test(
66  NAME
67    btree_test
68  SRCS
69    "btree_test.cc"
70  COPTS
71    ${ABSL_TEST_COPTS}
72  LINKOPTS
73    ${ABSL_DEFAULT_LINKOPTS}
74  DEPS
75    absl::algorithm_container
76    absl::btree
77    absl::btree_test_common
78    absl::compare
79    absl::core_headers
80    absl::counting_allocator
81    absl::flags
82    absl::hash_testing
83    absl::random_random
84    absl::raw_logging_internal
85    absl::strings
86    absl::test_instance_tracker
87    GTest::gmock_main
88)
89
90# Internal-only target, do not depend on directly.
91absl_cc_library(
92  NAME
93    compressed_tuple
94  HDRS
95    "internal/compressed_tuple.h"
96  COPTS
97    ${ABSL_DEFAULT_COPTS}
98  DEPS
99    absl::utility
100  PUBLIC
101)
102
103absl_cc_test(
104  NAME
105    compressed_tuple_test
106  SRCS
107    "internal/compressed_tuple_test.cc"
108  COPTS
109    ${ABSL_TEST_COPTS}
110  DEPS
111    absl::any
112    absl::compressed_tuple
113    absl::memory
114    absl::optional
115    absl::test_instance_tracker
116    absl::utility
117    GTest::gmock_main
118)
119
120absl_cc_library(
121  NAME
122    fixed_array
123  HDRS
124   "fixed_array.h"
125  COPTS
126    ${ABSL_DEFAULT_COPTS}
127  DEPS
128    absl::compressed_tuple
129    absl::algorithm
130    absl::config
131    absl::core_headers
132    absl::dynamic_annotations
133    absl::throw_delegate
134    absl::memory
135  PUBLIC
136)
137
138absl_cc_test(
139  NAME
140    fixed_array_test
141  SRCS
142    "fixed_array_test.cc"
143  COPTS
144    ${ABSL_TEST_COPTS}
145  DEPS
146    absl::fixed_array
147    absl::counting_allocator
148    absl::config
149    absl::exception_testing
150    absl::hash_testing
151    absl::memory
152    GTest::gmock_main
153)
154
155absl_cc_test(
156  NAME
157    fixed_array_exception_safety_test
158  SRCS
159    "fixed_array_exception_safety_test.cc"
160  COPTS
161    ${ABSL_TEST_COPTS}
162  DEPS
163    absl::fixed_array
164    absl::config
165    absl::exception_safety_testing
166    GTest::gmock_main
167)
168
169# Internal-only target, do not depend on directly.
170absl_cc_library(
171  NAME
172    inlined_vector_internal
173  HDRS
174   "internal/inlined_vector.h"
175  COPTS
176    ${ABSL_DEFAULT_COPTS}
177  DEPS
178    absl::compressed_tuple
179    absl::core_headers
180    absl::memory
181    absl::span
182    absl::type_traits
183  PUBLIC
184)
185
186absl_cc_library(
187  NAME
188    inlined_vector
189  HDRS
190   "inlined_vector.h"
191  COPTS
192    ${ABSL_DEFAULT_COPTS}
193  DEPS
194    absl::algorithm
195    absl::core_headers
196    absl::inlined_vector_internal
197    absl::throw_delegate
198    absl::memory
199    absl::type_traits
200  PUBLIC
201)
202
203# Internal-only target, do not depend on directly.
204absl_cc_library(
205  NAME
206    counting_allocator
207  HDRS
208    "internal/counting_allocator.h"
209  COPTS
210    ${ABSL_DEFAULT_COPTS}
211  DEPS
212    absl::config
213)
214
215absl_cc_test(
216  NAME
217    inlined_vector_test
218  SRCS
219    "inlined_vector_test.cc"
220  COPTS
221    ${ABSL_TEST_COPTS}
222  DEPS
223    absl::counting_allocator
224    absl::inlined_vector
225    absl::test_instance_tracker
226    absl::config
227    absl::core_headers
228    absl::exception_testing
229    absl::hash_testing
230    absl::memory
231    absl::raw_logging_internal
232    absl::strings
233    GTest::gmock_main
234)
235
236absl_cc_test(
237  NAME
238    inlined_vector_exception_safety_test
239  SRCS
240    "inlined_vector_exception_safety_test.cc"
241  COPTS
242    ${ABSL_TEST_COPTS}
243  DEPS
244    absl::inlined_vector
245    absl::config
246    absl::exception_safety_testing
247    GTest::gmock_main
248)
249
250# Internal-only target, do not depend on directly.
251absl_cc_library(
252  NAME
253    test_instance_tracker
254  HDRS
255    "internal/test_instance_tracker.h"
256  SRCS
257    "internal/test_instance_tracker.cc"
258  COPTS
259    ${ABSL_DEFAULT_COPTS}
260  DEPS
261    absl::compare
262  TESTONLY
263)
264
265absl_cc_test(
266  NAME
267    test_instance_tracker_test
268  SRCS
269    "internal/test_instance_tracker_test.cc"
270  COPTS
271    ${ABSL_TEST_COPTS}
272  DEPS
273    absl::test_instance_tracker
274    GTest::gmock_main
275)
276
277absl_cc_library(
278  NAME
279    flat_hash_map
280  HDRS
281    "flat_hash_map.h"
282  COPTS
283    ${ABSL_DEFAULT_COPTS}
284  DEPS
285    absl::container_memory
286    absl::core_headers
287    absl::hash_function_defaults
288    absl::raw_hash_map
289    absl::algorithm_container
290    absl::memory
291  PUBLIC
292)
293
294absl_cc_test(
295  NAME
296    flat_hash_map_test
297  SRCS
298    "flat_hash_map_test.cc"
299  COPTS
300    ${ABSL_TEST_COPTS}
301  DEPS
302    absl::flat_hash_map
303    absl::hash_generator_testing
304    absl::unordered_map_constructor_test
305    absl::unordered_map_lookup_test
306    absl::unordered_map_members_test
307    absl::unordered_map_modifiers_test
308    absl::any
309    absl::raw_logging_internal
310    GTest::gmock_main
311)
312
313absl_cc_library(
314  NAME
315    flat_hash_set
316  HDRS
317    "flat_hash_set.h"
318  COPTS
319    ${ABSL_DEFAULT_COPTS}
320  DEPS
321    absl::container_memory
322    absl::hash_function_defaults
323    absl::raw_hash_set
324    absl::algorithm_container
325    absl::core_headers
326    absl::memory
327  PUBLIC
328)
329
330absl_cc_test(
331  NAME
332    flat_hash_set_test
333  SRCS
334    "flat_hash_set_test.cc"
335  COPTS
336    ${ABSL_TEST_COPTS}
337    "-DUNORDERED_SET_CXX17"
338  DEPS
339    absl::flat_hash_set
340    absl::hash_generator_testing
341    absl::unordered_set_constructor_test
342    absl::unordered_set_lookup_test
343    absl::unordered_set_members_test
344    absl::unordered_set_modifiers_test
345    absl::memory
346    absl::raw_logging_internal
347    absl::strings
348    GTest::gmock_main
349)
350
351absl_cc_library(
352  NAME
353    node_hash_map
354  HDRS
355    "node_hash_map.h"
356  COPTS
357    ${ABSL_DEFAULT_COPTS}
358  DEPS
359    absl::container_memory
360    absl::core_headers
361    absl::hash_function_defaults
362    absl::node_slot_policy
363    absl::raw_hash_map
364    absl::algorithm_container
365    absl::memory
366  PUBLIC
367)
368
369absl_cc_test(
370  NAME
371    node_hash_map_test
372  SRCS
373    "node_hash_map_test.cc"
374  COPTS
375    ${ABSL_TEST_COPTS}
376  DEPS
377    absl::hash_generator_testing
378    absl::node_hash_map
379    absl::tracked
380    absl::unordered_map_constructor_test
381    absl::unordered_map_lookup_test
382    absl::unordered_map_members_test
383    absl::unordered_map_modifiers_test
384    GTest::gmock_main
385)
386
387absl_cc_library(
388  NAME
389    node_hash_set
390  HDRS
391    "node_hash_set.h"
392  COPTS
393    ${ABSL_DEFAULT_COPTS}
394  DEPS
395    absl::core_headers
396    absl::hash_function_defaults
397    absl::node_slot_policy
398    absl::raw_hash_set
399    absl::algorithm_container
400    absl::memory
401  PUBLIC
402)
403
404absl_cc_test(
405  NAME
406    node_hash_set_test
407  SRCS
408    "node_hash_set_test.cc"
409  COPTS
410    ${ABSL_TEST_COPTS}
411    "-DUNORDERED_SET_CXX17"
412  DEPS
413    absl::hash_generator_testing
414    absl::node_hash_set
415    absl::unordered_set_constructor_test
416    absl::unordered_set_lookup_test
417    absl::unordered_set_members_test
418    absl::unordered_set_modifiers_test
419    GTest::gmock_main
420)
421
422# Internal-only target, do not depend on directly.
423absl_cc_library(
424  NAME
425    container_memory
426  HDRS
427    "internal/container_memory.h"
428  COPTS
429    ${ABSL_DEFAULT_COPTS}
430  DEPS
431    absl::config
432    absl::memory
433    absl::type_traits
434    absl::utility
435  PUBLIC
436)
437
438absl_cc_test(
439  NAME
440    container_memory_test
441  SRCS
442    "internal/container_memory_test.cc"
443  COPTS
444    ${ABSL_TEST_COPTS}
445  DEPS
446    absl::container_memory
447    absl::strings
448    absl::test_instance_tracker
449    GTest::gmock_main
450)
451
452# Internal-only target, do not depend on directly.
453absl_cc_library(
454  NAME
455    hash_function_defaults
456  HDRS
457    "internal/hash_function_defaults.h"
458  COPTS
459    ${ABSL_DEFAULT_COPTS}
460  DEPS
461    absl::config
462    absl::cord
463    absl::hash
464    absl::strings
465  PUBLIC
466)
467
468absl_cc_test(
469  NAME
470    hash_function_defaults_test
471  SRCS
472    "internal/hash_function_defaults_test.cc"
473  COPTS
474    ${ABSL_TEST_COPTS}
475  DEPS
476    absl::cord
477    absl::cord_test_helpers
478    absl::hash_function_defaults
479    absl::hash
480    absl::random_random
481    absl::strings
482    GTest::gmock_main
483)
484
485# Internal-only target, do not depend on directly.
486absl_cc_library(
487  NAME
488    hash_generator_testing
489  HDRS
490    "internal/hash_generator_testing.h"
491  SRCS
492    "internal/hash_generator_testing.cc"
493  COPTS
494    ${ABSL_TEST_COPTS}
495  DEPS
496    absl::hash_policy_testing
497    absl::memory
498    absl::meta
499    absl::strings
500  TESTONLY
501)
502
503# Internal-only target, do not depend on directly.
504absl_cc_library(
505  NAME
506    hash_policy_testing
507  HDRS
508    "internal/hash_policy_testing.h"
509  COPTS
510    ${ABSL_TEST_COPTS}
511  DEPS
512    absl::hash
513    absl::strings
514  TESTONLY
515)
516
517absl_cc_test(
518  NAME
519    hash_policy_testing_test
520  SRCS
521    "internal/hash_policy_testing_test.cc"
522  COPTS
523    ${ABSL_TEST_COPTS}
524  DEPS
525    absl::hash_policy_testing
526    GTest::gmock_main
527)
528
529# Internal-only target, do not depend on directly.
530absl_cc_library(
531  NAME
532    hash_policy_traits
533  HDRS
534    "internal/hash_policy_traits.h"
535  COPTS
536    ${ABSL_DEFAULT_COPTS}
537  DEPS
538    absl::common_policy_traits
539    absl::meta
540  PUBLIC
541)
542
543absl_cc_test(
544  NAME
545    hash_policy_traits_test
546  SRCS
547    "internal/hash_policy_traits_test.cc"
548  COPTS
549    ${ABSL_TEST_COPTS}
550  DEPS
551    absl::hash_policy_traits
552    GTest::gmock_main
553)
554
555# Internal-only target, do not depend on directly.
556absl_cc_library(
557  NAME
558    common_policy_traits
559  HDRS
560    "internal/common_policy_traits.h"
561  COPTS
562    ${ABSL_DEFAULT_COPTS}
563  DEPS
564    absl::meta
565  PUBLIC
566)
567
568absl_cc_test(
569  NAME
570    common_policy_traits_test
571  SRCS
572    "internal/common_policy_traits_test.cc"
573  COPTS
574    ${ABSL_TEST_COPTS}
575  DEPS
576    absl::common_policy_traits
577    GTest::gmock_main
578)
579
580# Internal-only target, do not depend on directly.
581absl_cc_library(
582  NAME
583    hashtablez_sampler
584  HDRS
585    "internal/hashtablez_sampler.h"
586  SRCS
587    "internal/hashtablez_sampler.cc"
588    "internal/hashtablez_sampler_force_weak_definition.cc"
589  COPTS
590    ${ABSL_DEFAULT_COPTS}
591  DEPS
592    absl::base
593    absl::config
594    absl::exponential_biased
595    absl::sample_recorder
596    absl::synchronization
597)
598
599absl_cc_test(
600  NAME
601    hashtablez_sampler_test
602  SRCS
603    "internal/hashtablez_sampler_test.cc"
604  COPTS
605    ${ABSL_TEST_COPTS}
606  DEPS
607    absl::config
608    absl::hashtablez_sampler
609    GTest::gmock_main
610)
611
612# Internal-only target, do not depend on directly.
613absl_cc_library(
614  NAME
615    hashtable_debug
616  HDRS
617    "internal/hashtable_debug.h"
618  COPTS
619    ${ABSL_DEFAULT_COPTS}
620  DEPS
621    absl::hashtable_debug_hooks
622)
623
624# Internal-only target, do not depend on directly.
625absl_cc_library(
626  NAME
627    hashtable_debug_hooks
628  HDRS
629    "internal/hashtable_debug_hooks.h"
630  COPTS
631    ${ABSL_DEFAULT_COPTS}
632  DEPS
633    absl::config
634  PUBLIC
635)
636
637# Internal-only target, do not depend on directly.
638absl_cc_library(
639  NAME
640    node_slot_policy
641  HDRS
642    "internal/node_slot_policy.h"
643  COPTS
644    ${ABSL_DEFAULT_COPTS}
645  DEPS
646    absl::config
647  PUBLIC
648)
649
650absl_cc_test(
651  NAME
652    node_slot_policy_test
653  SRCS
654    "internal/node_slot_policy_test.cc"
655  COPTS
656    ${ABSL_TEST_COPTS}
657  DEPS
658    absl::hash_policy_traits
659    absl::node_slot_policy
660    GTest::gmock_main
661)
662
663# Internal-only target, do not depend on directly.
664absl_cc_library(
665  NAME
666    raw_hash_map
667  HDRS
668    "internal/raw_hash_map.h"
669  COPTS
670    ${ABSL_DEFAULT_COPTS}
671  DEPS
672    absl::container_memory
673    absl::raw_hash_set
674    absl::throw_delegate
675  PUBLIC
676)
677
678# Internal-only target, do not depend on directly.
679absl_cc_library(
680  NAME
681    container_common
682  HDRS
683    "internal/common.h"
684  COPTS
685    ${ABSL_DEFAULT_COPTS}
686  DEPS
687    absl::type_traits
688)
689
690# Internal-only target, do not depend on directly.
691absl_cc_library(
692  NAME
693    raw_hash_set
694  HDRS
695    "internal/raw_hash_set.h"
696  SRCS
697    "internal/raw_hash_set.cc"
698  COPTS
699    ${ABSL_DEFAULT_COPTS}
700  DEPS
701    absl::bits
702    absl::compressed_tuple
703    absl::config
704    absl::container_common
705    absl::container_memory
706    absl::core_headers
707    absl::endian
708    absl::hash_policy_traits
709    absl::hashtable_debug_hooks
710    absl::hashtablez_sampler
711    absl::memory
712    absl::meta
713    absl::optional
714    absl::prefetch
715    absl::raw_logging_internal
716    absl::utility
717  PUBLIC
718)
719
720absl_cc_test(
721  NAME
722    raw_hash_set_test
723  SRCS
724    "internal/raw_hash_set_test.cc"
725  COPTS
726    ${ABSL_TEST_COPTS}
727  DEPS
728    absl::base
729    absl::config
730    absl::container_memory
731    absl::core_headers
732    absl::flat_hash_map
733    absl::flat_hash_set
734    absl::hash_function_defaults
735    absl::hash_policy_testing
736    absl::hashtable_debug
737    absl::log
738    absl::prefetch
739    absl::raw_hash_set
740    absl::raw_logging_internal
741    absl::strings
742    GTest::gmock_main
743)
744
745absl_cc_test(
746  NAME
747    raw_hash_set_allocator_test
748  SRCS
749    "internal/raw_hash_set_allocator_test.cc"
750  COPTS
751    ${ABSL_TEST_COPTS}
752  DEPS
753    absl::raw_hash_set
754    absl::tracked
755    absl::core_headers
756    GTest::gmock_main
757)
758
759# Internal-only target, do not depend on directly.
760absl_cc_library(
761  NAME
762    layout
763  HDRS
764    "internal/layout.h"
765  COPTS
766    ${ABSL_DEFAULT_COPTS}
767  DEPS
768    absl::config
769    absl::core_headers
770    absl::meta
771    absl::strings
772    absl::span
773    absl::utility
774  PUBLIC
775)
776
777absl_cc_test(
778  NAME
779    layout_test
780  SRCS
781    "internal/layout_test.cc"
782  COPTS
783    ${ABSL_TEST_COPTS}
784  DEPS
785    absl::layout
786    absl::config
787    absl::core_headers
788    absl::raw_logging_internal
789    absl::span
790    GTest::gmock_main
791)
792
793# Internal-only target, do not depend on directly.
794absl_cc_library(
795  NAME
796    tracked
797  HDRS
798    "internal/tracked.h"
799  COPTS
800    ${ABSL_TEST_COPTS}
801  DEPS
802    absl::config
803  TESTONLY
804)
805
806# Internal-only target, do not depend on directly.
807absl_cc_library(
808  NAME
809    unordered_map_constructor_test
810  HDRS
811    "internal/unordered_map_constructor_test.h"
812  COPTS
813    ${ABSL_TEST_COPTS}
814  DEPS
815    absl::hash_generator_testing
816    absl::hash_policy_testing
817    GTest::gmock
818  TESTONLY
819)
820
821# Internal-only target, do not depend on directly.
822absl_cc_library(
823  NAME
824    unordered_map_lookup_test
825  HDRS
826    "internal/unordered_map_lookup_test.h"
827  COPTS
828    ${ABSL_TEST_COPTS}
829  DEPS
830    absl::hash_generator_testing
831    absl::hash_policy_testing
832    GTest::gmock
833  TESTONLY
834)
835
836# Internal-only target, do not depend on directly.
837absl_cc_library(
838  NAME
839    unordered_map_members_test
840  HDRS
841    "internal/unordered_map_members_test.h"
842  COPTS
843    ${ABSL_TEST_COPTS}
844  DEPS
845    absl::type_traits
846    GTest::gmock
847  TESTONLY
848)
849
850# Internal-only target, do not depend on directly.
851absl_cc_library(
852  NAME
853    unordered_map_modifiers_test
854  HDRS
855    "internal/unordered_map_modifiers_test.h"
856  COPTS
857    ${ABSL_TEST_COPTS}
858  DEPS
859    absl::hash_generator_testing
860    absl::hash_policy_testing
861    GTest::gmock
862  TESTONLY
863)
864
865# Internal-only target, do not depend on directly.
866absl_cc_library(
867  NAME
868    unordered_set_constructor_test
869  HDRS
870    "internal/unordered_set_constructor_test.h"
871  COPTS
872    ${ABSL_TEST_COPTS}
873  DEPS
874    absl::hash_generator_testing
875    absl::hash_policy_testing
876    GTest::gmock
877  TESTONLY
878)
879
880# Internal-only target, do not depend on directly.
881absl_cc_library(
882  NAME
883    unordered_set_lookup_test
884  HDRS
885    "internal/unordered_set_lookup_test.h"
886  COPTS
887    ${ABSL_TEST_COPTS}
888  DEPS
889    absl::hash_generator_testing
890    absl::hash_policy_testing
891    GTest::gmock
892  TESTONLY
893)
894
895# Internal-only target, do not depend on directly.
896absl_cc_library(
897  NAME
898    unordered_set_members_test
899  HDRS
900    "internal/unordered_set_members_test.h"
901  COPTS
902    ${ABSL_TEST_COPTS}
903  DEPS
904    absl::type_traits
905    GTest::gmock
906  TESTONLY
907)
908
909# Internal-only target, do not depend on directly.
910absl_cc_library(
911  NAME
912    unordered_set_modifiers_test
913  HDRS
914    "internal/unordered_set_modifiers_test.h"
915  COPTS
916    ${ABSL_TEST_COPTS}
917  DEPS
918    absl::hash_generator_testing
919    absl::hash_policy_testing
920    GTest::gmock
921  TESTONLY
922)
923
924absl_cc_test(
925  NAME
926    unordered_set_test
927  SRCS
928    "internal/unordered_set_test.cc"
929  COPTS
930    ${ABSL_TEST_COPTS}
931  DEPS
932    absl::unordered_set_constructor_test
933    absl::unordered_set_lookup_test
934    absl::unordered_set_members_test
935    absl::unordered_set_modifiers_test
936    GTest::gmock_main
937)
938
939absl_cc_test(
940  NAME
941    unordered_map_test
942  SRCS
943    "internal/unordered_map_test.cc"
944  COPTS
945    ${ABSL_TEST_COPTS}
946  DEPS
947    absl::unordered_map_constructor_test
948    absl::unordered_map_lookup_test
949    absl::unordered_map_members_test
950    absl::unordered_map_modifiers_test
951    GTest::gmock_main
952)
953
954absl_cc_test(
955  NAME
956    sample_element_size_test
957  SRCS
958    "sample_element_size_test.cc"
959  COPTS
960    ${ABSL_TEST_COPTS}
961  DEPS
962    absl::flat_hash_map
963    absl::flat_hash_set
964    absl::node_hash_map
965    absl::node_hash_set
966    GTest::gmock_main
967)
968