Skip to content

Commit 190c66c

Browse files
Python 3.14 on macOS requires MACOSX_DEPLOYMENT_TARGET set to 10.15
1 parent 8602e86 commit 190c66c

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ While cibuildwheel itself requires a recent Python version to run (we support th
4545
<sup>⁴ Experimental, not yet supported on PyPI, but can be used directly in web deployment. Use `--platform pyodide` to build.</sup><br>
4646
<sup>⁵ manylinux armv7l support is experimental. As there are no RHEL based image for this architecture, it's using an Ubuntu based image instead.</sup><br>
4747

48-
- Builds manylinux, musllinux, macOS 10.9+ (10.13+ for Python 3.12+), and Windows wheels for CPython, PyPy, and GraalPy
48+
- Builds manylinux, musllinux, macOS 10.9+ (10.13+ for Python 3.12-3.13, 10.15+ for Python 3.14+), and Windows wheels for CPython, PyPy, and GraalPy
4949
- Works on GitHub Actions, Azure Pipelines, Travis CI, CircleCI, GitLab CI, and Cirrus CI
5050
- Bundles shared library dependencies on Linux and macOS through [auditwheel](https://github.com/pypa/auditwheel) and [delocate](https://github.com/matthew-brett/delocate)
5151
- Runs your library's tests against the wheel-installed version of your library

cibuildwheel/platforms/macos.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,11 @@ def setup_python(
289289
# For arm64, the minimal deployment target is 11.0.
290290
# On x86_64 (or universal2), use 10.9 as a default.
291291
# CPython 3.12.6+ needs 10.13.
292+
# CPython 3.14.0 needs 10.15.
292293
if config_is_arm64:
293294
default_target = "11.0"
295+
elif Version(python_configuration.version) >= Version("3.14"):
296+
default_target = "10.15"
294297
elif Version(python_configuration.version) >= Version("3.12"):
295298
default_target = "10.13"
296299
elif python_configuration.identifier.startswith("pp") and Version(

docs/platforms.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ macOS builds will honor the `MACOSX_DEPLOYMENT_TARGET` environment variable to c
6363
| Arch | Python version range | Minimum target |
6464
|-------|----------------------|----------------|
6565
| Intel | CPython 3.8-3.11 | 10.9 |
66-
| Intel | CPython 3.12+ | 10.13 |
66+
| Intel | CPython 3.12-3.13 | 10.13 |
67+
| Intel | CPython 3.14+ | 10.15 |
6768
| AS | CPython or PyPy | 11 |
6869
| Intel | PyPy 3.8 | 10.13 |
6970
| Intel | PyPy 3.9+ | 10.15 |

test/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,10 @@ def _expected_wheels(
366366
elif python_abi_tag.startswith("cp"):
367367
if python_abi_tag.startswith(("cp38", "cp39", "cp310", "cp311")):
368368
min_macosx = macosx_deployment_target
369-
else:
369+
elif python_abi_tag.startswith(("cp312", "cp313")):
370370
min_macosx = _floor_macosx(macosx_deployment_target, "10.13")
371+
else:
372+
min_macosx = _floor_macosx(macosx_deployment_target, "10.15")
371373
elif python_abi_tag.startswith("graalpy"):
372374
if python_abi_tag.startswith("graalpy311"):
373375
min_macosx = macosx_deployment_target

0 commit comments

Comments
 (0)