PEP 517 Build Backend (ivpm_build.backend)
ivpm_build.backend is a PEP 517 / PEP 660 compliant build backend that
wraps setuptools.build_meta and injects IVPM configuration before each
hook is invoked.
Activating the backend
Add the following to pyproject.toml:
[build-system]
requires = ["ivpm-build", "setuptools>=64"]
build-backend = "ivpm_build.backend"
When to use this backend vs. the setup.py wrapper
Use the backend (Path 3) when you want a pure-
pyproject.tomlproject with nosetup.py. The backend handles CMake invocation, IVPM path injection, and extra-data copying automatically.Use
apply_ivpm_setup()(Path 2) when you need fine-grained control over extension descriptors in asetup.pywhile still benefiting frompyproject.tomlmetadata.Use
from ivpm_build.setup import setup(Path 1) for a zero-change migration fromivpm.setup.setup.
What the backend does
Loads
[tool.ivpm-build]frompyproject.toml.Populates
ivpm_data._ivpm_extra_dataandivpm_data._ivpm_ext_name_mfrom the config.If
cmake = true, invokesCmakeBuilderbefore delegating tosetuptools.build_meta.build_wheel().Delegates all remaining PEP 517 hooks unchanged to
setuptools.build_meta.
Exposed hooks
All required PEP 517 hooks are exposed:
get_requires_for_build_wheelprepare_metadata_for_build_wheelbuild_wheelbuild_sdistbuild_editableget_requires_for_build_editableprepare_metadata_for_build_editable