From 0e0894c37d398c9c0fe8bf52815c7cef127ac583 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Tue, 16 Oct 2018 21:48:43 -0500 Subject: lib/systems: add uname attrs --- lib/systems/default.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib') diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 5eacc9eb23e1..6c6ce5c6ef62 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -46,6 +46,24 @@ rec { # Misc boolean options useAndroidPrebuilt = false; useiOSPrebuilt = false; + + # Output from uname + uname = { + # uname -s + system = if final.isLinux then "Linux" + else if final.isDarwin then "Darwin" + else if final.isWindows then "Windows" + else if final.isFreeBSD then "FreeBSD" + else if final.isNetBSD then "NetBSD" + else if final.isOpenBSD then "OpenBSD" + else null; + + # uname -p + processor = final.parsed.cpu.name; + + # uname -r + release = null; + }; } // mapAttrs (n: v: v final.parsed) inspect.predicates // args; in assert final.useAndroidPrebuilt -> final.isAndroid; -- cgit 1.4.1 From 8652631b138b7cfd1f25a6e72a6e971dc232290a Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Tue, 16 Oct 2018 21:56:58 -0500 Subject: systems/doubles.nix: add mingw doubles this makes it easier to show what supports windows vs. unix. --- lib/systems/doubles.nix | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib') diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index a00165db1716..3d45935bc076 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -15,6 +15,8 @@ let "x86_64-cygwin" "x86_64-darwin" "x86_64-freebsd" "x86_64-linux" "x86_64-netbsd" "x86_64-openbsd" "x86_64-solaris" + + "x86_64-mingw32" "i686-mingw32" ]; allParsed = map parse.mkSystemFromString all; @@ -43,6 +45,7 @@ in rec { netbsd = filterDoubles predicates.isNetBSD; openbsd = filterDoubles predicates.isOpenBSD; unix = filterDoubles predicates.isUnix; + windows = filterDoubles predicates.isWindows; mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "powerpc64le-linux"]; } -- cgit 1.4.1 From 45cc6e2a4286276387d0bcb768a1e45086719210 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Wed, 17 Oct 2018 14:43:49 -0500 Subject: lib/systems: use lookup for uname.system This is a little bit cleaner and avoids the if ... else if ... chain. --- lib/systems/default.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 6c6ce5c6ef62..8f5ef44ae72f 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -50,13 +50,14 @@ rec { # Output from uname uname = { # uname -s - system = if final.isLinux then "Linux" - else if final.isDarwin then "Darwin" - else if final.isWindows then "Windows" - else if final.isFreeBSD then "FreeBSD" - else if final.isNetBSD then "NetBSD" - else if final.isOpenBSD then "OpenBSD" - else null; + system = { + "linux" = "Linux"; + "windows" = "Windows"; + "darwin" = "Darwin"; + "netbsd" = "NetBSD"; + "freebsd" = "FreeBSD"; + "openbsd" = "OpenBSD"; + }.${final.parsed.kernel.name} or null; # uname -p processor = final.parsed.cpu.name; -- cgit 1.4.1 From c8040003f0a0bf2ac79adc3646669a3e718d4ec8 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Wed, 17 Oct 2018 17:03:00 -0500 Subject: Correctly set windows doubles mingw is the toolchain name but it is actually run on a window kernel --- lib/systems/doubles.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 3d45935bc076..fddd5c85574a 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -16,7 +16,7 @@ let "x86_64-cygwin" "x86_64-darwin" "x86_64-freebsd" "x86_64-linux" "x86_64-netbsd" "x86_64-openbsd" "x86_64-solaris" - "x86_64-mingw32" "i686-mingw32" + "x86_64-windows" "i686-windows" ]; allParsed = map parse.mkSystemFromString all; -- cgit 1.4.1 From 4a12a9321c567cae8e132c9d9b8b6255d52364d3 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Thu, 18 Oct 2018 14:12:49 -0500 Subject: tests/systems.nix: fix tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit these weren’t being run correctly --- lib/systems/doubles.nix | 2 +- lib/tests/systems.nix | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index fddd5c85574a..58677c0bdd90 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -39,7 +39,7 @@ in rec { darwin = filterDoubles predicates.isDarwin; freebsd = filterDoubles predicates.isFreeBSD; # Should be better, but MinGW is unclear. - gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }); + gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; }); illumos = filterDoubles predicates.isSunOS; linux = filterDoubles predicates.isLinux; netbsd = filterDoubles predicates.isNetBSD; diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index 91604280e4e7..5e1293658215 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -12,20 +12,21 @@ let expected = lib.sort lib.lessThan y; }; in with lib.systems.doubles; lib.runTests { - all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos)); + testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ windows); - arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]); - i686 = assertTrue (mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" ]); - mips = assertTrue (mseteq mips [ "mipsel-linux" ]); - x86_64 = assertTrue (mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" ]); + testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]; + testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" ]; + testmips = mseteq mips [ "mipsel-linux" ]; + testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" ]; - cygwin = assertTrue (mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]); - darwin = assertTrue (mseteq darwin [ "x86_64-darwin" ]); - freebsd = assertTrue (mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]); - gnu = assertTrue (mseteq gnu (linux /* ++ kfreebsd ++ ... */)); - illumos = assertTrue (mseteq illumos [ "x86_64-solaris" ]); - linux = assertTrue (mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]); - netbsd = assertTrue (mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]); - openbsd = assertTrue (mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]); - unix = assertTrue (mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos)); + testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]; + testdarwin = mseteq darwin [ "x86_64-darwin" ]; + testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ]; + testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); + testillumos = mseteq illumos [ "x86_64-solaris" ]; + testlinux = mseteq linux [ "i686-linux" "x86_64-linux" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux" "mipsel-linux" ]; + testnetbsd = mseteq netbsd [ "i686-netbsd" "x86_64-netbsd" ]; + testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]; + testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ]; + testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin); } -- cgit 1.4.1