Add an `aarch64-pc-windows-msvc` target (#15347)

I needed this and was surprised it didn't exist!

---------

Co-authored-by: konsti <konstin@mailbox.org>
This commit is contained in:
Zanie Blue 2025-08-18 12:57:27 -05:00 committed by GitHub
parent ceacd27edb
commit 242214c546
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 0 deletions

View File

@ -28,6 +28,12 @@ pub enum TargetTriple {
#[serde(alias = "x8664-pc-windows-msvc")] #[serde(alias = "x8664-pc-windows-msvc")]
X8664PcWindowsMsvc, X8664PcWindowsMsvc,
/// An ARM64 Windows target.
#[cfg_attr(feature = "clap", value(name = "aarch64-pc-windows-msvc"))]
#[serde(rename = "aarch64-pc-windows-msvc")]
#[serde(alias = "arm64-pc-windows-msvc")]
Aarch64PcWindowsMsvc,
/// A 32-bit x86 Windows target. /// A 32-bit x86 Windows target.
#[cfg_attr(feature = "clap", value(name = "i686-pc-windows-msvc"))] #[cfg_attr(feature = "clap", value(name = "i686-pc-windows-msvc"))]
#[serde(rename = "i686-pc-windows-msvc")] #[serde(rename = "i686-pc-windows-msvc")]
@ -237,6 +243,7 @@ impl TargetTriple {
pub fn platform(self) -> Platform { pub fn platform(self) -> Platform {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => Platform::new(Os::Windows, Arch::X86_64), Self::Windows | Self::X8664PcWindowsMsvc => Platform::new(Os::Windows, Arch::X86_64),
Self::Aarch64PcWindowsMsvc => Platform::new(Os::Windows, Arch::Aarch64),
Self::Linux | Self::X8664UnknownLinuxGnu => Platform::new( Self::Linux | Self::X8664UnknownLinuxGnu => Platform::new(
Os::Manylinux { Os::Manylinux {
major: 2, major: 2,
@ -468,6 +475,7 @@ impl TargetTriple {
pub fn platform_machine(self) -> &'static str { pub fn platform_machine(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "x86_64", Self::Windows | Self::X8664PcWindowsMsvc => "x86_64",
Self::Aarch64PcWindowsMsvc => "ARM64",
Self::Linux | Self::X8664UnknownLinuxGnu => "x86_64", Self::Linux | Self::X8664UnknownLinuxGnu => "x86_64",
Self::Macos | Self::Aarch64AppleDarwin => "arm64", Self::Macos | Self::Aarch64AppleDarwin => "arm64",
Self::I686PcWindowsMsvc => "x86", Self::I686PcWindowsMsvc => "x86",
@ -509,6 +517,7 @@ impl TargetTriple {
pub fn platform_system(self) -> &'static str { pub fn platform_system(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "Windows", Self::Windows | Self::X8664PcWindowsMsvc => "Windows",
Self::Aarch64PcWindowsMsvc => "Windows",
Self::Linux | Self::X8664UnknownLinuxGnu => "Linux", Self::Linux | Self::X8664UnknownLinuxGnu => "Linux",
Self::Macos | Self::Aarch64AppleDarwin => "Darwin", Self::Macos | Self::Aarch64AppleDarwin => "Darwin",
Self::I686PcWindowsMsvc => "Windows", Self::I686PcWindowsMsvc => "Windows",
@ -550,6 +559,7 @@ impl TargetTriple {
pub fn platform_version(self) -> &'static str { pub fn platform_version(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "", Self::Windows | Self::X8664PcWindowsMsvc => "",
Self::Aarch64PcWindowsMsvc => "",
Self::Linux | Self::X8664UnknownLinuxGnu => "", Self::Linux | Self::X8664UnknownLinuxGnu => "",
Self::Macos | Self::Aarch64AppleDarwin => "", Self::Macos | Self::Aarch64AppleDarwin => "",
Self::I686PcWindowsMsvc => "", Self::I686PcWindowsMsvc => "",
@ -594,6 +604,7 @@ impl TargetTriple {
pub fn platform_release(self) -> &'static str { pub fn platform_release(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "", Self::Windows | Self::X8664PcWindowsMsvc => "",
Self::Aarch64PcWindowsMsvc => "",
Self::Linux | Self::X8664UnknownLinuxGnu => "", Self::Linux | Self::X8664UnknownLinuxGnu => "",
Self::Macos | Self::Aarch64AppleDarwin => "", Self::Macos | Self::Aarch64AppleDarwin => "",
Self::I686PcWindowsMsvc => "", Self::I686PcWindowsMsvc => "",
@ -637,6 +648,7 @@ impl TargetTriple {
pub fn os_name(self) -> &'static str { pub fn os_name(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "nt", Self::Windows | Self::X8664PcWindowsMsvc => "nt",
Self::Aarch64PcWindowsMsvc => "nt",
Self::Linux | Self::X8664UnknownLinuxGnu => "posix", Self::Linux | Self::X8664UnknownLinuxGnu => "posix",
Self::Macos | Self::Aarch64AppleDarwin => "posix", Self::Macos | Self::Aarch64AppleDarwin => "posix",
Self::I686PcWindowsMsvc => "nt", Self::I686PcWindowsMsvc => "nt",
@ -678,6 +690,7 @@ impl TargetTriple {
pub fn sys_platform(self) -> &'static str { pub fn sys_platform(self) -> &'static str {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => "win32", Self::Windows | Self::X8664PcWindowsMsvc => "win32",
Self::Aarch64PcWindowsMsvc => "win32",
Self::Linux | Self::X8664UnknownLinuxGnu => "linux", Self::Linux | Self::X8664UnknownLinuxGnu => "linux",
Self::Macos | Self::Aarch64AppleDarwin => "darwin", Self::Macos | Self::Aarch64AppleDarwin => "darwin",
Self::I686PcWindowsMsvc => "win32", Self::I686PcWindowsMsvc => "win32",
@ -719,6 +732,7 @@ impl TargetTriple {
pub fn manylinux_compatible(self) -> bool { pub fn manylinux_compatible(self) -> bool {
match self { match self {
Self::Windows | Self::X8664PcWindowsMsvc => false, Self::Windows | Self::X8664PcWindowsMsvc => false,
Self::Aarch64PcWindowsMsvc => false,
Self::Linux | Self::X8664UnknownLinuxGnu => true, Self::Linux | Self::X8664UnknownLinuxGnu => true,
Self::Macos | Self::Aarch64AppleDarwin => false, Self::Macos | Self::Aarch64AppleDarwin => false,
Self::I686PcWindowsMsvc => false, Self::I686PcWindowsMsvc => false,

View File

@ -1181,6 +1181,7 @@ environment in the project.</p>
<li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li> <li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li>
<li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li> <li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li>
<li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li> <li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li>
<li><code>aarch64-pc-windows-msvc</code>: An ARM64 Windows target</li>
<li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li> <li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li>
<li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li> <li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li>
<li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li> <li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li>
@ -1778,6 +1779,7 @@ interpreter. Use <code>--universal</code> to display the tree for all platforms,
<li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li> <li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li>
<li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li> <li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li>
<li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li> <li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li>
<li><code>aarch64-pc-windows-msvc</code>: An ARM64 Windows target</li>
<li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li> <li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li>
<li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li> <li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li>
<li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li> <li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li>
@ -3557,6 +3559,7 @@ by <code>--python-version</code>.</p>
<li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li> <li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li>
<li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li> <li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li>
<li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li> <li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li>
<li><code>aarch64-pc-windows-msvc</code>: An ARM64 Windows target</li>
<li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li> <li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li>
<li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li> <li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li>
<li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li> <li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li>
@ -3826,6 +3829,7 @@ be used with caution, as it can modify the system Python installation.</p>
<li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li> <li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li>
<li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li> <li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li>
<li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li> <li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li>
<li><code>aarch64-pc-windows-msvc</code>: An ARM64 Windows target</li>
<li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li> <li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li>
<li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li> <li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li>
<li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li> <li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li>
@ -4113,6 +4117,7 @@ should be used with caution, as it can modify the system Python installation.</p
<li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li> <li><code>linux</code>: An alias for <code>x86_64-unknown-linux-gnu</code>, the default target for Linux</li>
<li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li> <li><code>macos</code>: An alias for <code>aarch64-apple-darwin</code>, the default target for macOS</li>
<li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li> <li><code>x86_64-pc-windows-msvc</code>: A 64-bit x86 Windows target</li>
<li><code>aarch64-pc-windows-msvc</code>: An ARM64 Windows target</li>
<li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li> <li><code>i686-pc-windows-msvc</code>: A 32-bit x86 Windows target</li>
<li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li> <li><code>x86_64-unknown-linux-gnu</code>: An x86 Linux target. Equivalent to <code>x86_64-manylinux_2_28</code></li>
<li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li> <li><code>aarch64-apple-darwin</code>: An ARM-based macOS target, as seen on Apple Silicon devices</li>

5
uv.schema.json generated
View File

@ -2251,6 +2251,11 @@
"type": "string", "type": "string",
"const": "x86_64-pc-windows-msvc" "const": "x86_64-pc-windows-msvc"
}, },
{
"description": "An ARM64 Windows target.",
"type": "string",
"const": "aarch64-pc-windows-msvc"
},
{ {
"description": "A 32-bit x86 Windows target.", "description": "A 32-bit x86 Windows target.",
"type": "string", "type": "string",