aboutsummaryrefslogtreecommitdiff
path: root/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'BUILD.bazel')
-rw-r--r--BUILD.bazel51
1 files changed, 47 insertions, 4 deletions
diff --git a/BUILD.bazel b/BUILD.bazel
index eb35b62..60d31d2 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -1,15 +1,37 @@
-load("@rules_cc//cc:defs.bzl", "cc_library")
-
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(
@@ -19,19 +41,40 @@ cc_library(
],
exclude = ["src/benchmark_main.cc"],
),
- hdrs = ["include/benchmark/benchmark.h"],
+ hdrs = [
+ "include/benchmark/benchmark.h",
+ "include/benchmark/export.h",
+ ],
linkopts = select({
":windows": ["-DEFAULTLIB:shlwapi.lib"],
"//conditions:default": ["-pthread"],
}),
+ copts = select({
+ ":windows": [],
+ "//conditions:default": ["-Werror=old-style-cast"],
+ }),
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"],
+ hdrs = ["include/benchmark/benchmark.h", "include/benchmark/export.h"],
strip_include_prefix = "include",
visibility = ["//visibility:public"],
deps = [":benchmark"],