Skip to content

Commit 956c434

Browse files
committed
use a custom build backend
1 parent 75548a4 commit 956c434

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

_build_backend/backend.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from scikit_build_core import build as _orig
2+
3+
prepare_metadata_for_build_wheel = _orig.prepare_metadata_for_build_wheel
4+
build_wheel = _orig.build_wheel
5+
build_sdist = _orig.build_sdist
6+
get_requires_for_build_sdist = _orig.get_requires_for_build_sdist
7+
8+
def get_requires_for_build_wheel(config_settings=None):
9+
packages_orig = _orig.get_requires_for_build_wheel(config_settings)
10+
packages = []
11+
for package in packages_orig:
12+
package_name = package.lower().split(">")[0].strip()
13+
if package_name == "cmake":
14+
msg = f"CMake PyPI distibution requires {package} to be available on the build system"
15+
raise ValueError(msg)
16+
if package_name == "ninja":
17+
continue
18+
packages.append(package)
19+
return packages

pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[build-system]
2-
requires = ["scikit-build-core"]
3-
build-backend = "scikit_build_core.build"
2+
requires = ["scikit-build-core>=0.10"]
3+
build-backend = "backend"
4+
backend-path = ["_build_backend"]
45

56
[project]
67
name = "cmake"
@@ -51,9 +52,9 @@ cpack = "cmake:cpack"
5152
ctest = "cmake:ctest"
5253

5354
[tool.scikit-build]
54-
minimum-version = "0.8"
55+
minimum-version = "build-system.requires"
5556
build-dir = "build/{wheel_tag}"
56-
cmake.version = "" # We are cmake, so don't request cmake
57+
cmake.version = ">=3.15"
5758
ninja.version = "" # requiring ninja could cause it to request CMake if it needs to be built from sources, fallback to make
5859
ninja.make-fallback = true
5960
wheel.py-api = "py3"

0 commit comments

Comments
 (0)