• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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::cord_test_helpers
72    absl::hash
73    absl::hash_testing
74    absl::core_headers
75    absl::btree
76    absl::flat_hash_map
77    absl::flat_hash_set
78    absl::node_hash_map
79    absl::node_hash_set
80    absl::spy_hash_state
81    absl::meta
82    absl::int128
83    GTest::gmock_main
84)
85
86absl_cc_test(
87  NAME
88    hash_instantiated_test
89  SRCS
90    "hash_test.cc"
91    "internal/hash_test.h"
92  COPTS
93    ${ABSL_TEST_COPTS}
94  DEPS
95    absl::hash
96    absl::hash_testing
97    absl::config
98    absl::btree
99    absl::flat_hash_map
100    absl::flat_hash_set
101    absl::node_hash_map
102    absl::node_hash_set
103    GTest::gtest_main
104)
105
106# Internal-only target, do not depend on directly.
107#
108# Note: Even though external code should not depend on this target
109# directly, it must be marked PUBLIC since it is a dependency of
110# hash_testing.
111absl_cc_library(
112  NAME
113    spy_hash_state
114  HDRS
115    "internal/spy_hash_state.h"
116  COPTS
117    ${ABSL_DEFAULT_COPTS}
118  DEPS
119    absl::hash
120    absl::strings
121    absl::str_format
122  TESTONLY
123  PUBLIC
124)
125
126# Internal-only target, do not depend on directly.
127absl_cc_library(
128  NAME
129    city
130  HDRS
131    "internal/city.h"
132  SRCS
133    "internal/city.cc"
134  COPTS
135    ${ABSL_DEFAULT_COPTS}
136  DEPS
137    absl::config
138    absl::core_headers
139    absl::endian
140)
141
142absl_cc_test(
143  NAME
144    city_test
145  SRCS
146    "internal/city_test.cc"
147  COPTS
148    ${ABSL_TEST_COPTS}
149  DEPS
150    absl::city
151    GTest::gmock_main
152)
153
154# Internal-only target, do not depend on directly.
155absl_cc_library(
156  NAME
157    low_level_hash
158  HDRS
159    "internal/low_level_hash.h"
160  SRCS
161    "internal/low_level_hash.cc"
162  COPTS
163    ${ABSL_DEFAULT_COPTS}
164  DEPS
165    absl::config
166    absl::endian
167    absl::int128
168    absl::prefetch
169)
170
171absl_cc_test(
172  NAME
173    low_level_hash_test
174  SRCS
175    "internal/low_level_hash_test.cc"
176  COPTS
177    ${ABSL_TEST_COPTS}
178  DEPS
179    absl::low_level_hash
180    absl::strings
181    GTest::gmock_main
182)
183