summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/systems/inspect.nix4
-rw-r--r--lib/systems/parse.nix18
2 files changed, 16 insertions, 6 deletions
diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix
index ab220af46e30..4cdd26295471 100644
--- a/lib/systems/inspect.nix
+++ b/lib/systems/inspect.nix
@@ -21,9 +21,11 @@ rec {
LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; };
BSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
+ Darwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
Unix = [ BSD Darwin Linux SunOS Hurd Cygwin ];
- Darwin = { kernel = kernels.darwin; };
+ MacOS = { kernel = kernels.macos; };
+ iOS = { kernel = kernels.ios; };
Linux = { kernel = kernels.linux; };
SunOS = { kernel = kernels.solaris; };
FreeBSD = { kernel = kernels.freebsd; };
diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix
index 03d052f5f192..641a7f5d7584 100644
--- a/lib/systems/parse.nix
+++ b/lib/systems/parse.nix
@@ -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;
};
@@ -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