Merge pull request #200431 from obsidiansystems/rust-to-target-family

build-support/rust/lib: Add `toTargetFamily`
This commit is contained in:
John Ericson 2022-11-09 16:18:27 -05:00 committed by GitHub
commit 1a482feca5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,6 +15,21 @@ rec {
else if platform.isDarwin then "macos"
else platform.parsed.kernel.name;
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_family
toTargetFamily = platform:
if platform ? rustc.platform.target-family
then
(
# Since https://github.com/rust-lang/rust/pull/84072
# `target-family` is a list instead of single value.
let
f = platform.rustc.platform.target-family;
in
if builtins.isList f then f else [ f ]
)
else lib.optional platform.isUnix "unix"
++ lib.optional platform.isWindows "windows";
# Returns the name of the rust target, even if it is custom. Adjustments are
# because rust has slightly different naming conventions than we do.
toRustTarget = platform: let