1
0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-11-08 12:59:17 +01:00

build(windows): add support for gnullvm targets

This commit is contained in:
Maksim Bondarenkov 2024-07-14 07:50:32 +03:00 committed by Jack O'Connor
parent 84a4ec319a
commit d94882d66d

@ -74,7 +74,7 @@ fn is_big_endian() -> bool {
endianness() == "big" endianness() == "big"
} }
// Windows targets may be using the MSVC toolchain or the GNU toolchain. The // Windows targets may be using the MSVC toolchain or the MinGW toolchain. The
// right compiler flags to use depend on the toolchain. (And we don't want to // right compiler flags to use depend on the toolchain. (And we don't want to
// use flag_if_supported, because we don't want features to be silently // use flag_if_supported, because we don't want features to be silently
// disabled by old compilers.) // disabled by old compilers.)
@ -85,11 +85,15 @@ fn is_windows_msvc() -> bool {
&& target_components()[3] == "msvc" && target_components()[3] == "msvc"
} }
// MinGW toolchain uses 2 different targets depending on the main compiler.
// Target for a general MinGW toolchain ends with `-gnu` (GCC is used as C
// compiler). Target for a LLVM-MinGW toolchain (Clang is used as C compiler)
// ends with `-gnullvm`.
fn is_windows_gnu() -> bool { fn is_windows_gnu() -> bool {
// Some targets are only two components long, so check in steps. // Some targets are only two components long, so check in steps.
target_components()[1] == "pc" target_components()[1] == "pc"
&& target_components()[2] == "windows" && target_components()[2] == "windows"
&& target_components()[3] == "gnu" && target_components()[3] != "msvc"
} }
fn new_build() -> cc::Build { fn new_build() -> cc::Build {