Metadata-Version: 2.4
Name: pyvista-build
Version: 0.1.2
Summary: Build a VTK backend wheel for PyVista from source, guided step by step.
Author-email: The PyVista Developers <info@pyvista.org>
License-Expression: MIT
Project-URL: Repository, https://github.com/pyvista/pyvista-build
Keywords: cmake,pyvista,vtk,wheel
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Build Tools
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cyclopts>=4.0.0
Requires-Dist: packaging
Requires-Dist: rich
Provides-Extra: tools
Requires-Dist: auditwheel; sys_platform == "linux" and extra == "tools"
Requires-Dist: cmake>=3.22; extra == "tools"
Requires-Dist: delocate; sys_platform == "darwin" and extra == "tools"
Requires-Dist: delvewheel; sys_platform == "win32" and extra == "tools"
Requires-Dist: ninja>=1.11; extra == "tools"
Requires-Dist: patchelf; sys_platform == "linux" and extra == "tools"
Requires-Dist: setuptools; extra == "tools"
Requires-Dist: wheel; extra == "tools"
Dynamic: license-file

# pyvista-build

Build a VTK backend wheel for [PyVista](https://github.com/pyvista/pyvista) from source,
guided step by step.

```bash
uv venv
uvx pyvista-build vtk --install
uv pip install pyvista
```

`pyvista-build BACKEND` clones the backend, checks the tools it needs and offers to
install the missing ones, configures it with CMake, compiles it, packages the wheel,
bundles the libraries it links against, and installs it into the active virtual
environment, else `.venv` in the current directory, else the Python running the command
(`--python PATH` picks another one). It asks once before starting and prints every
command as it runs.
`--interactive` asks before each step, `--dry-run` prints the commands and runs nothing,
and `--manylinux` runs the build inside a manylinux container for a portable Linux wheel.

Each backend describes its build in a `pyvista-build.toml` manifest at the root of its
source tree. A manifest for stock VTK is shipped here, and `pyvista-build cvista` reads
the one in the [cvista](https://github.com/pyvista/cvista) tree. Any other backend builds
with `--url <git url>` or `--source <checkout>` when its tree carries a manifest. The
[manifest reference](https://pyvista.github.io/pyvista-build/manifest.html) lists every
key.

The package depends on neither `vtk` nor `pyvista`, so it runs in an environment that
has no VTK yet.

## Development

```bash
uv sync --group dev
uv run pytest
uv run mypy
uv run pre-commit run --all-files
uv run --group docs sphinx-build -W doc doc/_build/html
```
