Modern, PEP 517 compliant build backend for building Python packages with
Project description
py-build-cmake
Modern, PEP 517 compliant build backend for building Python packages with extensions built using CMake.
Features
- Build C, C++ or Fortran extensions for Python using CMake
- Declarative configuration using
pyproject.toml
(PEP 621), compatible with flit - Editable/development installations for Python modules (PEP 660)
- Compatible with pybind11
- Generate stubs for type checking and suggestions
- Customizable CMake configuration, build and installation options
- Support for multiple installation configurations and components
- Platform-specific CMake options
- Cross-compilation support
- No dependency on setuptools
Planned features
- Entry point support
- Namespace package support (PEP 420)
- Doxygen and Sphinx support
- OSX support
Installation
The py-build-cmake package is available on PyPI:
pip install py-build-cmake
Usage
Add a pyproject.toml
configuration file
(see examples/minimal
for detailed instructions), and use
pip
, build
or another PEP 517 compatible frontend to install and/or build the package.
Build sdist and wheel packages you can upload to PyPI:
python -m build . # find the sdist and wheel file in the 'dist' folder
Install the package in the current environment:
pip install . # normal installation
pip install -e . # editable installation
Examples
For example usage, see the examples/minimal
and examples/pybind11-project
example projects.
Documentation
The documentation can be found on https://tttapa.github.io/py-build-cmake.
The format of the configuration file is explained in Config.md.
Alternatively, use the following command to get the documentation for all supported options:
python -m py_build_cmake.help
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for py_build_cmake-0.0.2b0-py310-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e90daee1a751ed1c2f575a17b336ac9acd54c43323c0f25198bcf113fbc8dbb |
|
MD5 | 4b82d552428e27b9777bcb8de91c6067 |
|
BLAKE2b-256 | fb7e101df7f8dff1a0a7f88033500eaa3f760307595480a9d955d2c9de68a12a |
Hashes for py_build_cmake-0.0.2b0-py39-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e4985c00cf38ad5514098cbf002933dbcab231564301ad094a3495586ae672dd |
|
MD5 | 91ba43a8082d461114bb19fdac0183cb |
|
BLAKE2b-256 | b945f26a16512c04c8a79827e79307581f89a692a6fcb2047dda7704b9b829bf |
Hashes for py_build_cmake-0.0.2b0-py38-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edd616ba8459be34154ca43cebe54ec8d7298c530d4e28aefff480f696bd5021 |
|
MD5 | 2a0377b855105fc89e4b4d477465ded9 |
|
BLAKE2b-256 | 57349e41757bc433f1c771070c4bbe2fe31dba4a8cd86d1d3b163f0f977bac83 |