mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 06:53:01 +00:00
lib.systems.examples: add wasm32-unknown-none
This system was added to use the nixpkgs cross compilation logic when compiling to wasm32-unknown-unknown in rust.
This commit is contained in:
parent
216728b751
commit
957116419d
@ -84,20 +84,21 @@ let
|
||||
useLLVM = final.isFreeBSD;
|
||||
|
||||
libc =
|
||||
/**/ if final.isDarwin then "libSystem"
|
||||
else if final.isMinGW then "msvcrt"
|
||||
else if final.isWasi then "wasilibc"
|
||||
else if final.isRedox then "relibc"
|
||||
else if final.isMusl then "musl"
|
||||
else if final.isUClibc then "uclibc"
|
||||
else if final.isAndroid then "bionic"
|
||||
else if final.isLinux /* default */ then "glibc"
|
||||
else if final.isFreeBSD then "fblibc"
|
||||
else if final.isOpenBSD then "oblibc"
|
||||
else if final.isNetBSD then "nblibc"
|
||||
else if final.isAvr then "avrlibc"
|
||||
else if final.isGhcjs then null
|
||||
else if final.isNone then "newlib"
|
||||
/**/ if final.isDarwin then "libSystem"
|
||||
else if final.isMinGW then "msvcrt"
|
||||
else if final.isWasi then "wasilibc"
|
||||
else if final.isWasm && !final.isWasi then null
|
||||
else if final.isRedox then "relibc"
|
||||
else if final.isMusl then "musl"
|
||||
else if final.isUClibc then "uclibc"
|
||||
else if final.isAndroid then "bionic"
|
||||
else if final.isLinux /* default */ then "glibc"
|
||||
else if final.isFreeBSD then "fblibc"
|
||||
else if final.isOpenBSD then "oblibc"
|
||||
else if final.isNetBSD then "nblibc"
|
||||
else if final.isAvr then "avrlibc"
|
||||
else if final.isGhcjs then null
|
||||
else if final.isNone then "newlib"
|
||||
# TODO(@Ericson2314) think more about other operating systems
|
||||
else "native/impure";
|
||||
# Choose what linker we wish to use by default. Someday we might also
|
||||
@ -179,6 +180,7 @@ let
|
||||
(isAndroid || isGnu || isMusl # Linux (allows multiple libcs)
|
||||
|| isDarwin || isSunOS || isOpenBSD || isFreeBSD || isNetBSD # BSDs
|
||||
|| isCygwin || isMinGW # Windows
|
||||
|| isWasm # WASM
|
||||
) && !isStatic;
|
||||
|
||||
# The difference between `isStatic` and `hasSharedLibraries` is mainly the
|
||||
@ -187,7 +189,7 @@ let
|
||||
# don't support dynamic linking, but don't get the `staticMarker`.
|
||||
# `pkgsStatic` sets `isStatic=true`, so `pkgsStatic.hostPlatform` always
|
||||
# has the `staticMarker`.
|
||||
isStatic = final.isWasm || final.isRedox;
|
||||
isStatic = final.isWasi || final.isRedox;
|
||||
|
||||
# Just a guess, based on `system`
|
||||
inherit
|
||||
@ -337,7 +339,8 @@ let
|
||||
if isList f then f else [ f ]
|
||||
)
|
||||
else optional final.isUnix "unix"
|
||||
++ optional final.isWindows "windows";
|
||||
++ optional final.isWindows "windows"
|
||||
++ optional final.isWasm "wasm";
|
||||
|
||||
# https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor
|
||||
vendor = let
|
||||
|
@ -356,6 +356,12 @@ rec {
|
||||
useLLVM = true;
|
||||
};
|
||||
|
||||
wasm32-unknown-none = {
|
||||
config = "wasm32-unknown-none";
|
||||
rust.rustcTarget = "wasm32-unknown-unknown";
|
||||
useLLVM = true;
|
||||
};
|
||||
|
||||
# Ghcjs
|
||||
ghcjs = {
|
||||
# This triple is special to GHC/Cabal/GHCJS and not recognized by autotools
|
||||
|
@ -466,11 +466,12 @@ rec {
|
||||
}
|
||||
# cpu-vendor-os
|
||||
else if elemAt l 1 == "apple" ||
|
||||
elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] ||
|
||||
elem (elemAt l 2) [ "redox" "mmixware" "ghcjs" "mingw32" ] ||
|
||||
hasPrefix "freebsd" (elemAt l 2) ||
|
||||
hasPrefix "netbsd" (elemAt l 2) ||
|
||||
hasPrefix "openbsd" (elemAt l 2) ||
|
||||
hasPrefix "genode" (elemAt l 2)
|
||||
hasPrefix "genode" (elemAt l 2) ||
|
||||
hasPrefix "wasm32" (elemAt l 0)
|
||||
then {
|
||||
cpu = elemAt l 0;
|
||||
vendor = elemAt l 1;
|
||||
|
Loading…
Reference in New Issue
Block a user