mirror of
https://github.com/google/benchmark.git
synced 2024-12-26 12:30:14 +08:00
64b5d8cd11
Incorporates the nanobind_bazel change from https://github.com/google/benchmark/pull/1795. nanobind 2.0 reworked the nanobind::enum_ class so it uses a real Python enum or intenum rather than its previous hand-rolled implementation. https://nanobind.readthedocs.io/en/latest/changelog.html#version-2-0-0-may-23-2024 As a consequence of that change, nanobind now checks when casting an integer to a enum value that the integer corresponds to a valid enum. Counter::Flags is a bitmask, and many combinations are not valid enum members. This change: a) sets nb::is_arithmetic(), which means Counter::Flags becomes an IntEnum that can be freely cast to an integer. b) defines the | operator for flags to return an integer, not an enum, avoiding the error. c) changes Counter's constructor to accept an int, not a Counter::Flags enum. Since Counter::Flags is an IntEnum now, it can be freely coerced to an int. If https://github.com/wjakob/nanobind/pull/599 is merged into nanobind, then we can perhaps use a flag enum here instead.
42 lines
1.4 KiB
Plaintext
42 lines
1.4 KiB
Plaintext
module(
|
|
name = "google_benchmark",
|
|
version = "1.8.5",
|
|
)
|
|
|
|
bazel_dep(name = "bazel_skylib", version = "1.5.0")
|
|
bazel_dep(name = "platforms", version = "0.0.8")
|
|
bazel_dep(name = "rules_foreign_cc", version = "0.10.1")
|
|
bazel_dep(name = "rules_cc", version = "0.0.9")
|
|
|
|
bazel_dep(name = "rules_python", version = "0.31.0", dev_dependency = True)
|
|
bazel_dep(name = "googletest", version = "1.12.1", dev_dependency = True, 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", dev_dependency = True)
|
|
python.toolchain(python_version = "3.8")
|
|
python.toolchain(python_version = "3.9")
|
|
python.toolchain(python_version = "3.10")
|
|
python.toolchain(python_version = "3.11")
|
|
python.toolchain(
|
|
is_default = True,
|
|
python_version = "3.12",
|
|
)
|
|
|
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_dependency = True)
|
|
pip.parse(
|
|
hub_name = "tools_pip_deps",
|
|
python_version = "3.9",
|
|
requirements_lock = "//tools:requirements.txt",
|
|
)
|
|
use_repo(pip, "tools_pip_deps")
|
|
|
|
# -- bazel_dep definitions -- #
|
|
|
|
bazel_dep(name = "nanobind_bazel", version = "2.0.0", dev_dependency = True)
|