benchmark/tools/libpfm.BUILD.bazel
Raghu Raja 398a8ac2e8
[bazel] Build libpfm as a dependency to allow collection of perf counters (#1408)
* Build libpfm as a dependency to allow collection of perf counters

This commit builds libpfm using rules_foreign_cc and lets the default
build of the benchmark library support perf counter collection without
needing additional work from users.

Tested with a custom target:

```
bazel run \
        --override_repository=com_github_google_benchmark=/home/raghu/benchmark \
        -c opt :test-bench -- "--benchmark_perf_counters=INSTRUCTIONS,CYCLES"
Using profile: local

<snip>

----------------------------------------------------------------------
Benchmark            Time             CPU   Iterations UserCounters...
----------------------------------------------------------------------
BM_Test      0.279 ns        0.279 ns   1000000000 CYCLES=1.00888 INSTRUCTIONS=2

```

Signed-off-by: Raghu Raja <raghu@enfabrica.net>

* Adding myself to the CONTRIBUTORS file per CLA guidance

Enfabrica has already signed a corporate CLA.

Signed-off-by: Raghu Raja <raghu@enfabrica.net>

Signed-off-by: Raghu Raja <raghu@enfabrica.net>
2022-10-31 11:03:59 +00:00

22 lines
428 B
Plaintext

# Build rule for libpfm, which is required to collect performance counters for
# BENCHMARK_ENABLE_LIBPFM builds.
load("@rules_foreign_cc//foreign_cc:defs.bzl", "make")
filegroup(
name = "pfm_srcs",
srcs = glob(["**"]),
)
make(
name = "libpfm",
lib_source = ":pfm_srcs",
lib_name = "libpfm",
copts = [
"-Wno-format-truncation",
],
visibility = [
"//visibility:public",
],
)