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