commit | 2b6082a4d9d163a52299718113fa41e4b7978db5 | [log] [tgz] |
---|---|---|
author | Laurenz <lalten@users.noreply.github.com> | Fri Sep 27 16:27:34 2024 +0200 |
committer | GitHub <noreply@github.com> | Fri Sep 27 07:27:34 2024 -0700 |
tree | a3d6c77021d83617a5990afde82a4341dcfd96ae | |
parent | 7d42550eb271555e9f00d087eb96582879a26c73 [diff] |
Get module version from module_ctx and try to lookup integrities (#103)
Provided rules:
pybind_extension
: Builds a python extension, automatically adding the required build flags and pybind11 dependencies. It defines a target which can be included as a data
dependency of a py_*
target.pybind_library
: Builds a C++ library, automatically adding the required build flags and pybind11 dependencies. This library can then be used as a dependency of a pybind_extension
. The arguments match a cc_library
.pybind_library_test
: Builds a C++ test for a pybind_library
. The arguments match a cc_test
.To test a pybind_extension
, the most common approach is to write the test in Python and use the standard py_test
build rule.
To embed Python, add @rules_python//python/cc:current_py_cc_libs
as a dependency to your cc_binary
.
In your WORKSPACE
file:
http_archive( name = "pybind11_bazel", strip_prefix = "pybind11_bazel-<version>", urls = ["https://github.com/pybind/pybind11_bazel/archive/v<version>.zip"], ) # We still require the pybind library. http_archive( name = "pybind11", build_file = "@pybind11_bazel//:pybind11-BUILD.bazel", strip_prefix = "pybind11-<version>", urls = ["https://github.com/pybind/pybind11/archive/v<version>.zip"], )
Then, in your BUILD
file:
load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
In your MODULE.bazel
file:
bazel_dep(name = "pybind11_bazel", version = "<version>")
Usage in your BUILD
file is as described previously.