|  | # Copyright 2023 The Chromium Authors | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | config("cpu_features_config") { | 
|  | cflags = [ "-Wno-unused-function" ] | 
|  | defines = [ | 
|  | "STACK_LINE_READER_BUFFER_SIZE=1024", | 
|  | "HAVE_STRONG_GETAUXVAL", | 
|  | ] | 
|  | include_dirs = [ "src/include" ] | 
|  | } | 
|  |  | 
|  | config("ndk_compat_headers") { | 
|  | include_dirs = [ "src/ndk_compat" ] | 
|  | } | 
|  |  | 
|  | source_set("cpuinfo") { | 
|  | sources = [ | 
|  | "src/src/copy.inl", | 
|  | "src/src/define_introspection.inl", | 
|  | "src/src/define_introspection_and_hwcaps.inl", | 
|  | "src/src/equals.inl", | 
|  | "src/src/filesystem.c", | 
|  | "src/src/hwcaps.c", | 
|  | "src/src/stack_line_reader.c", | 
|  | "src/src/string_view.c", | 
|  | ] | 
|  | if (current_cpu == "x86" || current_cpu == "x64") { | 
|  | sources += [ | 
|  | "src/src/impl_x86__base_implementation.inl", | 
|  | "src/src/impl_x86_freebsd.c", | 
|  | "src/src/impl_x86_linux_or_android.c", | 
|  | "src/src/impl_x86_macos.c", | 
|  | "src/src/impl_x86_windows.c", | 
|  | ] | 
|  | } else if (current_cpu == "arm") { | 
|  | sources += [ "src/src/impl_arm_linux_or_android.c" ] | 
|  | } else if (current_cpu == "arm64") { | 
|  | sources += [ "src/src/impl_aarch64_linux_or_android.c" ] | 
|  | } else if (current_cpu == "mips") { | 
|  | sources += [ "src/src/impl_mips_linux_or_android.c" ] | 
|  | } else if (current_cpu == "ppc") { | 
|  | sources += [ "src/src/impl_ppc_linux.c" ] | 
|  | } else if (current_cpu == "riscv64") { | 
|  | sources += [ "src/src/impl_riscv_linux.c" ] | 
|  | } else { | 
|  | error("Missing definition for architecture: $current_cpu") | 
|  | } | 
|  | configs += [ ":cpu_features_config" ] | 
|  | } | 
|  |  | 
|  | source_set("ndk_compat") { | 
|  | sources = [ | 
|  | "src/ndk_compat/cpu-features.c", | 
|  | "src/ndk_compat/cpu-features.h", | 
|  | ] | 
|  | configs += [ ":cpu_features_config" ] | 
|  | public_configs = [ ":ndk_compat_headers" ] | 
|  | deps = [ ":cpuinfo" ] | 
|  | } |