Skip to content

Commit fad4c68

Browse files
committed
re-use ninja for CI builds
1 parent 1dde335 commit fad4c68

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

_build_backend/backend.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
1+
import os
2+
13
from scikit_build_core import build as _orig
24

3-
prepare_metadata_for_build_wheel = _orig.prepare_metadata_for_build_wheel
5+
if hasattr(_orig, "prepare_metadata_for_build_editable"):
6+
prepare_metadata_for_build_editable = _orig.prepare_metadata_for_build_editable
7+
if hasattr(_orig, "prepare_metadata_for_build_wheel"):
8+
prepare_metadata_for_build_wheel = _orig.prepare_metadata_for_build_wheel
9+
build_editable = _orig.build_editable
410
build_wheel = _orig.build_wheel
511
build_sdist = _orig.build_sdist
12+
get_requires_for_build_editable = _orig.get_requires_for_build_editable
613
get_requires_for_build_sdist = _orig.get_requires_for_build_sdist
714

815
def get_requires_for_build_wheel(config_settings=None):
916
packages_orig = _orig.get_requires_for_build_wheel(config_settings)
17+
allow_ninja = os.environ.get("CMAKE_PYTHON_DIST_ALLOW_NINJA_DEP", "0") != "0"
1018
packages = []
1119
for package in packages_orig:
1220
package_name = package.lower().split(">")[0].strip()
1321
if package_name == "cmake":
1422
msg = f"CMake PyPI distibution requires {package} to be available on the build system"
1523
raise ValueError(msg)
16-
if package_name == "ninja":
24+
if package_name == "ninja" and not allow_ninja:
1725
continue
1826
packages.append(package)
1927
return packages

pyproject.toml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ ctest = "cmake:ctest"
5454
[tool.scikit-build]
5555
minimum-version = "build-system.requires"
5656
build-dir = "build/{wheel_tag}"
57-
cmake.version = ">=3.15"
58-
ninja.version = "" # requiring ninja could cause it to request CMake if it needs to be built from sources, fallback to make
57+
cmake.version = ">=3.13" # Since 3.24.0, CMake requires CMake 3.13+ to build itself
5958
ninja.make-fallback = true
6059
wheel.py-api = "py3"
6160
wheel.expand-macos-universal-tags = true
@@ -67,28 +66,24 @@ template = '''
6766
version = "${version}"
6867
'''
6968

70-
[[tool.scikit-build.overrides]]
71-
if.env.CIBUILDWHEEL = true
72-
# ninja.version = ">=1.11"
73-
# ninja.make-fallback = false
74-
ninja.version = ""
75-
ninja.make-fallback = true
76-
7769
[tool.cibuildwheel]
7870
build = "cp39-*"
7971
test-extras = "test"
8072
test-command = "pytest {project}/tests"
8173
build-verbosity = 1
8274
build-frontend = "build[uv]"
75+
environment = { CMAKE_PYTHON_DIST_ALLOW_NINJA_DEP = "1" }
8376
musllinux-x86_64-image = "musllinux_1_1"
8477
musllinux-i686-image = "musllinux_1_1"
8578
musllinux-aarch64-image = "musllinux_1_1"
8679
musllinux-ppc64le-image = "musllinux_1_1"
8780
musllinux-s390x-image = "musllinux_1_1"
8881
musllinux-armv7l-image = "musllinux_1_2"
8982

90-
[tool.cibuildwheel.macos.environment]
91-
MACOSX_DEPLOYMENT_TARGET = "10.10"
83+
[[tool.cibuildwheel.overrides]]
84+
select = "*-macos*"
85+
inherit.environment = "append"
86+
environment = { MACOSX_DEPLOYMENT_TARGET = "10.10" }
9287

9388
[tool.cibuildwheel.linux]
9489
before-all = "./scripts/manylinux-build-and-install-openssl.sh"

0 commit comments

Comments
 (0)