xref: /aosp_15_r20/external/abseil-cpp/absl/crc/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
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