• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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",
30    "//third_party/abseil-cpp/absl/base:config",
31    "//third_party/abseil-cpp/absl/base:core_headers",
32    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
33    "//third_party/abseil-cpp/absl/base:endian",
34    "//third_party/abseil-cpp/absl/base:prefetch",
35    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
36    "//third_party/abseil-cpp/absl/memory",
37    "//third_party/abseil-cpp/absl/numeric:bits",
38  ]
39  visibility = [ ":*" ]
40}
41
42absl_source_set("crc32c") {
43  public = [
44    "crc32c.h",
45    "internal/crc32c.h",
46    "internal/crc_memcpy.h",
47  ]
48  sources = [
49    "crc32c.cc",
50    "internal/crc32c_inline.h",
51    "internal/crc_memcpy_fallback.cc",
52    "internal/crc_memcpy_x86_64.cc",
53    "internal/crc_non_temporal_memcpy.cc",
54  ]
55  deps = [
56    ":cpu_detect",
57    ":crc_internal",
58    ":non_temporal_memcpy",
59    "//third_party/abseil-cpp/absl/base:config",
60    "//third_party/abseil-cpp/absl/base:core_headers",
61    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
62    "//third_party/abseil-cpp/absl/base:endian",
63    "//third_party/abseil-cpp/absl/base:prefetch",
64    "//third_party/abseil-cpp/absl/strings:str_format",
65    "//third_party/abseil-cpp/absl/strings:string_view",
66  ]
67}
68
69absl_test("crc32c_test") {
70  sources = [ "crc32c_test.cc" ]
71  deps = [
72    ":crc32c",
73    "//third_party/abseil-cpp/absl/strings",
74    "//third_party/abseil-cpp/absl/strings:str_format",
75    "//third_party/abseil-cpp/absl/strings:string_view",
76  ]
77}
78
79absl_source_set("non_temporal_arm_intrinsics") {
80  public = [ "internal/non_temporal_arm_intrinsics.h" ]
81  deps = [
82    "//third_party/abseil-cpp/absl/base:config",
83  ]
84  visibility = [ ":*" ]
85}
86
87absl_source_set("non_temporal_memcpy") {
88  public = [ "internal/non_temporal_memcpy.h" ]
89  deps = [
90    ":non_temporal_arm_intrinsics",
91    "//third_party/abseil-cpp/absl/base:config",
92    "//third_party/abseil-cpp/absl/base:core_headers",
93  ]
94  visibility = [ ":*" ]
95}
96
97absl_test("crc_memcpy_test") {
98  sources = [ "internal/crc_memcpy_test.cc" ]
99  deps = [
100    ":crc32c",
101    "//third_party/abseil-cpp/absl/memory",
102    "//third_party/abseil-cpp/absl/random",
103    "//third_party/abseil-cpp/absl/random:distributions",
104    "//third_party/abseil-cpp/absl/strings",
105    "//third_party/abseil-cpp/absl/strings:string_view",
106  ]
107}
108
109absl_test("non_temporal_memcpy_test") {
110  sources = [ "internal/non_temporal_memcpy_test.cc" ]
111  deps = [
112    ":non_temporal_memcpy",
113  ]
114}
115
116absl_source_set("crc_cord_state") {
117  public = [ "internal/crc_cord_state.h" ]
118  sources = [ "internal/crc_cord_state.cc" ]
119  deps = [
120    ":crc32c",
121    "//third_party/abseil-cpp/absl/base:config",
122    "//third_party/abseil-cpp/absl/numeric:bits",
123    "//third_party/abseil-cpp/absl/strings",
124  ]
125  visibility = [
126    "//third_party/abseil-cpp/absl/strings:*",
127    "//third_party/abseil-cpp/absl/crc/*",
128  ]
129}
130
131absl_test("crc_cord_state_test") {
132  sources = [ "internal/crc_cord_state_test.cc" ]
133  deps = [
134    ":crc32c",
135    ":crc_cord_state",
136  ]
137}
138