Description: | 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). |