Name | cmeel JSON |
Version |
0.57.1
JSON |
| download |
home_page | None |
Summary | Create Wheel from CMake projects |
upload_time | 2025-02-05 22:19:35 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# CMake Wheel: cmeel
[](https://pypi.org/project/cmeel)
[](https://results.pre-commit.ci/latest/github/cmake-wheel/cmeel/main)
[](https://cmeel.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/charliermarsh/ruff)
[](https://github.com/astral-sh/uv)
Wheel build backend using CMake, to package any CMake project with pip and distribute on PyPI.
Following those relevant PEPs:
- [PEP 427](https://peps.python.org/pep-0427/), The Wheel Binary Package Format 1.0
- [PEP 517](https://peps.python.org/pep-0517/), A build-system independent format for source trees
- [PEP 518](https://peps.python.org/pep-0518/), Specifying Minimum Build System Requirements for Python Projects
- [PEP 600](https://peps.python.org/pep-0600/), Future ‘manylinux’ Platform Tags for Portable Linux Built Distributions
- [PEP 621](https://peps.python.org/pep-0621/), Storing project metadata in pyproject.toml
- [PEP 639](https://peps.python.org/pep-0639/), Improving License Clarity with Better Package Metadata
- [PEP 660](https://peps.python.org/pep-0660/), 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, and
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:
```toml
[build-system]
build-backend = "cmeel"
requires = ["cmeel[build]"]
[project]
authors = [{email = "guilhem.saurel@laas.fr", name = "Guilhem Saurel"}]
description = "This is an example project, to show how to use cmeel"
license = "BSD-2-Clause"
name = "cmeel-example"
requires-python = ">= 3.8"
version = "0.7.0"
[project.urls]
changelog = "https://github.com/cmake-wheel/cmeel-example/blob/main/CHANGELOG.md"
homepage = "https://github.com/cmake-wheel/cmeel-example"
repository = "https://github.com/cmake-wheel/cmeel-example.git"
```
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
Raw data
{
"_id": null,
"home_page": null,
"name": "cmeel",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Guilhem Saurel <guilhem.saurel@laas.fr>",
"download_url": "https://files.pythonhosted.org/packages/a4/a3/4a273fcc6235c6d8ad74cd203eaa1d18c01f2ce3f77b26477e9460a4e9e7/cmeel-0.57.1.tar.gz",
"platform": null,
"description": "# CMake Wheel: cmeel\n\n[](https://pypi.org/project/cmeel)\n[](https://results.pre-commit.ci/latest/github/cmake-wheel/cmeel/main)\n[](https://cmeel.readthedocs.io/en/latest/?badge=latest)\n\n[](https://github.com/charliermarsh/ruff)\n[](https://github.com/astral-sh/uv)\n\nWheel build backend using CMake, to package any CMake project with pip and distribute on PyPI.\n\nFollowing those relevant PEPs:\n- [PEP 427](https://peps.python.org/pep-0427/), The Wheel Binary Package Format 1.0\n- [PEP 517](https://peps.python.org/pep-0517/), A build-system independent format for source trees\n- [PEP 518](https://peps.python.org/pep-0518/), Specifying Minimum Build System Requirements for Python Projects\n- [PEP 600](https://peps.python.org/pep-0600/), Future \u2018manylinux\u2019 Platform Tags for Portable Linux Built Distributions\n- [PEP 621](https://peps.python.org/pep-0621/), Storing project metadata in pyproject.toml\n- [PEP 639](https://peps.python.org/pep-0639/), Improving License Clarity with Better Package Metadata\n- [PEP 660](https://peps.python.org/pep-0660/), Editable installs for pyproject.toml based builds (wheel based)\n\n## Chat\n\nhttps://matrix.to/#/#cmake-wheel:matrix.org\n\n## Basic idea\n\nGlue between PEP 517 & 660 entry points and modern CMake standard project configuration / build / test / install, and\ninstall in `${PYTHON_SITELIB}/cmeel.prefix/`:\n- As there is a dot, it is not a valid python module name, so no risk of importing anything there by mistake\n- Play well with others, as everything is confined to `${PYTHON_SITELIB}/cmeel.prefix`\n- `${PYTHON_SITELIB}/cmeel.pth` automatically load `${PYTHON_SITELIB}/cmeel.prefix/${PYTHON_SITELIB}`, so python\n packages work out of the box\n- Existing `${PYTHON_SITELIB}/cmeel.prefix` are automatically added to `$CMAKE_PREFIX_PATH`, so we can build CMake\n packages whose dependencies are provided by other packages installed with cmeel\n- Stuff in `${PYTHON_SITELIB}/cmeel.prefix/bin` is exposed via `cmeel.run:cmeel_run`, or copied if start with a shebang\n\n## Basic pyproject.toml example\n\nextract from https://github.com/cmake-wheel/cmeel-example/blob/main/pyproject.toml:\n\n```toml\n[build-system]\nbuild-backend = \"cmeel\"\nrequires = [\"cmeel[build]\"]\n\n[project]\nauthors = [{email = \"guilhem.saurel@laas.fr\", name = \"Guilhem Saurel\"}]\ndescription = \"This is an example project, to show how to use cmeel\"\nlicense = \"BSD-2-Clause\"\nname = \"cmeel-example\"\nrequires-python = \">= 3.8\"\nversion = \"0.7.0\"\n\n[project.urls]\nchangelog = \"https://github.com/cmake-wheel/cmeel-example/blob/main/CHANGELOG.md\"\nhomepage = \"https://github.com/cmake-wheel/cmeel-example\"\nrepository = \"https://github.com/cmake-wheel/cmeel-example.git\"\n```\n\nComplete specification is available at:\nhttps://packaging.python.org/en/latest/specifications/declaring-project-metadata\n\n## Install\n\nIf you want to use the helpers provided by cmeel, to *eg*. test building a project in a manylinux container with\n`cmeel docker`, the best way to install cmeel is to use pipx: `pipx install cmeel`\n\nOtherwise, if you just want to use the build backend, there is no need to install anything: your frontent (*eg.* `pip`)\nshould do this for you\n",
"bugtrack_url": null,
"license": null,
"summary": "Create Wheel from CMake projects",
"version": "0.57.1",
"project_urls": {
"Changelog": "https://github.com/cmake-wheel/cmeel/blob/main/CHANGELOG.md",
"Documentation": "https://cmeel.readthedocs.io/",
"Homepage": "https://github.com/cmake-wheel/cmeel"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fcedc3500e7546e5b356a9d78eeb0d817867a8b00e8d1ef553e860e0bca39334",
"md5": "43c5ddfc380e5ee2a41cae7c45a9692b",
"sha256": "2e685eda81f1c9938fc05cf20d0fbaa1206257f0dd269157166c1dccabfdc551"
},
"downloads": -1,
"filename": "cmeel-0.57.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "43c5ddfc380e5ee2a41cae7c45a9692b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 20936,
"upload_time": "2025-02-05T22:19:32",
"upload_time_iso_8601": "2025-02-05T22:19:32.995881Z",
"url": "https://files.pythonhosted.org/packages/fc/ed/c3500e7546e5b356a9d78eeb0d817867a8b00e8d1ef553e860e0bca39334/cmeel-0.57.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a4a34a273fcc6235c6d8ad74cd203eaa1d18c01f2ce3f77b26477e9460a4e9e7",
"md5": "6e78d8c66aa9e04ca62ec8053ab0edec",
"sha256": "6a8d03d1cb091469f9f63f888bd73c431aac9f6311e3979fa373b92da129ba69"
},
"downloads": -1,
"filename": "cmeel-0.57.1.tar.gz",
"has_sig": false,
"md5_digest": "6e78d8c66aa9e04ca62ec8053ab0edec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 14835,
"upload_time": "2025-02-05T22:19:35",
"upload_time_iso_8601": "2025-02-05T22:19:35.507722Z",
"url": "https://files.pythonhosted.org/packages/a4/a3/4a273fcc6235c6d8ad74cd203eaa1d18c01f2ce3f77b26477e9460a4e9e7/cmeel-0.57.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-05 22:19:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cmake-wheel",
"github_project": "cmeel",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cmeel"
}