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