370 lines
8.6 KiB
Plaintext
370 lines
8.6 KiB
Plaintext
// This Blueprint file loosely follows the logic of cpu_features'
|
|
// CMakeLists.txt and test/CMakeLists.txt files.
|
|
|
|
package {
|
|
default_applicable_licenses: ["external_cpu_features_license"],
|
|
}
|
|
|
|
// Added automatically by a large-scale-change that took the approach of
|
|
// 'apply every license found to every target'. While this makes sure we respect
|
|
// every license restriction, it may not be entirely correct.
|
|
//
|
|
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
|
|
//
|
|
// Please consider splitting the single license below into multiple licenses,
|
|
// taking care not to lose any license_kind information, and overriding the
|
|
// default license using the 'licenses: [...]' property on targets as needed.
|
|
//
|
|
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
|
|
// to attach the license to, and including a comment whether the files may be
|
|
// used in the current project.
|
|
// See: http://go/android-license-faq
|
|
license {
|
|
name: "external_cpu_features_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"SPDX-license-identifier-Apache-2.0",
|
|
"SPDX-license-identifier-BSD",
|
|
],
|
|
license_text: [
|
|
"LICENSE",
|
|
],
|
|
}
|
|
|
|
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",
|
|
],
|
|
min_sdk_version: "S",
|
|
}
|
|
|
|
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,
|
|
},
|
|
},
|
|
apex_available: [
|
|
"com.android.art",
|
|
"com.android.art.debug",
|
|
],
|
|
}
|
|
|
|
cc_library {
|
|
name: "libcpu_features-hwcaps",
|
|
defaults: ["cpu_features-defaults"],
|
|
srcs: [
|
|
"src/hwcaps.c",
|
|
],
|
|
cflags: [
|
|
"-DHAVE_DLFCN_H",
|
|
],
|
|
target: {
|
|
bionic: {
|
|
cflags: [
|
|
"-DHAVE_STRONG_GETAUXVAL",
|
|
],
|
|
},
|
|
},
|
|
static_libs: [
|
|
"libcpu_features-utils",
|
|
],
|
|
apex_available: [
|
|
"com.android.art",
|
|
"com.android.art.debug",
|
|
],
|
|
}
|
|
|
|
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-hwcaps",
|
|
],
|
|
},
|
|
arm64: {
|
|
srcs: [
|
|
"src/cpuinfo_aarch64.c",
|
|
],
|
|
whole_static_libs: [
|
|
"libcpu_features-hwcaps",
|
|
],
|
|
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,
|
|
},
|
|
},
|
|
apex_available: [
|
|
"com.android.art",
|
|
"com.android.art.debug",
|
|
],
|
|
}
|
|
|
|
cc_binary {
|
|
name: "list_cpu_features",
|
|
defaults: [
|
|
"cpu_features-defaults",
|
|
],
|
|
srcs: [
|
|
"src/utils/list_cpu_features.c",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features",
|
|
],
|
|
arch: {
|
|
// Function `AddCacheInfo` in `src/utils/list_cpu_features.c` is only used on x86/x86_64 and
|
|
// triggers an error with `-Werror and `-Wunused-function` on other architectures; disable
|
|
// the latter flag to avoid compilation errors on those architectures.
|
|
arm: {
|
|
cflags: [
|
|
"-Wno-unused-function",
|
|
],
|
|
},
|
|
arm64: {
|
|
cflags: [
|
|
"-Wno-unused-function",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
// 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",
|
|
"-DCPU_FEATURES_TEST",
|
|
],
|
|
srcs: [
|
|
"src/hwcaps.c",
|
|
"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",
|
|
],
|
|
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-cpuinfo_test",
|
|
defaults: [
|
|
"cpu_features-test-defaults",
|
|
],
|
|
static_libs: [
|
|
"libcpu_features-all_libraries",
|
|
],
|
|
cflags: [
|
|
"-DSTACK_LINE_READER_BUFFER_SIZE=1024",
|
|
],
|
|
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: {
|
|
srcs: [
|
|
"test/cpuinfo_arm_test.cc",
|
|
"src/cpuinfo_arm.c",
|
|
],
|
|
},
|
|
arm64: {
|
|
cflags: [
|
|
"-Wno-gnu-designator",
|
|
],
|
|
srcs: [
|
|
"test/cpuinfo_aarch64_test.cc",
|
|
"src/cpuinfo_aarch64.c",
|
|
],
|
|
},
|
|
},
|
|
}
|