diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2018-10-19 11:47:43 -0500 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2018-10-29 14:34:10 -0500 |
commit | 52dbd3380e0e9328d69c4abaae2d28b3e7e76bce (patch) | |
tree | 862539305954b1256792d0addeae9a4528014e56 /lib | |
parent | 8db71d9d773956d41778b88d88ead126a0138e67 (diff) |
systems/parse.nix: support weird system configs
There are some weird ones out there that don’t follow any pattern:
- arm-none-eabi
- powerpc-none-eabi
- aarch64-none-elf
Diffstat (limited to 'lib')
-rw-r--r-- | lib/systems/parse.nix | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 058d4bed9085..a390a098c60f 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -119,6 +119,7 @@ rec { apple = {}; pc = {}; + none = {}; unknown = {}; }; @@ -202,6 +203,7 @@ rec { cygnus = {}; msvc = {}; eabi = {}; + elf = {}; androideabi = {}; android = { @@ -263,6 +265,8 @@ rec { "2" = # We only do 2-part hacks for things Nix already supports if elemAt l 1 == "cygwin" then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } + else if (elemAt l 1 == "eabi") + then { cpu = elemAt l 0; vendor = "none"; kernel = "none"; abi = elemAt l 1; } else { cpu = elemAt l 0; kernel = elemAt l 1; }; "3" = # Awkwards hacks, beware! if elemAt l 1 == "apple" @@ -273,6 +277,10 @@ rec { then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "windows"; abi = "gnu"; } else if hasPrefix "netbsd" (elemAt l 2) then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; } + else if (elemAt l 2 == "eabi") + then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "none"; abi = elemAt l 2; } + else if (elemAt l 2 == "elf") + then { cpu = elemAt l 0; vendor = elemAt l 1; kernel = "none"; abi = elemAt l 2; } 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; }; }.${toString (length l)} |