xref: /aosp_15_r20/external/abseil-cpp/absl/hash/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
1#
2# Copyright 2018 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    hash
20  HDRS
21    "hash.h"
22  SRCS
23    "internal/hash.cc"
24    "internal/hash.h"
25  COPTS
26    ${ABSL_DEFAULT_COPTS}
27  DEPS
28    absl::bits
29    absl::city
30    absl::config
31    absl::core_headers
32    absl::endian
33    absl::fixed_array
34    absl::function_ref
35    absl::meta
36    absl::int128
37    absl::strings
38    absl::optional
39    absl::variant
40    absl::utility
41    absl::low_level_hash
42  PUBLIC
43)
44
45absl_cc_library(
46  NAME
47    hash_testing
48  HDRS
49    "hash_testing.h"
50  COPTS
51    ${ABSL_TEST_COPTS}
52  DEPS
53    absl::spy_hash_state
54    absl::meta
55    absl::strings
56    absl::variant
57    GTest::gmock
58  TESTONLY
59  PUBLIC
60)
61
62absl_cc_test(
63  NAME
64    hash_test
65  SRCS
66    "hash_test.cc"
67    "internal/hash_test.h"
68  COPTS
69    ${ABSL_TEST_COPTS}
70  DEPS
71    absl::btree
72    absl::cord_test_helpers
73    absl::core_headers
74    absl::flat_hash_map
75    absl::flat_hash_set
76    absl::hash
77    absl::hash_testing
78    absl::int128
79    absl::memory
80    absl::meta
81    absl::node_hash_map
82    absl::node_hash_set
83    absl::optional
84    absl::spy_hash_state
85    absl::string_view
86    absl::variant
87    GTest::gmock_main
88)
89
90absl_cc_test(
91  NAME
92    hash_instantiated_test
93  SRCS
94    "hash_instantiated_test.cc"
95    "internal/hash_test.h"
96  COPTS
97    ${ABSL_TEST_COPTS}
98  DEPS
99    absl::hash
100    absl::hash_testing
101    absl::config
102    absl::btree
103    absl::flat_hash_map
104    absl::flat_hash_set
105    absl::node_hash_map
106    absl::node_hash_set
107    GTest::gmock_main
108)
109
110# Internal-only target, do not depend on directly.
111#
112# Note: Even though external code should not depend on this target
113# directly, it must be marked PUBLIC since it is a dependency of
114# hash_testing.
115absl_cc_library(
116  NAME
117    spy_hash_state
118  HDRS
119    "internal/spy_hash_state.h"
120  COPTS
121    ${ABSL_DEFAULT_COPTS}
122  DEPS
123    absl::hash
124    absl::strings
125    absl::str_format
126  TESTONLY
127  PUBLIC
128)
129
130# Internal-only target, do not depend on directly.
131absl_cc_library(
132  NAME
133    city
134  HDRS
135    "internal/city.h"
136  SRCS
137    "internal/city.cc"
138  COPTS
139    ${ABSL_DEFAULT_COPTS}
140  DEPS
141    absl::config
142    absl::core_headers
143    absl::endian
144)
145
146absl_cc_test(
147  NAME
148    city_test
149  SRCS
150    "internal/city_test.cc"
151  COPTS
152    ${ABSL_TEST_COPTS}
153  DEPS
154    absl::city
155    GTest::gmock_main
156)
157
158# Internal-only target, do not depend on directly.
159absl_cc_library(
160  NAME
161    low_level_hash
162  HDRS
163    "internal/low_level_hash.h"
164  SRCS
165    "internal/low_level_hash.cc"
166  COPTS
167    ${ABSL_DEFAULT_COPTS}
168  DEPS
169    absl::config
170    absl::endian
171    absl::int128
172    absl::prefetch
173)
174
175absl_cc_test(
176  NAME
177    low_level_hash_test
178  SRCS
179    "internal/low_level_hash_test.cc"
180  COPTS
181    ${ABSL_TEST_COPTS}
182  DEPS
183    absl::low_level_hash
184    absl::strings
185    GTest::gmock_main
186)
187