3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #180964 from amjoseph-nixpkgs/pr/mkSkeletonFromList/simplify

lib/systems/parse.nix: mkSkeletonFromList: improve readability
This commit is contained in:
John Ericson 2022-11-22 15:02:22 -05:00 committed by GitHub
commit 2cb8f1a0ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -422,29 +422,29 @@ rec {
else if (elemAt l 1) == "elf" else if (elemAt l 1) == "elf"
then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; } then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; }
else { cpu = elemAt l 0; kernel = elemAt l 1; }; else { cpu = elemAt l 0; kernel = elemAt l 1; };
"3" = # Awkward hacks, beware! "3" =
if elemAt l 1 == "apple" # cpu-kernel-environment
then { cpu = elemAt l 0; vendor = "apple"; kernel = elemAt l 2; } if elemAt l 1 == "linux" ||
else if (elemAt l 1 == "linux") || (elemAt l 2 == "gnu") elem (elemAt l 2) ["eabi" "eabihf" "elf" "gnu"]
then { cpu = elemAt l 0; kernel = elemAt l 1; abi = elemAt l 2; } then {
else if (elemAt l 2 == "mingw32") # autotools breaks on -gnu for window cpu = elemAt l 0;
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; } kernel = elemAt l 1;
else if (elemAt l 2 == "wasi") abi = elemAt l 2;
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "wasi"; } vendor = "unknown";
else if (elemAt l 2 == "redox") }
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "redox"; } # cpu-vendor-os
else if (elemAt l 2 == "mmixware") else if elemAt l 1 == "apple" ||
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "mmixware"; } elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] ||
else if hasPrefix "freebsd" (elemAt l 2) hasPrefix "freebsd" (elemAt l 2) ||
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } hasPrefix "netbsd" (elemAt l 2) ||
else if hasPrefix "netbsd" (elemAt l 2) hasPrefix "genode" (elemAt l 2)
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } then {
else if (elem (elemAt l 2) ["eabi" "eabihf" "elf"]) cpu = elemAt l 0;
then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 1; abi = elemAt l 2; } vendor = elemAt l 1;
else if (elemAt l 2 == "ghcjs") kernel = if elemAt l 2 == "mingw32"
then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 2; } then "windows" # autotools breaks on -gnu for window
else if hasPrefix "genode" (elemAt l 2) else elemAt l 2;
then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } }
else throw "Target specification with 3 components is ambiguous"; else throw "Target specification with 3 components is ambiguous";
"4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; };
}.${toString (length l)} }.${toString (length l)}