fcde869e7e
There is no more `cygwin` OS, but instead a `cygnus` abi. "win32" and "mingw32" parse as `windows`. Add a 3-part hack because autotools breaks on explicit abi with windows-like (e.g. "i686-pc-windows-gnu"). Also change cross triples to conform
44 lines
1.6 KiB
Nix
44 lines
1.6 KiB
Nix
let lists = import ../lists.nix; in
|
|
let parse = import ./parse.nix; in
|
|
let inherit (import ../attrsets.nix) matchAttrs; in
|
|
|
|
let
|
|
all = [
|
|
"aarch64-linux"
|
|
"armv5tel-linux" "armv6l-linux" "armv7l-linux"
|
|
|
|
"mips64el-linux"
|
|
|
|
"i686-cygwin" "i686-freebsd" "i686-linux" "i686-netbsd" "i686-openbsd"
|
|
|
|
"x86_64-cygwin" "x86_64-darwin" "x86_64-freebsd" "x86_64-linux"
|
|
"x86_64-netbsd" "x86_64-openbsd" "x86_64-solaris"
|
|
];
|
|
|
|
allParsed = map parse.mkSystemFromString all;
|
|
|
|
filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed);
|
|
|
|
in rec {
|
|
inherit all;
|
|
|
|
allBut = platforms: lists.filter (x: !(builtins.elem x platforms)) all;
|
|
none = [];
|
|
|
|
arm = filterDoubles (matchAttrs { cpu = { family = "arm"; bits = 32; }; });
|
|
i686 = filterDoubles parse.isi686;
|
|
mips = filterDoubles (matchAttrs { cpu = { family = "mips"; }; });
|
|
x86_64 = filterDoubles parse.isx86_64;
|
|
|
|
cygwin = filterDoubles parse.isCygwin;
|
|
darwin = filterDoubles parse.isDarwin;
|
|
freebsd = filterDoubles (matchAttrs { kernel = parse.kernels.freebsd; });
|
|
gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }); # Should be better
|
|
illumos = filterDoubles (matchAttrs { kernel = parse.kernels.solaris; });
|
|
linux = filterDoubles parse.isLinux;
|
|
netbsd = filterDoubles (matchAttrs { kernel = parse.kernels.netbsd; });
|
|
openbsd = filterDoubles (matchAttrs { kernel = parse.kernels.openbsd; });
|
|
unix = filterDoubles parse.isUnix;
|
|
|
|
mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux"];
|
|
}
|