mirror of
https://github.com/google/benchmark.git
synced 2024-12-25 20:10:13 +08:00
Add support for bzlmod (excluding Python bindings) (#1615)
* Migrate to bzlmod * Update Python version to PY3, as indicated by the actual source file. * Migrate more libraries & first draft of direct pywheel rule usage in Bazel * Integrate with nanobind and libpfm * Make Python toolchain a dev dependency * Undo py_wheel usage until later * Added support for bzlmod for C++ parts of google_benchmark. * Make //tools:all buildable with --enable_bzlmod --------- Co-authored-by: Andy Christiansen <achristiansen@google.com>
This commit is contained in:
parent
1d25c2e3be
commit
aacf2b1af9
34
MODULE.bazel
Normal file
34
MODULE.bazel
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
module(name = "com_github_google_benchmark", version="1.8.0")
|
||||||
|
|
||||||
|
bazel_dep(name = "bazel_skylib", version = "1.4.1")
|
||||||
|
bazel_dep(name = "platforms", version = "0.0.6")
|
||||||
|
bazel_dep(name = "rules_foreign_cc", version = "0.9.0")
|
||||||
|
bazel_dep(name = "rules_cc", version = "0.0.6")
|
||||||
|
bazel_dep(name = "rules_python", version = "0.23.1")
|
||||||
|
bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest")
|
||||||
|
bazel_dep(name = "libpfm", version = "4.11.0")
|
||||||
|
|
||||||
|
# Register a toolchain for Python 3.9 to be able to build numpy. Python
|
||||||
|
# versions >=3.10 are problematic.
|
||||||
|
# A second reason for this is to be able to build Python hermetically instead
|
||||||
|
# of relying on the changing default version from rules_python.
|
||||||
|
|
||||||
|
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
|
||||||
|
python.toolchain(python_version = "3.9")
|
||||||
|
|
||||||
|
# Extract the interpreter from the hermetic toolchain above, so we can use that
|
||||||
|
# instead of the system interpreter for the pip compiplation step below.
|
||||||
|
interpreter = use_extension("@rules_python//python/extensions:interpreter.bzl", "interpreter")
|
||||||
|
interpreter.install(
|
||||||
|
name = "interpreter",
|
||||||
|
python_name = "python_3_9",
|
||||||
|
)
|
||||||
|
use_repo(interpreter, "interpreter")
|
||||||
|
|
||||||
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
|
||||||
|
pip.parse(
|
||||||
|
name="tools_pip_deps",
|
||||||
|
incompatible_generate_aliases = True,
|
||||||
|
python_interpreter_target="@interpreter//:python",
|
||||||
|
requirements_lock="//tools:requirements.txt")
|
||||||
|
use_repo(pip, "tools_pip_deps")
|
@ -11,8 +11,8 @@ rules_foreign_cc_dependencies()
|
|||||||
load("@rules_python//python:pip.bzl", pip3_install="pip_install")
|
load("@rules_python//python:pip.bzl", pip3_install="pip_install")
|
||||||
|
|
||||||
pip3_install(
|
pip3_install(
|
||||||
name = "py_deps",
|
name = "tools_pip_deps",
|
||||||
requirements = "//:requirements.txt",
|
requirements = "//tools:requirements.txt",
|
||||||
)
|
)
|
||||||
|
|
||||||
new_local_repository(
|
new_local_repository(
|
||||||
|
2
WORKSPACE.bzlmod
Normal file
2
WORKSPACE.bzlmod
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# This file marks the root of the Bazel workspace.
|
||||||
|
# See MODULE.bazel for dependencies and setup.
|
@ -8,13 +8,17 @@
|
|||||||
* `git log $(git describe --abbrev=0 --tags)..HEAD` gives you the list of
|
* `git log $(git describe --abbrev=0 --tags)..HEAD` gives you the list of
|
||||||
commits between the last annotated tag and HEAD
|
commits between the last annotated tag and HEAD
|
||||||
* Pick the most interesting.
|
* Pick the most interesting.
|
||||||
* Create one last commit that updates the version saved in `CMakeLists.txt` and the
|
* Create one last commit that updates the version saved in `CMakeLists.txt`, `MODULE.bazel`
|
||||||
`__version__` variable in `bindings/python/google_benchmark/__init__.py`to the release
|
and the `__version__` variable in `bindings/python/google_benchmark/__init__.py`to the
|
||||||
version you're creating. (This version will be used if benchmark is installed from the
|
release version you're creating. (This version will be used if benchmark is installed
|
||||||
archive you'll be creating in the next step.)
|
from the archive you'll be creating in the next step.)
|
||||||
|
|
||||||
```
|
```
|
||||||
project (benchmark VERSION 1.6.0 LANGUAGES CXX)
|
project (benchmark VERSION 1.8.0 LANGUAGES CXX)
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
module(name = "com_github_google_benchmark", version="1.8.0")
|
||||||
```
|
```
|
||||||
|
|
||||||
```python
|
```python
|
||||||
@ -22,7 +26,7 @@ project (benchmark VERSION 1.6.0 LANGUAGES CXX)
|
|||||||
|
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
__version__ = "1.6.0" # <-- change this to the release version you are creating
|
__version__ = "1.8.0" # <-- change this to the release version you are creating
|
||||||
|
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
numpy == 1.22
|
|
||||||
scipy == 1.5.4
|
|
@ -1,4 +1,4 @@
|
|||||||
load("@py_deps//:requirements.bzl", "requirement")
|
load("@tools_pip_deps//:requirements.bzl", "requirement")
|
||||||
|
|
||||||
py_library(
|
py_library(
|
||||||
name = "gbench",
|
name = "gbench",
|
||||||
|
@ -1 +1,2 @@
|
|||||||
scipy>=1.5.0
|
numpy == 1.25
|
||||||
|
scipy == 1.5.4
|
||||||
|
Loading…
Reference in New Issue
Block a user