1*9356374aSAndroid Build Coastguard Worker# Copyright 2022 The Abseil Authors 2*9356374aSAndroid Build Coastguard Worker# 3*9356374aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*9356374aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*9356374aSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*9356374aSAndroid Build Coastguard Worker# 7*9356374aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*9356374aSAndroid Build Coastguard Worker# 9*9356374aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*9356374aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*9356374aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*9356374aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*9356374aSAndroid Build Coastguard Worker# limitations under the License. 14*9356374aSAndroid Build Coastguard Worker 15*9356374aSAndroid Build Coastguard Workerload( 16*9356374aSAndroid Build Coastguard Worker "//absl:copts/configure_copts.bzl", 17*9356374aSAndroid Build Coastguard Worker "ABSL_DEFAULT_COPTS", 18*9356374aSAndroid Build Coastguard Worker "ABSL_DEFAULT_LINKOPTS", 19*9356374aSAndroid Build Coastguard Worker "ABSL_TEST_COPTS", 20*9356374aSAndroid Build Coastguard Worker) 21*9356374aSAndroid Build Coastguard Worker 22*9356374aSAndroid Build Coastguard Workerpackage( 23*9356374aSAndroid Build Coastguard Worker default_visibility = ["//visibility:private"], 24*9356374aSAndroid Build Coastguard Worker features = [ 25*9356374aSAndroid Build Coastguard Worker "header_modules", 26*9356374aSAndroid Build Coastguard Worker "layering_check", 27*9356374aSAndroid Build Coastguard Worker "parse_headers", 28*9356374aSAndroid Build Coastguard Worker ], 29*9356374aSAndroid Build Coastguard Worker) 30*9356374aSAndroid Build Coastguard Worker 31*9356374aSAndroid Build Coastguard Workerlicenses(["notice"]) 32*9356374aSAndroid Build Coastguard Worker 33*9356374aSAndroid Build Coastguard Workercc_library( 34*9356374aSAndroid Build Coastguard Worker name = "cpu_detect", 35*9356374aSAndroid Build Coastguard Worker srcs = [ 36*9356374aSAndroid Build Coastguard Worker "internal/cpu_detect.cc", 37*9356374aSAndroid Build Coastguard Worker ], 38*9356374aSAndroid Build Coastguard Worker hdrs = ["internal/cpu_detect.h"], 39*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 40*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 41*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 42*9356374aSAndroid Build Coastguard Worker deps = [ 43*9356374aSAndroid Build Coastguard Worker "//absl/base", 44*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 45*9356374aSAndroid Build Coastguard Worker ], 46*9356374aSAndroid Build Coastguard Worker) 47*9356374aSAndroid Build Coastguard Worker 48*9356374aSAndroid Build Coastguard Workercc_library( 49*9356374aSAndroid Build Coastguard Worker name = "crc_internal", 50*9356374aSAndroid Build Coastguard Worker srcs = [ 51*9356374aSAndroid Build Coastguard Worker "internal/crc.cc", 52*9356374aSAndroid Build Coastguard Worker "internal/crc_internal.h", 53*9356374aSAndroid Build Coastguard Worker "internal/crc_x86_arm_combined.cc", 54*9356374aSAndroid Build Coastguard Worker ], 55*9356374aSAndroid Build Coastguard Worker hdrs = [ 56*9356374aSAndroid Build Coastguard Worker "internal/crc.h", 57*9356374aSAndroid Build Coastguard Worker "internal/crc32_x86_arm_combined_simd.h", 58*9356374aSAndroid Build Coastguard Worker ], 59*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 60*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 61*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 62*9356374aSAndroid Build Coastguard Worker deps = [ 63*9356374aSAndroid Build Coastguard Worker ":cpu_detect", 64*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 65*9356374aSAndroid Build Coastguard Worker "//absl/base:core_headers", 66*9356374aSAndroid Build Coastguard Worker "//absl/base:endian", 67*9356374aSAndroid Build Coastguard Worker "//absl/base:prefetch", 68*9356374aSAndroid Build Coastguard Worker "//absl/base:raw_logging_internal", 69*9356374aSAndroid Build Coastguard Worker "//absl/memory", 70*9356374aSAndroid Build Coastguard Worker "//absl/numeric:bits", 71*9356374aSAndroid Build Coastguard Worker ], 72*9356374aSAndroid Build Coastguard Worker) 73*9356374aSAndroid Build Coastguard Worker 74*9356374aSAndroid Build Coastguard Workercc_library( 75*9356374aSAndroid Build Coastguard Worker name = "crc32c", 76*9356374aSAndroid Build Coastguard Worker srcs = [ 77*9356374aSAndroid Build Coastguard Worker "crc32c.cc", 78*9356374aSAndroid Build Coastguard Worker "internal/crc32c_inline.h", 79*9356374aSAndroid Build Coastguard Worker "internal/crc_memcpy_fallback.cc", 80*9356374aSAndroid Build Coastguard Worker "internal/crc_memcpy_x86_arm_combined.cc", 81*9356374aSAndroid Build Coastguard Worker "internal/crc_non_temporal_memcpy.cc", 82*9356374aSAndroid Build Coastguard Worker ], 83*9356374aSAndroid Build Coastguard Worker hdrs = [ 84*9356374aSAndroid Build Coastguard Worker "crc32c.h", 85*9356374aSAndroid Build Coastguard Worker "internal/crc32c.h", 86*9356374aSAndroid Build Coastguard Worker "internal/crc_memcpy.h", 87*9356374aSAndroid Build Coastguard Worker ], 88*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 89*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 90*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:public"], 91*9356374aSAndroid Build Coastguard Worker deps = [ 92*9356374aSAndroid Build Coastguard Worker ":cpu_detect", 93*9356374aSAndroid Build Coastguard Worker ":crc_internal", 94*9356374aSAndroid Build Coastguard Worker ":non_temporal_memcpy", 95*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 96*9356374aSAndroid Build Coastguard Worker "//absl/base:core_headers", 97*9356374aSAndroid Build Coastguard Worker "//absl/base:endian", 98*9356374aSAndroid Build Coastguard Worker "//absl/base:prefetch", 99*9356374aSAndroid Build Coastguard Worker "//absl/strings", 100*9356374aSAndroid Build Coastguard Worker "//absl/strings:str_format", 101*9356374aSAndroid Build Coastguard Worker ], 102*9356374aSAndroid Build Coastguard Worker) 103*9356374aSAndroid Build Coastguard Worker 104*9356374aSAndroid Build Coastguard Workercc_test( 105*9356374aSAndroid Build Coastguard Worker name = "crc32c_test", 106*9356374aSAndroid Build Coastguard Worker srcs = ["crc32c_test.cc"], 107*9356374aSAndroid Build Coastguard Worker copts = ABSL_TEST_COPTS, 108*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 109*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 110*9356374aSAndroid Build Coastguard Worker deps = [ 111*9356374aSAndroid Build Coastguard Worker ":crc32c", 112*9356374aSAndroid Build Coastguard Worker "//absl/strings", 113*9356374aSAndroid Build Coastguard Worker "//absl/strings:str_format", 114*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest", 115*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest_main", 116*9356374aSAndroid Build Coastguard Worker ], 117*9356374aSAndroid Build Coastguard Worker) 118*9356374aSAndroid Build Coastguard Worker 119*9356374aSAndroid Build Coastguard Workercc_library( 120*9356374aSAndroid Build Coastguard Worker name = "non_temporal_arm_intrinsics", 121*9356374aSAndroid Build Coastguard Worker hdrs = ["internal/non_temporal_arm_intrinsics.h"], 122*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 123*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 124*9356374aSAndroid Build Coastguard Worker visibility = [ 125*9356374aSAndroid Build Coastguard Worker ":__pkg__", 126*9356374aSAndroid Build Coastguard Worker ], 127*9356374aSAndroid Build Coastguard Worker deps = [ 128*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 129*9356374aSAndroid Build Coastguard Worker ], 130*9356374aSAndroid Build Coastguard Worker) 131*9356374aSAndroid Build Coastguard Worker 132*9356374aSAndroid Build Coastguard Workercc_library( 133*9356374aSAndroid Build Coastguard Worker name = "non_temporal_memcpy", 134*9356374aSAndroid Build Coastguard Worker hdrs = ["internal/non_temporal_memcpy.h"], 135*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 136*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 137*9356374aSAndroid Build Coastguard Worker visibility = [ 138*9356374aSAndroid Build Coastguard Worker ":__pkg__", 139*9356374aSAndroid Build Coastguard Worker ], 140*9356374aSAndroid Build Coastguard Worker deps = [ 141*9356374aSAndroid Build Coastguard Worker ":non_temporal_arm_intrinsics", 142*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 143*9356374aSAndroid Build Coastguard Worker "//absl/base:core_headers", 144*9356374aSAndroid Build Coastguard Worker ], 145*9356374aSAndroid Build Coastguard Worker) 146*9356374aSAndroid Build Coastguard Worker 147*9356374aSAndroid Build Coastguard Workercc_test( 148*9356374aSAndroid Build Coastguard Worker name = "crc_memcpy_test", 149*9356374aSAndroid Build Coastguard Worker size = "large", 150*9356374aSAndroid Build Coastguard Worker srcs = ["internal/crc_memcpy_test.cc"], 151*9356374aSAndroid Build Coastguard Worker copts = ABSL_TEST_COPTS, 152*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 153*9356374aSAndroid Build Coastguard Worker shard_count = 3, 154*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 155*9356374aSAndroid Build Coastguard Worker deps = [ 156*9356374aSAndroid Build Coastguard Worker ":crc32c", 157*9356374aSAndroid Build Coastguard Worker "//absl/memory", 158*9356374aSAndroid Build Coastguard Worker "//absl/random", 159*9356374aSAndroid Build Coastguard Worker "//absl/random:distributions", 160*9356374aSAndroid Build Coastguard Worker "//absl/strings", 161*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest", 162*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest_main", 163*9356374aSAndroid Build Coastguard Worker ], 164*9356374aSAndroid Build Coastguard Worker) 165*9356374aSAndroid Build Coastguard Worker 166*9356374aSAndroid Build Coastguard Workercc_test( 167*9356374aSAndroid Build Coastguard Worker name = "non_temporal_memcpy_test", 168*9356374aSAndroid Build Coastguard Worker srcs = ["internal/non_temporal_memcpy_test.cc"], 169*9356374aSAndroid Build Coastguard Worker copts = ABSL_TEST_COPTS, 170*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 171*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 172*9356374aSAndroid Build Coastguard Worker deps = [ 173*9356374aSAndroid Build Coastguard Worker ":non_temporal_memcpy", 174*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest", 175*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest_main", 176*9356374aSAndroid Build Coastguard Worker ], 177*9356374aSAndroid Build Coastguard Worker) 178*9356374aSAndroid Build Coastguard Worker 179*9356374aSAndroid Build Coastguard Workercc_library( 180*9356374aSAndroid Build Coastguard Worker name = "crc_cord_state", 181*9356374aSAndroid Build Coastguard Worker srcs = ["internal/crc_cord_state.cc"], 182*9356374aSAndroid Build Coastguard Worker hdrs = ["internal/crc_cord_state.h"], 183*9356374aSAndroid Build Coastguard Worker copts = ABSL_DEFAULT_COPTS, 184*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 185*9356374aSAndroid Build Coastguard Worker visibility = ["//absl/strings:__pkg__"], 186*9356374aSAndroid Build Coastguard Worker deps = [ 187*9356374aSAndroid Build Coastguard Worker ":crc32c", 188*9356374aSAndroid Build Coastguard Worker "//absl/base:config", 189*9356374aSAndroid Build Coastguard Worker "//absl/base:no_destructor", 190*9356374aSAndroid Build Coastguard Worker "//absl/numeric:bits", 191*9356374aSAndroid Build Coastguard Worker ], 192*9356374aSAndroid Build Coastguard Worker) 193*9356374aSAndroid Build Coastguard Worker 194*9356374aSAndroid Build Coastguard Workercc_test( 195*9356374aSAndroid Build Coastguard Worker name = "crc_cord_state_test", 196*9356374aSAndroid Build Coastguard Worker srcs = ["internal/crc_cord_state_test.cc"], 197*9356374aSAndroid Build Coastguard Worker copts = ABSL_TEST_COPTS, 198*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 199*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 200*9356374aSAndroid Build Coastguard Worker deps = [ 201*9356374aSAndroid Build Coastguard Worker ":crc32c", 202*9356374aSAndroid Build Coastguard Worker ":crc_cord_state", 203*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest", 204*9356374aSAndroid Build Coastguard Worker "@com_google_googletest//:gtest_main", 205*9356374aSAndroid Build Coastguard Worker ], 206*9356374aSAndroid Build Coastguard Worker) 207*9356374aSAndroid Build Coastguard Worker 208*9356374aSAndroid Build Coastguard Workercc_binary( 209*9356374aSAndroid Build Coastguard Worker name = "crc32c_benchmark", 210*9356374aSAndroid Build Coastguard Worker testonly = True, 211*9356374aSAndroid Build Coastguard Worker srcs = ["crc32c_benchmark.cc"], 212*9356374aSAndroid Build Coastguard Worker copts = ABSL_TEST_COPTS, 213*9356374aSAndroid Build Coastguard Worker linkopts = ABSL_DEFAULT_LINKOPTS, 214*9356374aSAndroid Build Coastguard Worker tags = [ 215*9356374aSAndroid Build Coastguard Worker "benchmark", 216*9356374aSAndroid Build Coastguard Worker ], 217*9356374aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 218*9356374aSAndroid Build Coastguard Worker deps = [ 219*9356374aSAndroid Build Coastguard Worker ":crc32c", 220*9356374aSAndroid Build Coastguard Worker "//absl/memory", 221*9356374aSAndroid Build Coastguard Worker "//absl/strings", 222*9356374aSAndroid Build Coastguard Worker "@com_github_google_benchmark//:benchmark_main", 223*9356374aSAndroid Build Coastguard Worker ], 224*9356374aSAndroid Build Coastguard Worker) 225