Skip to main content

Build helpers and PEP 517 backend for IVPM-managed Python extension projects

Project description

ivpm-build

Build helpers and PEP 517 backend for IVPM-managed Python extension projects.

ivpm-build is a standalone package that extracts the build infrastructure from ivpm so projects can use it without depending on the full IVPM tool chain at build time.

Features

  • Drop-in replacement for ivpm.setup.setup() (backward compatible)
  • [tool.ivpm-build] config section in pyproject.toml
  • PEP 517 build backend wrapping setuptools.build_meta
  • CMake helpers (CmakeBuilder) decoupled from the setuptools command hierarchy
  • Optional scikit-build-core bridge (IVPMHook)

Installation

pip install ivpm-build

With CMake support:

pip install ivpm-build[cmake]

Quick Start

Path 1 — Legacy setup.py (one-line change)

# Before
from ivpm.setup import setup
# After
from ivpm_build.setup import setup

Path 2 — Hybrid pyproject.toml + setup.py

Add to pyproject.toml:

[build-system]
requires = ["ivpm-build", "setuptools>=64"]
build-backend = "setuptools.build_meta"

[tool.ivpm-build]
ivpm-dep-pkgs = ["mypkg"]

In setup.py:

from setuptools import setup
from setuptools import Extension
from ivpm_build.setup import apply_ivpm_setup

ext = Extension("mymod._mymod", sources=["src/mymod.cpp"])
apply_ivpm_setup(ext_modules=[ext], ivpm_extdep_pkgs=["mypkg"])
setup(name="mymod", ext_modules=[ext])

Path 3 — Pure pyproject.toml

[build-system]
requires = ["ivpm-build", "setuptools>=64"]
build-backend = "ivpm_build.backend"

[tool.ivpm-build]
cmake = true
ivpm-dep-pkgs = ["mypkg"]

Documentation

Full documentation is published at https://fvutils.github.io/ivpm-build

License

Apache 2.0 — see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ivpm_build-0.1.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ivpm_build-0.1.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file ivpm_build-0.1.0.tar.gz.

File metadata

  • Download URL: ivpm_build-0.1.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ivpm_build-0.1.0.tar.gz
Algorithm Hash digest
SHA256 79d371e47945e10b637fb068011d2595c095738cced3b6616db0bd63829b7e1d
MD5 f6b20b2254e3408f5b658bdd613bc878
BLAKE2b-256 906e2827b25d57b568aa6cdaf41e5b683078f1a2b0b0227e7573e3cc2f0184de

See more details on using hashes here.

File details

Details for the file ivpm_build-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ivpm_build-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ivpm_build-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 434942c500dcf24ab439f06c11198e403d765aa40c0bfceaed3c694a681098d6
MD5 b8cefd8dafd1f3d86aa4e96b82d18e4a
BLAKE2b-256 d20cd5b821610f20bf59546182735cf22a6ff3e1db3129d7672031fd9d337cbd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page