Releases: tttapa/py-build-cmake
Releases · tttapa/py-build-cmake
0.3.0
- Improved configuration file format
- Command-line overrides
- Support for multiple CMake build trees in one package
- PEP 420 namespace package support
- Reproducible builds
- CMake preset support (e.g. Conan)
- Allow overriding Wheel tags
- Support guessing Wheel tags based on the current platform
- Support for ABI3 Wheels
- Multiple editable installation modes
- Editable build hook mode that automatically re-builds extension modules
- Cross-compilation workflow documentation
- Automatic CIBW cross-compilation support for macOS and Windows on ARM
- Extensive testing (unit tests, package content checks, cibuildwheel tests)
- Pre-commit Ruff and Mypy checks
- Better error reporting
- Pass a virtual environment's Ninja path to CMake explicitly
- Dropped
flit_core
dependency - Removed convoluted
cross.copy_from_native_build
option - Improved CMake FindPython hints
Simple [tool.py-build-cmake]
configurations in pyproject.toml should be mostly backward compatible, but some options have moved. See https://tttapa.github.io/py-build-cmake/Config.html for details about the new config format.
Full Changelog: 0.1.8...0.3.0
0.3.0a3
- Add
cmake.install_config
option - Improve FindPython hints
Full Changelog: 0.3.0a2...0.3.0a3
0.3.0a2
- Use CMake config with index 0 as default for CLI
Full Changelog: 0.3.0a1...0.3.0a2
0.3.0a1
- New
wheel
config section to specify Wheel tags (Python tag, ABI tag, platform tag, build tag) - Support guessing an appropriate value for the platform tag based on the current environment
- Command-line overrides using
-C override=cmake.options.FOO=bar
- Custom
.pbc
config file format in addition to TOML to allow fine-grained control over options - Support workflows with multiple independent CMake build trees
- Set
find_python=True
andfind_python3=True
by default - Use the Cartesian product of CMake configs and build preset (instead of the union)
- Make sure the correct version of Ninja is used, even inside of temporary virtual environments
- Upgrade pybind11 and nanobind, simplify stub generation, simplify cross-compilation
- Colored help output from
py-build-cmake config format
- Improved error reporting
Full Changelog: 0.2.0a14...0.3.0a1
0.2.0a14
- Improved cross-compilation support
- Updated cross-compilation documentation
- Treat empty path in config file as None
Full Changelog: 0.2.0a13...0.2.0a14
0.2.0a13
- New build hook to automatically re-build extension modules on first import
- Support for CMake presets
- Allow customizing build path
- Updated configuration file checker
- CMake pre-load file improvements
- Improved namespace package and generated module support
- Update pybind11 and nanobind
- CMake option merging, allow boolean CMake options
- ARM64 macOS tests
- Python 3.13 beta support
Full Changelog: 0.2.0a12...0.2.0a13
0.2.0a12
- List config options behavior changed, see
docs/Config.md
for details - Allow specifying override behavior of
ListOfStrConfigOption
Full Changelog: 0.2.0a11...0.2.0a12
0.2.0a11
- Improved CMake preset support
Full Changelog: 0.2.0a10...0.2.0a11
0.2.0a10
- Run stubgen after CMake install.
Custom hand-written stubs or stubs generated by CMake are not replaced,
only stubs for modules that do not have any stubs yet are installed. - Set CMake options in cache pre-load script instead of command line arguments.
Full Changelog: 0.2.0a9...0.2.0a10