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