diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-04-25 15:57:19 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-04-30 23:06:59 -0400 |
commit | 57723e947a5a935e71e7b0592a88f259e4969336 (patch) | |
tree | eca8d17878162b3e587b7e9cd0cbf69760ad6be7 /lib/systems | |
parent | b9acfb4ecfbbdac123fed170f5b2806fe4e846d0 (diff) | |
parent | 948c8dc474954fce1e340308062a3af0a66610ac (diff) | |
download | nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar.gz nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar.bz2 nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar.lz nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar.xz nixlib-57723e947a5a935e71e7b0592a88f259e4969336.tar.zst nixlib-57723e947a5a935e71e7b0592a88f259e4969336.zip |
Merge remote-tracking branch 'upstream/master' into aarch32
Diffstat (limited to 'lib/systems')
-rw-r--r-- | lib/systems/default.nix | 2 | ||||
-rw-r--r-- | lib/systems/for-meta.nix | 8 | ||||
-rw-r--r-- | lib/systems/inspect.nix | 8 | ||||
-rw-r--r-- | lib/systems/parse.nix | 26 |
4 files changed, 28 insertions, 16 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix index bd408e00bb14..e7346a538d35 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -44,6 +44,8 @@ rec { }; # Misc boolean options useAndroidPrebuilt = false; + useiOSPrebuilt = false; + isiPhoneSimulator = false; } // mapAttrs (n: v: v final.parsed) inspect.predicates // args; in assert final.useAndroidPrebuilt -> final.isAndroid; diff --git a/lib/systems/for-meta.nix b/lib/systems/for-meta.nix index 68c68c2cd369..9e85cea3ad11 100644 --- a/lib/systems/for-meta.nix +++ b/lib/systems/for-meta.nix @@ -4,8 +4,8 @@ let inherit (lib.systems.inspect) patterns; in rec { - inherit (lib.systems.doubles) all mesaPlatforms; - none = []; + all = [ {} ]; # `{}` matches anything + none = []; arm = [ patterns.isAarch32 ]; aarch64 = [ patterns.isAarch64 ]; @@ -13,6 +13,7 @@ in rec { i686 = [ patterns.isi686 ]; x86_64 = [ patterns.isx86_64 ]; mips = [ patterns.isMips ]; + riscv = [ patterns.isRiscV ]; cygwin = [ patterns.isCygwin ]; darwin = [ patterns.isDarwin ]; @@ -24,4 +25,7 @@ in rec { netbsd = [ patterns.isNetBSD ]; openbsd = [ patterns.isOpenBSD ]; unix = patterns.isUnix; # Actually a list + windows = [ patterns.isWindows ]; + + inherit (lib.systems.doubles) mesaPlatforms; } diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index 91ae2cd2557e..63f9fab4f675 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -21,9 +21,11 @@ rec { isLittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; }; isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; + isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; }; isUnix = [ isBSD isDarwin isLinux isSunOS isHurd isCygwin ]; - isDarwin = { kernel = kernels.darwin; }; + isMacOS = { kernel = kernels.macos; }; + isiOS = { kernel = kernels.ios; }; isLinux = { kernel = kernels.linux; }; isSunOS = { kernel = kernels.solaris; }; isFreeBSD = { kernel = kernels.freebsd; }; @@ -37,12 +39,8 @@ rec { isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ]; isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf ]; - isKexecable = map (family: { kernel = kernels.linux; cpu.family = family; }) - [ "x86" "arm" "aarch64" "mips" ]; isEfi = map (family: { cpu.family = family; }) [ "x86" "arm" "aarch64" ]; - isSeccomputable = map (family: { kernel = kernels.linux; cpu.family = family; }) - [ "x86" "arm" "aarch64" "mips" ]; # Deprecated after 18.03 isArm = isAarch32; diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 8a6c951d5e5e..018fd172e687 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -34,7 +34,7 @@ rec { ################################################################################ - types.openSignifiantByte = mkOptionType { + types.openSignificantByte = mkOptionType { name = "significant-byte"; description = "Endianness"; merge = mergeOneOption; @@ -42,7 +42,7 @@ rec { types.significantByte = enum (attrValues significantBytes); - significantBytes = setTypes types.openSignifiantByte { + significantBytes = setTypes types.openSignificantByte { bigEndian = {}; littleEndian = {}; }; @@ -134,6 +134,7 @@ rec { kernelFamilies = setTypes types.openKernelFamily { bsd = {}; + darwin = {}; }; ################################################################################ @@ -149,7 +150,10 @@ rec { types.kernel = enum (attrValues kernels); kernels = with execFormats; with kernelFamilies; setTypes types.openKernel { - darwin = { execFormat = macho; families = { }; }; + # TODO(@Ericson2314): Don't want to mass-rebuild yet to keeping 'darwin' as + # the nnormalized name for macOS. + macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; }; + ios = { execFormat = macho; families = { inherit darwin; }; }; freebsd = { execFormat = elf; families = { inherit bsd; }; }; hurd = { execFormat = elf; families = { }; }; linux = { execFormat = elf; families = { }; }; @@ -159,9 +163,13 @@ rec { solaris = { execFormat = elf; families = { }; }; windows = { execFormat = pe; families = { }; }; } // { # aliases + # 'darwin' is the kernel for all of them. We choose macOS by default. + darwin = kernels.macos; # TODO(@Ericson2314): Handle these Darwin version suffixes more generally. - darwin10 = kernels.darwin; - darwin14 = kernels.darwin; + darwin10 = kernels.macos; + darwin14 = kernels.macos; + watchos = kernels.ios; + tvos = kernels.ios; win32 = kernels.windows; }; @@ -193,7 +201,7 @@ rec { ################################################################################ - types.system = mkOptionType { + types.parsedPlatform = mkOptionType { name = "system"; description = "fully parsed representation of llvm- or nix-style platform tuple"; merge = mergeOneOption; @@ -207,7 +215,7 @@ rec { isSystem = isType "system"; mkSystem = components: - assert types.system.check components; + assert types.parsedPlatform.check components; setType "system" components; mkSkeletonFromList = l: { @@ -263,8 +271,8 @@ rec { mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s)); doubleFromSystem = { cpu, vendor, kernel, abi, ... }: - if abi == abis.cygnus - then "${cpu.name}-cygwin" + /**/ if abi == abis.cygnus then "${cpu.name}-cygwin" + else if kernel.families ? darwin then "${cpu.name}-darwin" else "${cpu.name}-${kernel.name}"; tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let |