Merge pull request #37359 from obsidiansystems/lib-darwin-reorg
lib: Split Darwin into macOS and iOS
This commit is contained in:
commit
c22e2f86c7
@ -21,9 +21,11 @@ rec {
|
|||||||
LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; };
|
LittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; };
|
||||||
|
|
||||||
BSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
|
BSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; };
|
||||||
|
Darwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; };
|
||||||
Unix = [ BSD Darwin Linux SunOS Hurd Cygwin ];
|
Unix = [ BSD Darwin Linux SunOS Hurd Cygwin ];
|
||||||
|
|
||||||
Darwin = { kernel = kernels.darwin; };
|
MacOS = { kernel = kernels.macos; };
|
||||||
|
iOS = { kernel = kernels.ios; };
|
||||||
Linux = { kernel = kernels.linux; };
|
Linux = { kernel = kernels.linux; };
|
||||||
SunOS = { kernel = kernels.solaris; };
|
SunOS = { kernel = kernels.solaris; };
|
||||||
FreeBSD = { kernel = kernels.freebsd; };
|
FreeBSD = { kernel = kernels.freebsd; };
|
||||||
|
@ -134,6 +134,7 @@ rec {
|
|||||||
|
|
||||||
kernelFamilies = setTypes types.openKernelFamily {
|
kernelFamilies = setTypes types.openKernelFamily {
|
||||||
bsd = {};
|
bsd = {};
|
||||||
|
darwin = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -149,7 +150,10 @@ rec {
|
|||||||
types.kernel = enum (attrValues kernels);
|
types.kernel = enum (attrValues kernels);
|
||||||
|
|
||||||
kernels = with execFormats; with kernelFamilies; setTypes types.openKernel {
|
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; }; };
|
freebsd = { execFormat = elf; families = { inherit bsd; }; };
|
||||||
hurd = { execFormat = elf; families = { }; };
|
hurd = { execFormat = elf; families = { }; };
|
||||||
linux = { execFormat = elf; families = { }; };
|
linux = { execFormat = elf; families = { }; };
|
||||||
@ -159,9 +163,13 @@ rec {
|
|||||||
solaris = { execFormat = elf; families = { }; };
|
solaris = { execFormat = elf; families = { }; };
|
||||||
windows = { execFormat = pe; families = { }; };
|
windows = { execFormat = pe; families = { }; };
|
||||||
} // { # aliases
|
} // { # 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.
|
# TODO(@Ericson2314): Handle these Darwin version suffixes more generally.
|
||||||
darwin10 = kernels.darwin;
|
darwin10 = kernels.macos;
|
||||||
darwin14 = kernels.darwin;
|
darwin14 = kernels.macos;
|
||||||
|
watchos = kernels.ios;
|
||||||
|
tvos = kernels.ios;
|
||||||
win32 = kernels.windows;
|
win32 = kernels.windows;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -263,8 +271,8 @@ rec {
|
|||||||
mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s));
|
mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (lib.splitString "-" s));
|
||||||
|
|
||||||
doubleFromSystem = { cpu, vendor, kernel, abi, ... }:
|
doubleFromSystem = { cpu, vendor, kernel, abi, ... }:
|
||||||
if abi == abis.cygnus
|
/**/ if abi == abis.cygnus then "${cpu.name}-cygwin"
|
||||||
then "${cpu.name}-cygwin"
|
else if kernel.families ? darwin then "${cpu.name}-darwin"
|
||||||
else "${cpu.name}-${kernel.name}";
|
else "${cpu.name}-${kernel.name}";
|
||||||
|
|
||||||
tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let
|
tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let
|
||||||
|
Loading…
x
Reference in New Issue
Block a user