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