summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@yahoo.com>2018-03-19 15:08:06 -0400
committerGitHub <noreply@github.com>2018-03-19 15:08:06 -0400
commitc22e2f86c7a05cb1a87323b30815f2844a8723fd (patch)
treeb09ff099d0b4e56ee39603f76aa6ea3a7abf4895 /lib
parentca7b29050fed6283c701148e8135b01d61328379 (diff)
parentbbfa2f97014de8aa928485a07b722d792b09238f (diff)
downloadnixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar.gz
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar.bz2
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar.lz
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar.xz
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.tar.zst
nixpkgs-c22e2f86c7a05cb1a87323b30815f2844a8723fd.zip
Merge pull request #37359 from obsidiansystems/lib-darwin-reorg
lib: Split Darwin into macOS and iOS
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 ab220af46e3..4cdd2629547 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 03d052f5f19..641a7f5d758 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