| 
									
										
										
										
											2017-07-28 20:05:35 -04:00
										 |  |  | { lib }: | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  | let | 
					
						
							| 
									
										
										
										
											2017-07-28 20:05:35 -04:00
										 |  |  |   inherit (lib) lists; | 
					
						
							|  |  |  |   parse = import ./parse.nix { inherit lib; }; | 
					
						
							|  |  |  |   inherit (import ./inspect.nix { inherit lib; }) predicates; | 
					
						
							|  |  |  |   inherit (lib.attrsets) matchAttrs; | 
					
						
							| 
									
										
										
										
											2017-05-21 13:39:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-09 16:09:47 -05:00
										 |  |  |   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; | 
					
						
							| 
									
										
										
										
											2009-09-23 19:45:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-26 18:53:03 +00:00
										 |  |  |   allBut = platforms: lists.filter (x: !(builtins.elem x platforms)) all; | 
					
						
							|  |  |  |   none = []; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-24 01:16:02 +03:00
										 |  |  |   arm     = filterDoubles predicates.isArm; | 
					
						
							| 
									
										
										
										
											2017-05-21 13:39:23 -04:00
										 |  |  |   i686    = filterDoubles predicates.isi686; | 
					
						
							|  |  |  |   mips    = filterDoubles predicates.isMips; | 
					
						
							|  |  |  |   x86_64  = filterDoubles predicates.isx86_64; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   cygwin  = filterDoubles predicates.isCygwin; | 
					
						
							|  |  |  |   darwin  = filterDoubles predicates.isDarwin; | 
					
						
							|  |  |  |   freebsd = filterDoubles predicates.isFreeBSD; | 
					
						
							|  |  |  |   # Should be better, but MinGW is unclear, and HURD is bit-rotted. | 
					
						
							|  |  |  |   gnu     = filterDoubles (matchAttrs { kernel = parse.kernels.linux;  abi = parse.abis.gnu; }); | 
					
						
							|  |  |  |   illumos = filterDoubles predicates.isSunOS; | 
					
						
							|  |  |  |   linux   = filterDoubles predicates.isLinux; | 
					
						
							|  |  |  |   netbsd  = filterDoubles predicates.isNetBSD; | 
					
						
							|  |  |  |   openbsd = filterDoubles predicates.isOpenBSD; | 
					
						
							|  |  |  |   unix    = filterDoubles predicates.isUnix; | 
					
						
							| 
									
										
										
										
											2016-02-26 18:53:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-27 13:52:06 +02:00
										 |  |  |   mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "aarch64-linux"]; | 
					
						
							| 
									
										
										
										
											2009-08-25 08:28:08 +00:00
										 |  |  | } |