# pybind11_bazel **Repository Path**: mirrors_pybind/pybind11_bazel ## Basic Information - **Project Name**: pybind11_bazel - **Description**: Bazel wrapper around the pybind11 repository - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-25 - **Last Updated**: 2025-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bazel extensions for pybind11 Github-CI: | OS \ Build system | Bazel | |:------- | :---: | | Linux (`amd64`) | [![Build Status][amd64_linux_bazel_status]][amd64_linux_bazel_link] | | MacOS (`amd64`) | [![Build Status][amd64_macos_bazel_status]][amd64_macos_bazel_link] | | MacOS (`arm64`) | [![Build Status][arm64_macos_bazel_status]][arm64_macos_bazel_link] | | Windows (`amd64`) | [![Build Status][amd64_windows_bazel_status]][amd64_windows_bazel_link] | [amd64_linux_bazel_status]: ./../../actions/workflows/amd64_linux_bazel.yml/badge.svg [amd64_linux_bazel_link]: ./../../actions/workflows/amd64_linux_bazel.yml [amd64_macos_bazel_status]: ./../../actions/workflows/amd64_macos_bazel.yml/badge.svg [amd64_macos_bazel_link]: ./../../actions/workflows/amd64_macos_bazel.yml [arm64_macos_bazel_status]: ./../../actions/workflows/arm64_macos_bazel.yml/badge.svg [arm64_macos_bazel_link]: ./../../actions/workflows/arm64_macos_bazel.yml [amd64_windows_bazel_status]: ./../../actions/workflows/amd64_windows_bazel.yml/badge.svg [amd64_windows_bazel_link]: ./../../actions/workflows/amd64_windows_bazel.yml 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.