| licenses(["notice"]) |
| |
| config_setting( |
| name = "qnx", |
| constraint_values = ["@platforms//os:qnx"], |
| values = { |
| "cpu": "x64_qnx", |
| }, |
| visibility = [":__subpackages__"], |
| ) |
| |
| config_setting( |
| name = "windows", |
| constraint_values = ["@platforms//os:windows"], |
| values = { |
| "cpu": "x64_windows", |
| }, |
| visibility = [":__subpackages__"], |
| ) |
| |
| config_setting( |
| name = "macos", |
| constraint_values = ["@platforms//os:macos"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| config_setting( |
| name = "perfcounters", |
| define_values = { |
| "pfm": "1", |
| }, |
| visibility = [":__subpackages__"], |
| ) |
| |
| cc_library( |
| name = "benchmark", |
| srcs = glob( |
| [ |
| "src/*.cc", |
| "src/*.h", |
| ], |
| exclude = ["src/benchmark_main.cc"], |
| ), |
| hdrs = [ |
| "include/benchmark/benchmark.h", |
| "include/benchmark/export.h", |
| ], |
| linkopts = select({ |
| ":windows": ["-DEFAULTLIB:shlwapi.lib"], |
| "//conditions:default": ["-pthread"], |
| }), |
| strip_include_prefix = "include", |
| visibility = ["//visibility:public"], |
| # Only static linking is allowed; no .so will be produced. |
| # Using `defines` (i.e. not `local_defines`) means that no |
| # dependent rules need to bother about defining the macro. |
| linkstatic = True, |
| defines = [ |
| "BENCHMARK_STATIC_DEFINE", |
| ] + select({ |
| ":perfcounters": ["HAVE_LIBPFM"], |
| "//conditions:default": [], |
| }), |
| deps = select({ |
| ":perfcounters": ["@libpfm//:libpfm"], |
| "//conditions:default": [], |
| }), |
| ) |
| |
| cc_library( |
| name = "benchmark_main", |
| srcs = ["src/benchmark_main.cc"], |
| hdrs = ["include/benchmark/benchmark.h", "include/benchmark/export.h"], |
| strip_include_prefix = "include", |
| visibility = ["//visibility:public"], |
| deps = [":benchmark"], |
| ) |
| |
| cc_library( |
| name = "benchmark_internal_headers", |
| hdrs = glob(["src/*.h"]), |
| visibility = ["//test:__pkg__"], |
| ) |