google / google/benchmark

[BUG] benchmark build errors when included as an external bazel project

Open
#1,893 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
10.4k
Forks
1.8k
Avg merge
2d 4h
Merged PRs (30d)
8

Description

**Describe the bug**

There are no instructions by the project about how to use it from a Bazel project, so the usual thing is to get it via http_archive, like this:

```
http_archive(
name = "benchmark",
strip_prefix = "benchmark-1.9.1",
sha256 = "32131c08ee31eeff2c8968d7e874f3cb648034377dfc32a4c377fa8796d84981",
urls = ["https://github.com/google/benchmark/archive/v1.9.1.tar.gz"],
)
```

However, included like this, benchmark doesn't build:

```
> bazel build @benchmark//:benchmark
ERROR: no such package '@@[unknown repo 'platforms' requested from @@+_repo_rules+benchmark]//os': The repository '@@[unknown repo 'platforms' requested from @@+_repo_rules+benchmark]' could not be resolved: No repository visible as '@platforms' from repository '@@+_repo_rules+benchmark'
ERROR: /home/debian/.cache/bazel/_bazel_debian/dd361b7f393c74ecd4bce5d0457e94c7/external/+_repo_rules+benchmark/BUILD.bazel:29:15: no such package '@@[unknown repo 'platforms' requested from @@+_repo_rules+benchmark]//os': The repository '@@[unknown repo 'platforms' requested from @@+_repo_rules+benchmark]' could not be resolved: No repository visible as '@platforms' from repository '@@+_repo_rules+benchmark' and referenced by '@@+_repo_rules+benchmark//:windows'
ERROR: /home/debian/.cache/bazel/_bazel_debian/dd361b7f393c74ecd4bce5d0457e94c7/external/+_repo_rules+benchmark/BUILD.bazel:52:11: errors encountered resolving select() keys for @@+_repo_rules+benchmark//:benchmark
ERROR: Analysis of target '@@+_repo_rules+benchmark//:benchmark' failed; build aborted
INFO: Elapsed time: 0.084s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
ERROR: Build did NOT complete successfully
```

**System**
Which OS, compiler, and compiler version are you using:
- OS: Linux debian 6.10.6+bpo-arm64 #1 SMP Debian 6.10.6-1~bpo12+1 (2024-08-26) aarch64 GNU/Linux
- Compiler and version: bazel 8.0.0

**To reproduce**
Steps to reproduce the behavior:
1. Set up a project with Bazel and include the dependency above in your MODULE
2. Try to build the :benchmark target, as show above

**Expected behavior**
Ideally, you should have instructions about how to use this project with Bazel, and they should probably involve publishing to the module registry.

Absent that, the project should build cleanly when included as an external dependency.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.