Add alternate manylinux targets to --python-platform (#3229)

## Summary

I initially implemented this by allowing arbitrary
`x86_64-manylinux_x_y`, but it makes the Clap, Serde, and Schemars
definitions more complicated, _and_ makes it harder for the user.
Ultimately, manylinux itself only provides images for 2_17 and 2_28, so
this seems like it should be sufficient.

Closes https://github.com/astral-sh/uv/issues/3222.
This commit is contained in:
Charlie Marsh 2024-04-24 07:53:25 -04:00 committed by GitHub
parent 84989a3f49
commit 116d47ed03
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 100 additions and 4 deletions

View file

@ -27,7 +27,7 @@ pub enum TargetTriple {
#[cfg_attr(feature = "clap", value(name = "x86_64-pc-windows-msvc"))]
X8664PcWindowsMsvc,
/// An x86 Linux target.
/// An x86 Linux target. Equivalent to `x86_64-manylinux_2_17`.
#[cfg_attr(feature = "clap", value(name = "x86_64-unknown-linux-gnu"))]
X8664UnknownLinuxGnu,
@ -39,7 +39,7 @@ pub enum TargetTriple {
#[cfg_attr(feature = "clap", value(name = "x86_64-apple-darwin"))]
X8664AppleDarwin,
/// An ARM64 Linux target.
/// An ARM64 Linux target. Equivalent to `aarch64-manylinux_2_17`.
#[cfg_attr(feature = "clap", value(name = "aarch64-unknown-linux-gnu"))]
Aarch64UnknownLinuxGnu,
@ -50,6 +50,22 @@ pub enum TargetTriple {
/// An x86_64 Linux target.
#[cfg_attr(feature = "clap", value(name = "x86_64-unknown-linux-musl"))]
X8664UnknownLinuxMusl,
/// An x86_64 target for the `manylinux_2_17` platform.
#[cfg_attr(feature = "clap", value(name = "x86_64-manylinux_2_17"))]
X8664Manylinux217,
/// An x86_64 target for the `manylinux_2_28` platform.
#[cfg_attr(feature = "clap", value(name = "x86_64-manylinux_2_28"))]
X8664Manylinux228,
/// An ARM64 target for the `manylinux_2_17` platform.
#[cfg_attr(feature = "clap", value(name = "aarch64-manylinux_2_17"))]
Aarch64Manylinux217,
/// An ARM64 target for the `manylinux_2_28` platform.
#[cfg_attr(feature = "clap", value(name = "aarch64-manylinux_2_28"))]
Aarch64Manylinux228,
}
impl TargetTriple {
@ -91,6 +107,34 @@ impl TargetTriple {
Self::X8664UnknownLinuxMusl => {
Platform::new(Os::Musllinux { major: 1, minor: 2 }, Arch::X86_64)
}
Self::X8664Manylinux217 => Platform::new(
Os::Manylinux {
major: 2,
minor: 17,
},
Arch::X86_64,
),
Self::X8664Manylinux228 => Platform::new(
Os::Manylinux {
major: 2,
minor: 28,
},
Arch::X86_64,
),
Self::Aarch64Manylinux217 => Platform::new(
Os::Manylinux {
major: 2,
minor: 17,
},
Arch::Aarch64,
),
Self::Aarch64Manylinux228 => Platform::new(
Os::Manylinux {
major: 2,
minor: 28,
},
Arch::Aarch64,
),
}
}
@ -104,6 +148,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "aarch64",
Self::Aarch64UnknownLinuxMusl => "aarch64",
Self::X8664UnknownLinuxMusl => "x86_64",
Self::X8664Manylinux217 => "x86_64",
Self::X8664Manylinux228 => "x86_64",
Self::Aarch64Manylinux217 => "aarch64",
Self::Aarch64Manylinux228 => "aarch64",
}
}
@ -117,6 +165,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "Linux",
Self::Aarch64UnknownLinuxMusl => "Linux",
Self::X8664UnknownLinuxMusl => "Linux",
Self::X8664Manylinux217 => "Linux",
Self::X8664Manylinux228 => "Linux",
Self::Aarch64Manylinux217 => "Linux",
Self::Aarch64Manylinux228 => "Linux",
}
}
@ -130,6 +182,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "",
Self::Aarch64UnknownLinuxMusl => "",
Self::X8664UnknownLinuxMusl => "",
Self::X8664Manylinux217 => "",
Self::X8664Manylinux228 => "",
Self::Aarch64Manylinux217 => "",
Self::Aarch64Manylinux228 => "",
}
}
@ -143,6 +199,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "",
Self::Aarch64UnknownLinuxMusl => "",
Self::X8664UnknownLinuxMusl => "",
Self::X8664Manylinux217 => "",
Self::X8664Manylinux228 => "",
Self::Aarch64Manylinux217 => "",
Self::Aarch64Manylinux228 => "",
}
}
@ -156,6 +216,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "posix",
Self::Aarch64UnknownLinuxMusl => "posix",
Self::X8664UnknownLinuxMusl => "posix",
Self::X8664Manylinux217 => "posix",
Self::X8664Manylinux228 => "posix",
Self::Aarch64Manylinux217 => "posix",
Self::Aarch64Manylinux228 => "posix",
}
}
@ -169,6 +233,10 @@ impl TargetTriple {
Self::Aarch64UnknownLinuxGnu => "linux",
Self::Aarch64UnknownLinuxMusl => "linux",
Self::X8664UnknownLinuxMusl => "linux",
Self::X8664Manylinux217 => "linux",
Self::X8664Manylinux228 => "linux",
Self::Aarch64Manylinux217 => "linux",
Self::Aarch64Manylinux228 => "linux",
}
}