326 lines
7.2 KiB
Plaintext
326 lines
7.2 KiB
Plaintext
// This Blueprint file loosely follows the logic of cpu_features'
|
|
// CMakeLists.txt and test/CMakeLists.txt files.
|
|
|
|
cc_defaults {
|
|
name: "cpu_features-defaults",
|
|
host_supported: true,
|
|
local_include_dirs: [
|
|
"include",
|
|
],
|
|
cflags: [
|
|
// Reserve 1024 bytes on the stack when reading from `/proc/cpuinfo`.
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=1024",
|
|
"-Wno-gnu-designator",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libcpu_features-utils",
|
|
defaults: ["cpu_features-defaults"],
|
|
srcs: [
|
|
"src/filesystem.c",
|
|
"src/stack_line_reader.c",
|
|
"src/string_view.c",
|
|
],
|
|
target: {
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libcpu_features-unix_based_hardware_detection",
|
|
defaults: ["cpu_features-defaults"],
|
|
srcs: [
|
|
"src/hwcaps.c",
|
|
"src/unix_features_aggregator.c",
|
|
],
|
|
cflags: [
|
|
"-DHAVE_DLFCN_H",
|
|
],
|
|
target: {
|
|
bionic: {
|
|
cflags: [
|
|
"-DHAVE_STRONG_GETAUXVAL",
|
|
],
|
|
},
|
|
},
|
|
static_libs: [
|
|
"libcpu_features-utils",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libcpu_features",
|
|
defaults: [
|
|
"cpu_features-defaults",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
whole_static_libs: [
|
|
"libcpu_features-utils",
|
|
],
|
|
arch: {
|
|
arm: {
|
|
srcs: [
|
|
"src/cpuinfo_arm.c",
|
|
],
|
|
whole_static_libs: [
|
|
"libcpu_features-unix_based_hardware_detection",
|
|
],
|
|
},
|
|
arm64: {
|
|
srcs: [
|
|
"src/cpuinfo_aarch64.c",
|
|
],
|
|
whole_static_libs: [
|
|
"libcpu_features-unix_based_hardware_detection",
|
|
],
|
|
cflags: [
|
|
"-Wno-gnu-designator",
|
|
],
|
|
},
|
|
x86: {
|
|
srcs: [
|
|
"src/cpuinfo_x86.c",
|
|
],
|
|
cflags: [
|
|
"-Wno-unused-variable",
|
|
],
|
|
},
|
|
x86_64: {
|
|
srcs: [
|
|
"src/cpuinfo_x86.c",
|
|
],
|
|
cflags: [
|
|
"-Wno-unused-variable",
|
|
],
|
|
},
|
|
},
|
|
target: {
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_binary {
|
|
name: "list_cpu_features",
|
|
defaults: [
|
|
"cpu_features-defaults",
|
|
],
|
|
srcs: [
|
|
"src/utils/list_cpu_features.c",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features",
|
|
],
|
|
}
|
|
|
|
// Tests.
|
|
|
|
cc_defaults {
|
|
name: "cpu_features-test-defaults",
|
|
test_suites: ["device-tests"],
|
|
host_supported: true,
|
|
compile_multilib: "both",
|
|
local_include_dirs: [
|
|
"include",
|
|
],
|
|
cflags: [
|
|
"-DCPU_FEATURES_TEST",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-string_view",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
srcs: [
|
|
"src/string_view.c",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-filesystem_for_testing",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
cflags: [
|
|
"-DCPU_FEATURES_MOCK_FILESYSTEM",
|
|
// TODO: Handle unused parameters in
|
|
// test/filesystem_for_testing.cc and remove this flag.
|
|
"-Wno-unused-parameter",
|
|
],
|
|
srcs: [
|
|
"test/filesystem_for_testing.cc",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-hwcaps_for_testing",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
cflags: [
|
|
"-DCPU_FEATURES_MOCK_GET_ELF_HWCAP_FROM_GETAUXVAL",
|
|
],
|
|
srcs: [
|
|
"test/hwcaps_for_testing.cc",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-string_view",
|
|
"libcpu_features-filesystem_for_testing",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "stack_line_reader-defaults",
|
|
cflags: [
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=1024",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-stack_line_reader",
|
|
defaults: [
|
|
"cpu_features-test-defaults",
|
|
"stack_line_reader-defaults",
|
|
],
|
|
srcs: [
|
|
"src/stack_line_reader.c",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-filesystem_for_testing",
|
|
"libcpu_features-string_view",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-stack_line_reader_for_test",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
cflags: [
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=16",
|
|
],
|
|
srcs: [
|
|
"src/stack_line_reader.c",
|
|
],
|
|
whole_static_libs: [
|
|
"libcpu_features-filesystem_for_testing",
|
|
"libcpu_features-string_view",
|
|
],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libcpu_features-all_libraries",
|
|
defaults: [
|
|
"cpu_features-test-defaults",
|
|
"stack_line_reader-defaults",
|
|
],
|
|
srcs: [
|
|
"src/unix_features_aggregator.c",
|
|
],
|
|
whole_static_libs: [
|
|
"libcpu_features-filesystem_for_testing",
|
|
"libcpu_features-hwcaps_for_testing",
|
|
"libcpu_features-stack_line_reader",
|
|
"libcpu_features-string_view",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "cpu_features-bit_utils_test",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
srcs: [
|
|
"test/bit_utils_test.cc",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "cpu_features-string_view_test",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
srcs: [
|
|
"test/string_view_test.cc",
|
|
"src/string_view.c",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-string_view",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "cpu_features-stack_line_reader_test",
|
|
defaults: [
|
|
"cpu_features-test-defaults",
|
|
"stack_line_reader-defaults",
|
|
],
|
|
cflags: [
|
|
// TODO: Handle unused funtions in
|
|
// test/stack_line_reader_test.cc and remove this flag.
|
|
"-Wno-unused-function",
|
|
],
|
|
srcs: [
|
|
"test/stack_line_reader_test.cc",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-stack_line_reader_for_test",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "cpu_features-unix_features_aggregator_test",
|
|
defaults: ["cpu_features-test-defaults"],
|
|
srcs: [
|
|
"test/unix_features_aggregator_test.cc",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-all_libraries",
|
|
],
|
|
}
|
|
|
|
cc_test {
|
|
name: "cpu_features-cpuinfo_test",
|
|
defaults: [
|
|
"cpu_features-test-defaults",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-all_libraries",
|
|
],
|
|
arch: {
|
|
x86: {
|
|
cflags: [
|
|
"-DCPU_FEATURES_MOCK_CPUID_X86",
|
|
"-Wno-unused-variable",
|
|
],
|
|
srcs: [
|
|
"test/cpuinfo_x86_test.cc",
|
|
"src/cpuinfo_x86.c",
|
|
],
|
|
},
|
|
x86_64: {
|
|
cflags: [
|
|
"-DCPU_FEATURES_MOCK_CPUID_X86",
|
|
"-Wno-unused-variable",
|
|
],
|
|
srcs: [
|
|
"test/cpuinfo_x86_test.cc",
|
|
"src/cpuinfo_x86.c",
|
|
],
|
|
},
|
|
arm: {
|
|
cflags: [
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=1024",
|
|
],
|
|
srcs: [
|
|
"test/cpuinfo_arm_test.cc",
|
|
"src/cpuinfo_arm.c",
|
|
],
|
|
},
|
|
arm64: {
|
|
cflags: [
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=1024",
|
|
"-Wno-gnu-designator",
|
|
],
|
|
srcs: [
|
|
"test/cpuinfo_aarch64_test.cc",
|
|
"src/cpuinfo_aarch64.c",
|
|
],
|
|
},
|
|
},
|
|
}
|