at 24.05-pre 4.7 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-freebsd13" "x86_64-freebsd13" 17 18 # Genode 19 "aarch64-genode" "i686-genode" "x86_64-genode" 20 21 # illumos 22 "x86_64-solaris" 23 24 # JS 25 "javascript-ghcjs" 26 27 # Linux 28 "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" 29 "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux" 30 "microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux" 31 "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" 32 "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" 33 34 # MMIXware 35 "mmix-mmixware" 36 37 # NetBSD 38 "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" 39 "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" 40 "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" 41 42 # none 43 "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" 44 "microblaze-none" "microblazeel-none" "mips-none" "mips64-none" "msp430-none" "or1k-none" "m68k-none" 45 "powerpc-none" "powerpcle-none" "riscv32-none" "riscv64-none" "rx-none" 46 "s390-none" "s390x-none" "vc4-none" "x86_64-none" 47 48 # OpenBSD 49 "i686-openbsd" "x86_64-openbsd" 50 51 # Redox 52 "x86_64-redox" 53 54 # WASI 55 "wasm64-wasi" "wasm32-wasi" 56 57 # Windows 58 "x86_64-windows" "i686-windows" 59 ]; 60 61 allParsed = map parse.mkSystemFromString all; 62 63 filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed); 64 65in { 66 inherit all; 67 68 none = []; 69 70 arm = filterDoubles predicates.isAarch32; 71 armv7 = filterDoubles predicates.isArmv7; 72 aarch64 = filterDoubles predicates.isAarch64; 73 x86 = filterDoubles predicates.isx86; 74 i686 = filterDoubles predicates.isi686; 75 x86_64 = filterDoubles predicates.isx86_64; 76 microblaze = filterDoubles predicates.isMicroBlaze; 77 mips = filterDoubles predicates.isMips; 78 mmix = filterDoubles predicates.isMmix; 79 power = filterDoubles predicates.isPower; 80 riscv = filterDoubles predicates.isRiscV; 81 riscv32 = filterDoubles predicates.isRiscV32; 82 riscv64 = filterDoubles predicates.isRiscV64; 83 rx = filterDoubles predicates.isRx; 84 vc4 = filterDoubles predicates.isVc4; 85 or1k = filterDoubles predicates.isOr1k; 86 m68k = filterDoubles predicates.isM68k; 87 s390 = filterDoubles predicates.isS390; 88 s390x = filterDoubles predicates.isS390x; 89 loongarch64 = filterDoubles predicates.isLoongArch64; 90 js = filterDoubles predicates.isJavaScript; 91 92 bigEndian = filterDoubles predicates.isBigEndian; 93 littleEndian = filterDoubles predicates.isLittleEndian; 94 95 cygwin = filterDoubles predicates.isCygwin; 96 darwin = filterDoubles predicates.isDarwin; 97 freebsd = filterDoubles predicates.isFreeBSD; 98 # Should be better, but MinGW is unclear. 99 gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) 100 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) 101 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; }) 102 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabin32; }) 103 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabi64; }) 104 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv1; }) 105 ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv2; }); 106 illumos = filterDoubles predicates.isSunOS; 107 linux = filterDoubles predicates.isLinux; 108 netbsd = filterDoubles predicates.isNetBSD; 109 openbsd = filterDoubles predicates.isOpenBSD; 110 unix = filterDoubles predicates.isUnix; 111 wasi = filterDoubles predicates.isWasi; 112 redox = filterDoubles predicates.isRedox; 113 windows = filterDoubles predicates.isWindows; 114 genode = filterDoubles predicates.isGenode; 115 116 embedded = filterDoubles predicates.isNone; 117 118 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" "riscv64-linux"]; 119}