openrazer: 3.0.0 -> 3.0.1, mark broken for kernels < 4.19
[NixPkgs.git] / lib / systems / doubles.nix
blob6f638be585b10cde8295f3f0df05340a66d10da7
1 { lib }:
2 let
3   inherit (lib) lists;
4   inherit (lib.systems) parse;
5   inherit (lib.systems.inspect) predicates;
6   inherit (lib.attrsets) matchAttrs;
8   all = [
9     # Cygwin
10     "i686-cygwin" "x86_64-cygwin"
12     # Darwin
13     "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin"
15     # FreeBSD
16     "i686-freebsd" "x86_64-freebsd"
18     # Genode
19     "aarch64-genode" "i686-genode" "x86_64-genode"
21     # illumos
22     "x86_64-solaris"
24     # JS
25     "js-ghcjs"
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"
32     # MMIXware
33     "mmix-mmixware"
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"
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"
45     # OpenBSD
46     "i686-openbsd" "x86_64-openbsd"
48     # Redox
49     "x86_64-redox"
51     # WASI
52     "wasm64-wasi" "wasm32-wasi"
54     # Windows
55     "x86_64-windows" "i686-windows"
56   ];
58   allParsed = map parse.mkSystemFromString all;
60   filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed);
62 in {
63   inherit all;
65   none = [];
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;
79   bigEndian     = filterDoubles predicates.isBigEndian;
80   littleEndian  = filterDoubles predicates.isLittleEndian;
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;
97   embedded      = filterDoubles predicates.isNone;
99   mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux"];