# pybind11_bazel **Repository Path**: liuwen01/pybind11_bazel ## Basic Information - **Project Name**: pybind11_bazel - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-08 - **Last Updated**: 2024-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bazel extensions for pybind11 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`. ## Installation In your `WORKSPACE` file: ```starlark http_archive( name = "pybind11_bazel", strip_prefix = "pybind11_bazel-", urls = ["https://github.com/pybind/pybind11_bazel/archive/v.zip"], ) # We still require the pybind library. http_archive( name = "pybind11", build_file = "@pybind11_bazel//:pybind11-BUILD.bazel", strip_prefix = "pybind11-", urls = ["https://github.com/pybind/pybind11/archive/v.zip"], ) ``` Then, in your `BUILD` file: ```starlark load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") ``` ## Bzlmod In your `MODULE.bazel` file: ```starlark bazel_dep(name = "pybind11_bazel", version = "") ``` Usage in your `BUILD` file is as described previously.