xref: /aosp_15_r20/external/cronet/third_party/abseil-cpp/absl/crc/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2022 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//third_party/abseil-cpp/absl.gni")
6
7absl_source_set("cpu_detect") {
8  public = [ "internal/cpu_detect.h" ]
9  sources = [ "internal/cpu_detect.cc" ]
10  deps = [
11    "//third_party/abseil-cpp/absl/base",
12    "//third_party/abseil-cpp/absl/base:config",
13  ]
14  visibility = [ ":*" ]
15}
16
17absl_source_set("crc_internal") {
18  public = [
19    "internal/crc.h",
20    "internal/crc32_x86_arm_combined_simd.h",
21  ]
22  sources = [
23    "internal/crc.cc",
24    "internal/crc_internal.h",
25    "internal/crc_x86_arm_combined.cc",
26  ]
27  deps = [
28    ":cpu_detect",
29    "//third_party/abseil-cpp/absl/base:config",
30    "//third_party/abseil-cpp/absl/base:core_headers",
31    "//third_party/abseil-cpp/absl/base:endian",
32    "//third_party/abseil-cpp/absl/base:prefetch",
33    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
34    "//third_party/abseil-cpp/absl/memory",
35    "//third_party/abseil-cpp/absl/numeric:bits",
36  ]
37  visibility = [ ":*" ]
38}
39
40absl_source_set("crc32c") {
41  public = [
42    "crc32c.h",
43    "internal/crc32c.h",
44    "internal/crc_memcpy.h",
45  ]
46  sources = [
47    "crc32c.cc",
48    "internal/crc32c_inline.h",
49    "internal/crc_memcpy_fallback.cc",
50    "internal/crc_memcpy_x86_arm_combined.cc",
51    "internal/crc_non_temporal_memcpy.cc",
52  ]
53  deps = [
54    ":cpu_detect",
55    ":crc_internal",
56    ":non_temporal_memcpy",
57    "//third_party/abseil-cpp/absl/base:config",
58    "//third_party/abseil-cpp/absl/base:core_headers",
59    "//third_party/abseil-cpp/absl/base:endian",
60    "//third_party/abseil-cpp/absl/base:prefetch",
61    "//third_party/abseil-cpp/absl/strings:str_format",
62    "//third_party/abseil-cpp/absl/strings:string_view",
63  ]
64}
65
66absl_test("crc32c_test") {
67  sources = [ "crc32c_test.cc" ]
68  deps = [
69    ":crc32c",
70    "//third_party/abseil-cpp/absl/strings",
71    "//third_party/abseil-cpp/absl/strings:str_format",
72    "//third_party/abseil-cpp/absl/strings:string_view",
73  ]
74}
75
76absl_source_set("non_temporal_arm_intrinsics") {
77  public = [ "internal/non_temporal_arm_intrinsics.h" ]
78  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
79  visibility = [ ":*" ]
80}
81
82absl_source_set("non_temporal_memcpy") {
83  public = [ "internal/non_temporal_memcpy.h" ]
84  deps = [
85    ":non_temporal_arm_intrinsics",
86    "//third_party/abseil-cpp/absl/base:config",
87    "//third_party/abseil-cpp/absl/base:core_headers",
88  ]
89  visibility = [ ":*" ]
90}
91
92absl_test("crc_memcpy_test") {
93  sources = [ "internal/crc_memcpy_test.cc" ]
94  deps = [
95    ":crc32c",
96    "//third_party/abseil-cpp/absl/memory",
97    "//third_party/abseil-cpp/absl/random",
98    "//third_party/abseil-cpp/absl/random:distributions",
99    "//third_party/abseil-cpp/absl/strings",
100    "//third_party/abseil-cpp/absl/strings:string_view",
101  ]
102}
103
104absl_test("non_temporal_memcpy_test") {
105  sources = [ "internal/non_temporal_memcpy_test.cc" ]
106  deps = [ ":non_temporal_memcpy" ]
107}
108
109absl_source_set("crc_cord_state") {
110  public = [ "internal/crc_cord_state.h" ]
111  sources = [ "internal/crc_cord_state.cc" ]
112  deps = [
113    ":crc32c",
114    "//third_party/abseil-cpp/absl/base:config",
115    "//third_party/abseil-cpp/absl/base:no_destructor",
116    "//third_party/abseil-cpp/absl/numeric:bits",
117  ]
118  visibility = [
119    "//third_party/abseil-cpp/absl/crc/*",
120    "//third_party/abseil-cpp/absl/strings:*",
121  ]
122}
123
124absl_test("crc_cord_state_test") {
125  sources = [ "internal/crc_cord_state_test.cc" ]
126  deps = [
127    ":crc32c",
128    ":crc_cord_state",
129  ]
130}
131