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