mirror of
https://github.com/google/cpu_features.git
synced 2025-04-27 07:02:30 +02:00
394 lines
9.0 KiB
Python
394 lines
9.0 KiB
Python
# cpu_features, a cross platform C89 library to get cpu features at runtime.
|
|
package(
|
|
default_copts = [
|
|
"-DDISABLE_GOOGLE_GLOBAL_USING_DECLARATIONS",
|
|
"-Wno-implicit-fallthrough",
|
|
"-Ithird_party/cpu_features/include",
|
|
],
|
|
default_visibility = ["//visibility:public"],
|
|
features = [
|
|
"-parse_headers", # disabled because tests (C++) depends on C target compiled with -std=gnu89.
|
|
"-layering_check", # disabled because it depends on parse_headers.
|
|
],
|
|
)
|
|
|
|
licenses(["notice"])
|
|
|
|
# MOE:begin_strip
|
|
filegroup(
|
|
name = "opensource_filegroup",
|
|
srcs = [
|
|
".clang-format",
|
|
"BUILD",
|
|
"CMakeLists.txt",
|
|
"CMakeLists.txt.in",
|
|
"CONTRIBUTING.md",
|
|
"LICENSE",
|
|
"OWNERS",
|
|
"README.md",
|
|
"WORKSPACE",
|
|
"include/cpu_features_macros.h",
|
|
"include/cpuinfo_aarch64.h",
|
|
"include/cpuinfo_arm.h",
|
|
"include/cpuinfo_mips.h",
|
|
"include/cpuinfo_x86.h",
|
|
"include/internal/bit_utils.h",
|
|
"include/internal/cpuid_x86.h",
|
|
"include/internal/filesystem.h",
|
|
"include/internal/hwcaps.h",
|
|
"include/internal/linux_features_aggregator.h",
|
|
"include/internal/stack_line_reader.h",
|
|
"include/internal/string_view.h",
|
|
"src/cpuid_x86_clang.c",
|
|
"src/cpuid_x86_gcc.c",
|
|
"src/cpuid_x86_msvc.c",
|
|
"src/cpuinfo_aarch64.c",
|
|
"src/cpuinfo_arm.c",
|
|
"src/cpuinfo_mips.c",
|
|
"src/cpuinfo_x86.c",
|
|
"src/filesystem.c",
|
|
"src/hwcaps.c",
|
|
"src/linux_features_aggregator.c",
|
|
"src/list_cpu_features.cc",
|
|
"src/stack_line_reader.c",
|
|
"src/string_view.c",
|
|
"test/CMakeLists.txt",
|
|
"test/bit_utils_test.cc",
|
|
"test/cpuinfo_aarch64_test.cc",
|
|
"test/cpuinfo_arm_test.cc",
|
|
"test/cpuinfo_mips_test.cc",
|
|
"test/cpuinfo_x86_test.cc",
|
|
"test/filesystem_for_testing.cc",
|
|
"test/filesystem_for_testing.h",
|
|
"test/hwcaps_for_testing.cc",
|
|
"test/hwcaps_for_testing.h",
|
|
"test/linux_features_aggregator_test.cc",
|
|
"test/stack_line_reader_test.cc",
|
|
"test/string_view_test.cc",
|
|
],
|
|
visibility = ["//third_party/cpu_features:__subpackages__"],
|
|
)
|
|
|
|
# MOE:end_strip
|
|
|
|
exports_files(["LICENSE"])
|
|
|
|
vardef(
|
|
"GNU89_FLAGS",
|
|
"-std=gnu89 " +
|
|
"-Wall " +
|
|
"-Wdeclaration-after-statement " +
|
|
"-Wextra " +
|
|
"-Wmissing-declarations " +
|
|
"-Wmissing-prototypes " +
|
|
"-Wold-style-definition " +
|
|
"-Wshadow " +
|
|
"-Wsign-compare " +
|
|
"-Wstrict-prototypes ",
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpu_features_macros",
|
|
srcs = ["include/cpu_features_macros.h"],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
)
|
|
|
|
cc_library(
|
|
name = "bit_utils",
|
|
srcs = ["include/internal/bit_utils.h"],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [":cpu_features_macros"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "bit_utils_test",
|
|
srcs = ["test/bit_utils_test.cc"],
|
|
deps = [
|
|
":bit_utils",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "string_view",
|
|
srcs = ["src/string_view.c"],
|
|
hdrs = ["include/internal/string_view.h"],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [":cpu_features_macros"],
|
|
)
|
|
|
|
cc_test(
|
|
name = "string_view_test",
|
|
srcs = ["test/string_view_test.cc"],
|
|
deps = [
|
|
":string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "filesystem",
|
|
srcs = [
|
|
"include/internal/filesystem.h",
|
|
"src/filesystem.c",
|
|
],
|
|
copts = [
|
|
varref("GNU89_FLAGS"),
|
|
],
|
|
deps = [":cpu_features_macros"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "filesystem_for_testing",
|
|
testonly = 1,
|
|
srcs = [
|
|
"include/internal/filesystem.h",
|
|
"test/filesystem_for_testing.cc",
|
|
"test/filesystem_for_testing.h",
|
|
],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
"//base",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "stack_line_reader",
|
|
srcs = [
|
|
"include/internal/stack_line_reader.h",
|
|
"src/stack_line_reader.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
defines = ["STACK_LINE_READER_BUFFER_SIZE=1024"],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
":filesystem",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "stack_line_reader_for_testing",
|
|
testonly = 1,
|
|
srcs = [
|
|
"include/internal/stack_line_reader.h",
|
|
"src/stack_line_reader.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
defines = ["STACK_LINE_READER_BUFFER_SIZE=1024"],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
":filesystem_for_testing",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "stack_line_reader_test",
|
|
srcs = [
|
|
"include/internal/stack_line_reader.h",
|
|
"src/stack_line_reader.c",
|
|
"test/stack_line_reader_test.cc",
|
|
],
|
|
defines = ["STACK_LINE_READER_BUFFER_SIZE=16"],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
":filesystem_for_testing",
|
|
":string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "hwcaps",
|
|
srcs = [
|
|
"include/internal/hwcaps.h",
|
|
"src/hwcaps.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
":filesystem",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "hwcaps_for_testing",
|
|
testonly = 1,
|
|
srcs = ["test/hwcaps_for_testing.cc"],
|
|
hdrs = [
|
|
"include/internal/hwcaps.h",
|
|
"test/hwcaps_for_testing.h",
|
|
],
|
|
deps = [":cpu_features_macros"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "linux_features_aggregator",
|
|
srcs = [
|
|
"include/internal/linux_features_aggregator.h",
|
|
"src/linux_features_aggregator.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":hwcaps",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "linux_features_aggregator_test",
|
|
srcs = ["test/linux_features_aggregator_test.cc"],
|
|
deps = [
|
|
":linux_features_aggregator",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpuinfo_mips",
|
|
srcs = [
|
|
"include/cpuinfo_mips.h",
|
|
"src/cpuinfo_mips.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "cpuinfo_mips_test",
|
|
srcs = [
|
|
"include/cpuinfo_mips.h",
|
|
"src/cpuinfo_mips.c",
|
|
"test/cpuinfo_mips_test.cc",
|
|
],
|
|
deps = [
|
|
":filesystem_for_testing",
|
|
":hwcaps_for_testing",
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpuinfo_aarch64",
|
|
srcs = [
|
|
"include/cpuinfo_aarch64.h",
|
|
"src/cpuinfo_aarch64.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "cpuinfo_aarch64_test",
|
|
srcs = [
|
|
"include/cpuinfo_aarch64.h",
|
|
"src/cpuinfo_aarch64.c",
|
|
"test/cpuinfo_aarch64_test.cc",
|
|
],
|
|
deps = [
|
|
":filesystem_for_testing",
|
|
":hwcaps_for_testing",
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpuinfo_arm",
|
|
srcs = [
|
|
"include/cpuinfo_arm.h",
|
|
"src/cpuinfo_arm.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":bit_utils",
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "cpuinfo_arm_test",
|
|
srcs = [
|
|
"include/cpuinfo_arm.h",
|
|
"src/cpuinfo_arm.c",
|
|
"test/cpuinfo_arm_test.cc",
|
|
],
|
|
deps = [
|
|
":bit_utils",
|
|
":filesystem_for_testing",
|
|
":hwcaps_for_testing",
|
|
":linux_features_aggregator",
|
|
":stack_line_reader",
|
|
":string_view",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpuid_x86",
|
|
srcs = [
|
|
"include/internal/cpuid_x86.h",
|
|
"src/cpuid_x86_clang.c",
|
|
"src/cpuid_x86_gcc.c",
|
|
"src/cpuid_x86_msvc.c",
|
|
],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [":cpu_features_macros"],
|
|
)
|
|
|
|
cc_library(
|
|
name = "cpuinfo_x86",
|
|
srcs = ["src/cpuinfo_x86.c"],
|
|
hdrs = ["include/cpuinfo_x86.h"],
|
|
copts = [varref("GNU89_FLAGS")],
|
|
deps = [
|
|
":bit_utils",
|
|
":cpu_features_macros",
|
|
":cpuid_x86",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "cpuinfo_x86_test",
|
|
srcs = [
|
|
"include/cpuinfo_x86.h",
|
|
"src/cpuinfo_x86.c",
|
|
"test/cpuinfo_x86_test.cc",
|
|
],
|
|
defines = ["CPU_FEATURES_TEST"],
|
|
deps = [
|
|
":bit_utils",
|
|
":cpu_features_macros",
|
|
":cpuid_x86",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_binary(
|
|
name = "list_cpu_features",
|
|
srcs = ["src/list_cpu_features.cc"],
|
|
deps = [
|
|
":cpu_features_macros",
|
|
":cpuinfo_aarch64",
|
|
":cpuinfo_arm",
|
|
":cpuinfo_mips",
|
|
":cpuinfo_x86",
|
|
],
|
|
)
|