at 21.11-pre 3.3 kB view raw
1{ lib }: 2let 3 inherit (lib) lists; 4 inherit (lib.systems) parse; 5 inherit (lib.systems.inspect) predicates; 6 inherit (lib.attrsets) matchAttrs; 7 8 all = [ 9 # Cygwin 10 "i686-cygwin" "x86_64-cygwin" 11 12 # Darwin 13 "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" 14 15 # FreeBSD 16 "i686-freebsd" "x86_64-freebsd" 17 18 # Genode 19 "aarch64-genode" "i686-genode" "x86_64-genode" 20 21 # illumos 22 "x86_64-solaris" 23 24 # JS 25 "js-ghcjs" 26 27 # Linux 28 "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" 29 "armv7l-linux" "i686-linux" "mipsel-linux" "powerpc64-linux" 30 "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" 31 32 # MMIXware 33 "mmix-mmixware" 34 35 # NetBSD 36 "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" 37 "i686-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" 38 "riscv64-netbsd" "x86_64-netbsd" 39 40 # none 41 "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" "msp430-none" 42 "or1k-none" "powerpc-none" "riscv32-none" "riscv64-none" "vc4-none" 43 "x86_64-none" 44 45 # OpenBSD 46 "i686-openbsd" "x86_64-openbsd" 47 48 # Redox 49 "x86_64-redox" 50 51 # WASI 52 "wasm64-wasi" "wasm32-wasi" 53 54 # Windows 55 "x86_64-windows" "i686-windows" 56 ]; 57 58 allParsed = map parse.mkSystemFromString all; 59 60 filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed); 61 62in { 63 inherit all; 64 65 none = []; 66 67 arm = filterDoubles predicates.isAarch32; 68 aarch64 = filterDoubles predicates.isAarch64; 69 x86 = filterDoubles predicates.isx86; 70 i686 = filterDoubles predicates.isi686; 71 x86_64 = filterDoubles predicates.isx86_64; 72 mips = filterDoubles predicates.isMips; 73 mmix = filterDoubles predicates.isMmix; 74 riscv = filterDoubles predicates.isRiscV; 75 vc4 = filterDoubles predicates.isVc4; 76 or1k = filterDoubles predicates.isOr1k; 77 js = filterDoubles predicates.isJavaScript; 78 79 bigEndian = filterDoubles predicates.isBigEndian; 80 littleEndian = filterDoubles predicates.isLittleEndian; 81 82 cygwin = filterDoubles predicates.isCygwin; 83 darwin = filterDoubles predicates.isDarwin; 84 freebsd = filterDoubles predicates.isFreeBSD; 85 # Should be better, but MinGW is unclear. 86 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; }); 87 illumos = filterDoubles predicates.isSunOS; 88 linux = filterDoubles predicates.isLinux; 89 netbsd = filterDoubles predicates.isNetBSD; 90 openbsd = filterDoubles predicates.isOpenBSD; 91 unix = filterDoubles predicates.isUnix; 92 wasi = filterDoubles predicates.isWasi; 93 redox = filterDoubles predicates.isRedox; 94 windows = filterDoubles predicates.isWindows; 95 genode = filterDoubles predicates.isGenode; 96 97 embedded = filterDoubles predicates.isNone; 98 99 mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux" "aarch64-darwin"]; 100}