Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
the80srobot opened this issue Dec 23, 2024 · 1 comment
Open

Comments

@the80srobot
Copy link

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:

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.

@the80srobot
Copy link
Author

Anyway, if anyone comes across this, turns out the library already has a MODULE.bazel and so the right way to include it is like this:

bazel_dep(name = "google_benchmark", version = "1.9.1")

Because it's not in the registry, this is also required:

git_override(
    module_name = "google_benchmark",
    remote = "https://github.com/google/benchmark.git",
    tag = "v1.9.1",
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant