0 purchases
cmeel 0.53.3
CMake Wheel: cmeel
Wheel build backend using CMake, to package anything with pip and distribute on PyPI.
Following those relevant PEPs:
PEP 427, The Wheel Binary Package Format 1.0
PEP 517, A build-system independent format for source trees
PEP 518, Specifying Minimum Build System Requirements for Python Projects
PEP 600, Future ‘manylinux’ Platform Tags for Portable Linux Built Distributions
PEP 621, Storing project metadata in pyproject.toml
PEP 639, Improving License Clarity with Better Package Metadata, DRAFT
PEP 660, Editable installs for pyproject.toml based builds (wheel based)
Chat
https://matrix.to/#/#cmake-wheel:matrix.org
Basic idea
Glue between PEP 517 & 660 entry points and modern CMake standard project configuration / build / test / install
This Install in ${PYTHON_SITELIB}/cmeel.prefix/:
As there is a dot, it is not a valid python module name, so no risk of importing anything there by mistake
Play well with others, as everything is confined to ${PYTHON_SITELIB}/cmeel.prefix
${PYTHON_SITELIB}/cmeel.pth automatically load ${PYTHON_SITELIB}/cmeel.prefix/${PYTHON_SITELIB}, so python
packages work out of the box
Existing ${PYTHON_SITELIB}/cmeel.prefix are automatically added to $CMAKE_PREFIX_PATH, so we can build CMake
packages whose dependencies are provided by other packages installed with cmeel
Stuff in ${PYTHON_SITELIB}/cmeel.prefix/bin is exposed via cmeel.run:cmeel_run, or copied if start with a shebang
Basic pyproject.toml example
extract from https://github.com/cmake-wheel/cmeel-example/blob/main/pyproject.toml:
[project]
name = "cmeel-example"
version = "0.4.12"
description = "This is an example project, to show how to use cmeel"
requires-python = ">= 3.7"
license = "BSD-2-Clause"
authors = [{name = "Guilhem Saurel", email = "[email protected]"}]
[project.urls]
homepage = "https://github.com/cmake-wheel/cmeel-example"
repository = "https://github.com/cmake-wheel/cmeel-example.git"
changelog = "https://github.com/cmake-wheel/cmeel-example/blob/main/CHANGELOG.md"
[build-system]
requires = ["cmeel[build]"]
build-backend = "cmeel"
Complete specification is available at:
https://packaging.python.org/en/latest/specifications/declaring-project-metadata
Install
If you want to use the helpers provided by cmeel, to eg. test building a project in a manylinux container with
cmeel docker, the best way to install cmeel is to use pipx: pipx install cmeel
Otherwise, if you just want to use the build backend, there is no need to install anything: your frontent (eg. pip)
should do this for you
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.