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

lib/systems/parse.nix: mkSkeletonFromList: improve readability

authored by

John Ericson and committed by
GitHub
2cb8f1a0 f50886c0

+23 -23
+23 -23
lib/systems/parse.nix
··· 422 422 else if (elemAt l 1) == "elf" 423 423 then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; } 424 424 else { cpu = elemAt l 0; kernel = elemAt l 1; }; 425 - "3" = # Awkward hacks, beware! 426 - if elemAt l 1 == "apple" 427 - then { cpu = elemAt l 0; vendor = "apple"; kernel = elemAt l 2; } 428 - else if (elemAt l 1 == "linux") || (elemAt l 2 == "gnu") 429 - then { cpu = elemAt l 0; kernel = elemAt l 1; abi = elemAt l 2; } 430 - else if (elemAt l 2 == "mingw32") # autotools breaks on -gnu for window 431 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; } 432 - else if (elemAt l 2 == "wasi") 433 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "wasi"; } 434 - else if (elemAt l 2 == "redox") 435 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "redox"; } 436 - else if (elemAt l 2 == "mmixware") 437 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "mmixware"; } 438 - else if hasPrefix "freebsd" (elemAt l 2) 439 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } 440 - else if hasPrefix "netbsd" (elemAt l 2) 441 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } 442 - else if (elem (elemAt l 2) ["eabi" "eabihf" "elf"]) 443 - then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 1; abi = elemAt l 2; } 444 - else if (elemAt l 2 == "ghcjs") 445 - then { cpu = elemAt l 0; vendor = "unknown"; kernel = elemAt l 2; } 446 - else if hasPrefix "genode" (elemAt l 2) 447 - then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } 425 + "3" = 426 + # cpu-kernel-environment 427 + if elemAt l 1 == "linux" || 428 + elem (elemAt l 2) ["eabi" "eabihf" "elf" "gnu"] 429 + then { 430 + cpu = elemAt l 0; 431 + kernel = elemAt l 1; 432 + abi = elemAt l 2; 433 + vendor = "unknown"; 434 + } 435 + # cpu-vendor-os 436 + else if elemAt l 1 == "apple" || 437 + elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] || 438 + hasPrefix "freebsd" (elemAt l 2) || 439 + hasPrefix "netbsd" (elemAt l 2) || 440 + hasPrefix "genode" (elemAt l 2) 441 + then { 442 + cpu = elemAt l 0; 443 + vendor = elemAt l 1; 444 + kernel = if elemAt l 2 == "mingw32" 445 + then "windows" # autotools breaks on -gnu for window 446 + else elemAt l 2; 447 + } 448 448 else throw "Target specification with 3 components is ambiguous"; 449 449 "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; 450 450 }.${toString (length l)}