• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2022 The Abseil Authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# Internal-only target, do not depend on directly.
16absl_cc_library(
17  NAME
18    crc_cpu_detect
19  HDRS
20    "internal/cpu_detect.h"
21  SRCS
22    "internal/cpu_detect.cc"
23  COPTS
24    ${ABSL_DEFAULT_COPTS}
25  DEPS
26    absl::base
27    absl::config
28)
29
30# Internal-only target, do not depend on directly.
31absl_cc_library(
32  NAME
33    crc_internal
34  HDRS
35    "internal/crc.h"
36    "internal/crc32_x86_arm_combined_simd.h"
37  SRCS
38    "internal/crc.cc"
39    "internal/crc_internal.h"
40    "internal/crc_x86_arm_combined.cc"
41  COPTS
42    ${ABSL_DEFAULT_COPTS}
43  DEPS
44    absl::crc_cpu_detect
45    absl::base
46    absl::config
47    absl::core_headers
48    absl::dynamic_annotations
49    absl::endian
50    absl::prefetch
51    absl::raw_logging_internal
52    absl::memory
53    absl::bits
54)
55
56absl_cc_library(
57  NAME
58    crc32c
59  HDRS
60    "crc32c.h"
61    "internal/crc32c.h"
62    "internal/crc_memcpy.h"
63  SRCS
64    "crc32c.cc"
65    "internal/crc32c_inline.h"
66    "internal/crc_memcpy_fallback.cc"
67    "internal/crc_memcpy_x86_64.cc"
68    "internal/crc_non_temporal_memcpy.cc"
69  COPTS
70    ${ABSL_DEFAULT_COPTS}
71  DEPS
72    absl::crc_cpu_detect
73    absl::crc_internal
74    absl::non_temporal_memcpy
75    absl::config
76    absl::core_headers
77    absl::dynamic_annotations
78    absl::endian
79    absl::prefetch
80    absl::str_format
81    absl::strings
82)
83
84absl_cc_test(
85  NAME
86    crc32c_test
87  SRCS
88    "crc32c_test.cc"
89  COPTS
90    ${ABSL_DEFAULT_COPTS}
91  DEPS
92    absl::crc32c
93    absl::strings
94    absl::str_format
95    GTest::gtest_main
96)
97
98# Internal-only target, do not depend on directly.
99absl_cc_library(
100  NAME
101    non_temporal_arm_intrinsics
102  HDRS
103    "internal/non_temporal_arm_intrinsics.h"
104  COPTS
105    ${ABSL_DEFAULT_COPTS}
106  DEPS
107    absl::config
108)
109
110# Internal-only target, do not depend on directly.
111absl_cc_library(
112  NAME
113    non_temporal_memcpy
114  HDRS
115    "internal/non_temporal_memcpy.h"
116  COPTS
117    ${ABSL_DEFAULT_COPTS}
118  DEPS
119    absl::non_temporal_arm_intrinsics
120    absl::config
121    absl::core_headers
122)
123
124absl_cc_test(
125  NAME
126    crc_memcpy_test
127  SRCS
128    "internal/crc_memcpy_test.cc"
129  COPTS
130    ${ABSL_DEFAULT_COPTS}
131  DEPS
132    absl::crc32c
133    absl::memory
134    absl::random_random
135    absl::random_distributions
136    absl::strings
137    GTest::gtest_main
138)
139
140absl_cc_test(
141  NAME
142    non_temporal_memcpy_test
143  SRCS
144    "internal/non_temporal_memcpy_test.cc"
145  COPTS
146    ${ABSL_DEFAULT_COPTS}
147  DEPS
148    absl::non_temporal_memcpy
149    GTest::gtest_main
150)
151
152absl_cc_library(
153  NAME
154    crc_cord_state
155  HDRS
156    "internal/crc_cord_state.h"
157  SRCS
158    "internal/crc_cord_state.cc"
159  COPTS
160    ${ABSL_DEFAULT_COPTS}
161  DEPS
162    absl::crc32c
163    absl::config
164    absl::strings
165)
166
167absl_cc_test(
168  NAME
169    crc_cord_state_test
170  SRCS
171    "internal/crc_cord_state_test.cc"
172  COPTS
173    ${ABSL_DEFAULT_COPTS}
174  DEPS
175    absl::crc_cord_state
176    absl::crc32c
177    GTest::gtest_main
178)
179