xref: /aosp_15_r20/external/pdfium/third_party/cpu_features/BUILD.gn (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker# Copyright 2023 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker# found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker
5*3ac0a46fSAndroid Build Coastguard Workerconfig("cpu_features_config") {
6*3ac0a46fSAndroid Build Coastguard Worker  cflags = [ "-Wno-unused-function" ]
7*3ac0a46fSAndroid Build Coastguard Worker  defines = [
8*3ac0a46fSAndroid Build Coastguard Worker    "STACK_LINE_READER_BUFFER_SIZE=1024",
9*3ac0a46fSAndroid Build Coastguard Worker    "HAVE_STRONG_GETAUXVAL",
10*3ac0a46fSAndroid Build Coastguard Worker  ]
11*3ac0a46fSAndroid Build Coastguard Worker  include_dirs = [ "src/include" ]
12*3ac0a46fSAndroid Build Coastguard Worker}
13*3ac0a46fSAndroid Build Coastguard Worker
14*3ac0a46fSAndroid Build Coastguard Workerconfig("ndk_compat_headers") {
15*3ac0a46fSAndroid Build Coastguard Worker  include_dirs = [ "src/ndk_compat" ]
16*3ac0a46fSAndroid Build Coastguard Worker}
17*3ac0a46fSAndroid Build Coastguard Worker
18*3ac0a46fSAndroid Build Coastguard Workersource_set("cpuinfo") {
19*3ac0a46fSAndroid Build Coastguard Worker  sources = [
20*3ac0a46fSAndroid Build Coastguard Worker    "src/src/copy.inl",
21*3ac0a46fSAndroid Build Coastguard Worker    "src/src/define_introspection.inl",
22*3ac0a46fSAndroid Build Coastguard Worker    "src/src/define_introspection_and_hwcaps.inl",
23*3ac0a46fSAndroid Build Coastguard Worker    "src/src/equals.inl",
24*3ac0a46fSAndroid Build Coastguard Worker    "src/src/filesystem.c",
25*3ac0a46fSAndroid Build Coastguard Worker    "src/src/hwcaps.c",
26*3ac0a46fSAndroid Build Coastguard Worker    "src/src/stack_line_reader.c",
27*3ac0a46fSAndroid Build Coastguard Worker    "src/src/string_view.c",
28*3ac0a46fSAndroid Build Coastguard Worker  ]
29*3ac0a46fSAndroid Build Coastguard Worker  if (current_cpu == "x86" || current_cpu == "x64") {
30*3ac0a46fSAndroid Build Coastguard Worker    sources += [
31*3ac0a46fSAndroid Build Coastguard Worker      "src/src/impl_x86__base_implementation.inl",
32*3ac0a46fSAndroid Build Coastguard Worker      "src/src/impl_x86_freebsd.c",
33*3ac0a46fSAndroid Build Coastguard Worker      "src/src/impl_x86_linux_or_android.c",
34*3ac0a46fSAndroid Build Coastguard Worker      "src/src/impl_x86_macos.c",
35*3ac0a46fSAndroid Build Coastguard Worker      "src/src/impl_x86_windows.c",
36*3ac0a46fSAndroid Build Coastguard Worker    ]
37*3ac0a46fSAndroid Build Coastguard Worker  } else if (current_cpu == "arm") {
38*3ac0a46fSAndroid Build Coastguard Worker    sources += [ "src/src/impl_arm_linux_or_android.c" ]
39*3ac0a46fSAndroid Build Coastguard Worker  } else if (current_cpu == "arm64") {
40*3ac0a46fSAndroid Build Coastguard Worker    sources += [ "src/src/impl_aarch64_linux_or_android.c" ]
41*3ac0a46fSAndroid Build Coastguard Worker  } else if (current_cpu == "mips") {
42*3ac0a46fSAndroid Build Coastguard Worker    sources += [ "src/src/impl_mips_linux_or_android.c" ]
43*3ac0a46fSAndroid Build Coastguard Worker  } else if (current_cpu == "ppc") {
44*3ac0a46fSAndroid Build Coastguard Worker    sources += [ "src/src/impl_ppc_linux.c" ]
45*3ac0a46fSAndroid Build Coastguard Worker  } else if (current_cpu == "riscv64") {
46*3ac0a46fSAndroid Build Coastguard Worker    sources += [ "src/src/impl_riscv_linux.c" ]
47*3ac0a46fSAndroid Build Coastguard Worker  } else {
48*3ac0a46fSAndroid Build Coastguard Worker    error("Missing definition for architecture: $current_cpu")
49*3ac0a46fSAndroid Build Coastguard Worker  }
50*3ac0a46fSAndroid Build Coastguard Worker  configs += [ ":cpu_features_config" ]
51*3ac0a46fSAndroid Build Coastguard Worker}
52*3ac0a46fSAndroid Build Coastguard Worker
53*3ac0a46fSAndroid Build Coastguard Workersource_set("ndk_compat") {
54*3ac0a46fSAndroid Build Coastguard Worker  sources = [
55*3ac0a46fSAndroid Build Coastguard Worker    "src/ndk_compat/cpu-features.c",
56*3ac0a46fSAndroid Build Coastguard Worker    "src/ndk_compat/cpu-features.h",
57*3ac0a46fSAndroid Build Coastguard Worker  ]
58*3ac0a46fSAndroid Build Coastguard Worker  configs += [ ":cpu_features_config" ]
59*3ac0a46fSAndroid Build Coastguard Worker  public_configs = [ ":ndk_compat_headers" ]
60*3ac0a46fSAndroid Build Coastguard Worker  deps = [ ":cpuinfo" ]
61*3ac0a46fSAndroid Build Coastguard Worker}
62