xref: /aosp_15_r20/external/abseil-cpp/absl/crc/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
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::config
46    absl::core_headers
47    absl::endian
48    absl::prefetch
49    absl::raw_logging_internal
50    absl::memory
51    absl::bits
52)
53
54absl_cc_library(
55  NAME
56    crc32c
57  HDRS
58    "crc32c.h"
59    "internal/crc32c.h"
60    "internal/crc_memcpy.h"
61  SRCS
62    "crc32c.cc"
63    "internal/crc32c_inline.h"
64    "internal/crc_memcpy_fallback.cc"
65    "internal/crc_memcpy_x86_arm_combined.cc"
66    "internal/crc_non_temporal_memcpy.cc"
67  COPTS
68    ${ABSL_DEFAULT_COPTS}
69  DEPS
70    absl::crc_cpu_detect
71    absl::crc_internal
72    absl::non_temporal_memcpy
73    absl::config
74    absl::core_headers
75    absl::endian
76    absl::prefetch
77    absl::str_format
78    absl::strings
79)
80
81absl_cc_test(
82  NAME
83    crc32c_test
84  SRCS
85    "crc32c_test.cc"
86  COPTS
87    ${ABSL_DEFAULT_COPTS}
88  DEPS
89    absl::crc32c
90    absl::strings
91    absl::str_format
92    GTest::gtest_main
93)
94
95# Internal-only target, do not depend on directly.
96absl_cc_library(
97  NAME
98    non_temporal_arm_intrinsics
99  HDRS
100    "internal/non_temporal_arm_intrinsics.h"
101  COPTS
102    ${ABSL_DEFAULT_COPTS}
103  DEPS
104    absl::config
105)
106
107# Internal-only target, do not depend on directly.
108absl_cc_library(
109  NAME
110    non_temporal_memcpy
111  HDRS
112    "internal/non_temporal_memcpy.h"
113  COPTS
114    ${ABSL_DEFAULT_COPTS}
115  DEPS
116    absl::non_temporal_arm_intrinsics
117    absl::config
118    absl::core_headers
119)
120
121absl_cc_test(
122  NAME
123    crc_memcpy_test
124  SRCS
125    "internal/crc_memcpy_test.cc"
126  COPTS
127    ${ABSL_DEFAULT_COPTS}
128  DEPS
129    absl::crc32c
130    absl::memory
131    absl::random_random
132    absl::random_distributions
133    absl::strings
134    GTest::gtest_main
135)
136
137absl_cc_test(
138  NAME
139    non_temporal_memcpy_test
140  SRCS
141    "internal/non_temporal_memcpy_test.cc"
142  COPTS
143    ${ABSL_DEFAULT_COPTS}
144  DEPS
145    absl::non_temporal_memcpy
146    GTest::gtest_main
147)
148
149absl_cc_library(
150  NAME
151    crc_cord_state
152  HDRS
153    "internal/crc_cord_state.h"
154  SRCS
155    "internal/crc_cord_state.cc"
156  COPTS
157    ${ABSL_DEFAULT_COPTS}
158  DEPS
159    absl::crc32c
160    absl::config
161    absl::strings
162    absl::no_destructor
163)
164
165absl_cc_test(
166  NAME
167    crc_cord_state_test
168  SRCS
169    "internal/crc_cord_state_test.cc"
170  COPTS
171    ${ABSL_DEFAULT_COPTS}
172  DEPS
173    absl::crc_cord_state
174    absl::crc32c
175    GTest::gtest_main
176)
177