Detect *-pc-windows-gnu targets in targets

And add fallback `*-pc-windows-msvc` to the returned targets.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-06-23 13:59:53 +10:00
parent c36f1fe08a
commit 8bc0f11569
No known key found for this signature in database
GPG key ID: 591C0B03040416D6

View file

@ -32,6 +32,11 @@ pub async fn detect_targets() -> Vec<String> {
v.push(macos::X86.into());
}
#[cfg(target_os = "windows")]
if v[0].contains("gnu") {
v.push(v[0].replace("gnu", "msvc"));
}
v
} else {
#[cfg(target_os = "linux")]
@ -42,7 +47,11 @@ pub async fn detect_targets() -> Vec<String> {
{
macos::detect_targets_macos()
}
#[cfg(not(any(target_os = "linux", target_os = "macos")))]
#[cfg(target_os = "windows")]
{
windows::detect_targets_windows()
}
#[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows")))]
{
vec![TARGET.into()]
}
@ -145,3 +154,19 @@ mod macos {
}
}
}
#[cfg(target_os = "windows")]
mod windows {
use super::TARGET;
use guess_host_triple::guess_host_triple;
pub(super) fn detect_targets_windows() -> Vec<String> {
let mut targets = vec![guess_host_triple().unwrap_or(TARGET).to_string()];
if targets[0].contains("gnu") {
targets.push(targets[0].replace("gnu", "msvc"));
}
targets
}
}