Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions cibuildwheel/resources/cibuildwheel.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,14 @@
},
"build-frontend": {
"default": "default",
"description": "Set the tool to use to build, either \"build\" (default), \"build[uv]\", or \"pip\"",
"description": "Set the tool to use to build, either \"build\" (default), \"build[uv]\", \"uv\", or \"pip\"",
"oneOf": [
{
"enum": [
"pip",
"build",
"build[uv]",
"uv",
"default"
]
},
Expand All @@ -129,6 +130,10 @@
"type": "string",
"pattern": "^build\\[uv\\]; ?args:"
},
{
"type": "string",
"pattern": "^uv; ?args:"
},
{
"type": "object",
"additionalProperties": false,
Expand All @@ -140,7 +145,8 @@
"enum": [
"pip",
"build",
"build[uv]"
"build[uv]",
"uv"
]
},
"args": {
Expand Down
9 changes: 9 additions & 0 deletions docs/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,7 @@ Options:
- `build[;args: ...]`
- `build[uv][;args: ...]`
- `pip[;args: ...]`
- `uv[;args: ...]`

Default: `build`

Expand All @@ -478,6 +479,8 @@ pre-installing it, or installing cibuildwheel with the `uv` extra, which is
possible by manually passing `cibuildwheel[uv]` to installers or by using the
`extras` option in the [cibuildwheel action](ci-services.md#github-actions).
uv currently does not support iOS or musllinux on s390x, ppc64le and riscv64.
You can also use the `uv` backend directly; though currently multiple output
files (from workspaces) are not supported.

On Android and Pyodide, the "pip" frontend is not supported.

Expand Down Expand Up @@ -511,6 +514,9 @@ optional `args` option.

# Use uv and build with an argument
build-frontend = { name = "build[uv]", args = ["--no-isolation"] }

# Use uv directly
build-frontend = "uv"
```

!!! tab examples "Environment variables"
Expand All @@ -527,6 +533,9 @@ optional `args` option.

# Use uv and build with an argument
CIBW_BUILD_FRONTEND: "build[uv]; args: --no-isolation"

# Use uv directly
CIBW_BUILD_FRONTEND: "uv"
```


Expand Down
12 changes: 5 additions & 7 deletions docs/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Currently, it's recommended to run tests using a `python -m` entrypoint, rather
### Prerequisites

cibuildwheel can build Android wheels on any POSIX platform supported by the Android
development tools, which currently means Linux x86_64, macOS ARM64 or macOS x86_64. Any
development tools, which currently means Linux `x86_64`, macOS `ARM64` or macOS `x86_64`. Any
of these platforms can be used to build wheels for any Android architecture supported by
Python. However, *testing* wheels has additional requirements: see the section below.

Expand Down Expand Up @@ -221,10 +221,8 @@ Python 3.13.

### Build frontend support

Android builds only support the `build` frontend. In principle, support for the
`build[uv]` frontend should be possible, but `uv` [doesn't currently have support for
cross-platform builds](https://github.com/astral-sh/uv/issues/7957), and [doesn't have
support for iOS or Android wheel tags](https://github.com/astral-sh/uv/issues/8029).
Android builds do not support the `pip` frontend. The `build`, `build[uv]`, and
`uv` frontends work.

### Tests

Expand All @@ -238,7 +236,7 @@ Any arguments specified using [`test-runtime`](options.md#test-runtime) will be
Running an emulator requires the build machine to either be bare-metal or support
nested virtualization. CI platforms known to meet this requirement are:

* GitHub Actions Linux x86_64
* GitHub Actions Linux `x86_64`

On Linux, the emulator needs access to the KVM virtualization interface. This may
require adding your user to a group, or changing your udev rules. On GitHub
Expand Down Expand Up @@ -308,7 +306,7 @@ iOS builds are *cross platform builds*, as it not possible to run compilers and

### Build frontend support

iOS builds support both the `pip` and `build` build frontends. In principle, support for `uv` with the `build[uv]` frontend should be possible, but `uv` [doesn't currently have support for cross-platform builds](https://github.com/astral-sh/uv/issues/7957), and [doesn't have support for iOS (or Android) tags](https://github.com/astral-sh/uv/issues/8029).
iOS builds support both the `pip` and `build` build frontends. In principle, support for `uv` and `build[uv]` frontends should be possible, but `uv` [doesn't support iOS fully yet](https://github.com/astral-sh/uv/issues/16724).

### Build environment

Expand Down
Loading