1a8c51b3fSopenharmony_cilicenses(["notice"]) 2a8c51b3fSopenharmony_ci 3a8c51b3fSopenharmony_ciconfig_setting( 4a8c51b3fSopenharmony_ci name = "qnx", 5a8c51b3fSopenharmony_ci constraint_values = ["@platforms//os:qnx"], 6a8c51b3fSopenharmony_ci values = { 7a8c51b3fSopenharmony_ci "cpu": "x64_qnx", 8a8c51b3fSopenharmony_ci }, 9a8c51b3fSopenharmony_ci visibility = [":__subpackages__"], 10a8c51b3fSopenharmony_ci) 11a8c51b3fSopenharmony_ci 12a8c51b3fSopenharmony_ciconfig_setting( 13a8c51b3fSopenharmony_ci name = "windows", 14a8c51b3fSopenharmony_ci constraint_values = ["@platforms//os:windows"], 15a8c51b3fSopenharmony_ci values = { 16a8c51b3fSopenharmony_ci "cpu": "x64_windows", 17a8c51b3fSopenharmony_ci }, 18a8c51b3fSopenharmony_ci visibility = [":__subpackages__"], 19a8c51b3fSopenharmony_ci) 20a8c51b3fSopenharmony_ci 21a8c51b3fSopenharmony_ciconfig_setting( 22a8c51b3fSopenharmony_ci name = "macos", 23a8c51b3fSopenharmony_ci constraint_values = ["@platforms//os:macos"], 24a8c51b3fSopenharmony_ci visibility = ["//visibility:public"], 25a8c51b3fSopenharmony_ci) 26a8c51b3fSopenharmony_ci 27a8c51b3fSopenharmony_ciconfig_setting( 28a8c51b3fSopenharmony_ci name = "perfcounters", 29a8c51b3fSopenharmony_ci define_values = { 30a8c51b3fSopenharmony_ci "pfm": "1", 31a8c51b3fSopenharmony_ci }, 32a8c51b3fSopenharmony_ci visibility = [":__subpackages__"], 33a8c51b3fSopenharmony_ci) 34a8c51b3fSopenharmony_ci 35a8c51b3fSopenharmony_cicc_library( 36a8c51b3fSopenharmony_ci name = "benchmark", 37a8c51b3fSopenharmony_ci srcs = glob( 38a8c51b3fSopenharmony_ci [ 39a8c51b3fSopenharmony_ci "src/*.cc", 40a8c51b3fSopenharmony_ci "src/*.h", 41a8c51b3fSopenharmony_ci ], 42a8c51b3fSopenharmony_ci exclude = ["src/benchmark_main.cc"], 43a8c51b3fSopenharmony_ci ), 44a8c51b3fSopenharmony_ci hdrs = [ 45a8c51b3fSopenharmony_ci "include/benchmark/benchmark.h", 46a8c51b3fSopenharmony_ci "include/benchmark/export.h", 47a8c51b3fSopenharmony_ci ], 48a8c51b3fSopenharmony_ci linkopts = select({ 49a8c51b3fSopenharmony_ci ":windows": ["-DEFAULTLIB:shlwapi.lib"], 50a8c51b3fSopenharmony_ci "//conditions:default": ["-pthread"], 51a8c51b3fSopenharmony_ci }), 52a8c51b3fSopenharmony_ci copts = select({ 53a8c51b3fSopenharmony_ci ":windows": [], 54a8c51b3fSopenharmony_ci "//conditions:default": ["-Werror=old-style-cast"], 55a8c51b3fSopenharmony_ci }), 56a8c51b3fSopenharmony_ci strip_include_prefix = "include", 57a8c51b3fSopenharmony_ci visibility = ["//visibility:public"], 58a8c51b3fSopenharmony_ci # Only static linking is allowed; no .so will be produced. 59a8c51b3fSopenharmony_ci # Using `defines` (i.e. not `local_defines`) means that no 60a8c51b3fSopenharmony_ci # dependent rules need to bother about defining the macro. 61a8c51b3fSopenharmony_ci linkstatic = True, 62a8c51b3fSopenharmony_ci defines = [ 63a8c51b3fSopenharmony_ci "BENCHMARK_STATIC_DEFINE", 64a8c51b3fSopenharmony_ci ] + select({ 65a8c51b3fSopenharmony_ci ":perfcounters": ["HAVE_LIBPFM"], 66a8c51b3fSopenharmony_ci "//conditions:default": [], 67a8c51b3fSopenharmony_ci }), 68a8c51b3fSopenharmony_ci deps = select({ 69a8c51b3fSopenharmony_ci ":perfcounters": ["@libpfm//:libpfm"], 70a8c51b3fSopenharmony_ci "//conditions:default": [], 71a8c51b3fSopenharmony_ci }), 72a8c51b3fSopenharmony_ci) 73a8c51b3fSopenharmony_ci 74a8c51b3fSopenharmony_cicc_library( 75a8c51b3fSopenharmony_ci name = "benchmark_main", 76a8c51b3fSopenharmony_ci srcs = ["src/benchmark_main.cc"], 77a8c51b3fSopenharmony_ci hdrs = ["include/benchmark/benchmark.h", "include/benchmark/export.h"], 78a8c51b3fSopenharmony_ci strip_include_prefix = "include", 79a8c51b3fSopenharmony_ci visibility = ["//visibility:public"], 80a8c51b3fSopenharmony_ci deps = [":benchmark"], 81a8c51b3fSopenharmony_ci) 82a8c51b3fSopenharmony_ci 83a8c51b3fSopenharmony_cicc_library( 84a8c51b3fSopenharmony_ci name = "benchmark_internal_headers", 85a8c51b3fSopenharmony_ci hdrs = glob(["src/*.h"]), 86a8c51b3fSopenharmony_ci visibility = ["//test:__pkg__"], 87a8c51b3fSopenharmony_ci) 88