cmake-build-extension is a Setuptools extension to build and package
CMake projects.
This project aims to simplify the integration of C++ projects based on
CMake with Python packaging tools. CMake provides out-of-the-box
support to either SWIG and pybind11, that are two among the most used
projects to create Python bindings from C++ sources.
If you have any experience with these hybrid projects, you know the
challenges to make packaging right! This project takes inspiration
from pre-existing examples (pybind/cmake_example, among many others)
and provides a simple, flexible, and reusable setuptools extension
with the following features:
* Bridge between CMake projects and Python packaging.
* Configure and build the CMake project from setup.py.
* Install the CMake project in the resulting Python package.
* Allow passing custom CMake options.
* Allow creating a top-level __init__.py.
* Expose C++ executables to the Python environment.
* Provide a context manager to import reliably CPython modules on
all major OSs.
* Disable the C++ extension in editable installations (requiring to
manually call CMake to install the C++ project).