2021-05-04 06:08:20 +02:00
|
|
|
{ lib
|
|
|
|
, buildPackages, pkgs, targetPackages
|
|
|
|
, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, pkgsHostHost, pkgsTargetTarget
|
|
|
|
, stdenv, splicePackages, newScope
|
2021-05-11 21:20:15 +02:00
|
|
|
, preLibcCrossHeaders
|
2018-04-16 01:21:45 +02:00
|
|
|
}:
|
2017-08-30 22:44:42 +02:00
|
|
|
|
|
|
|
let
|
2021-05-04 06:08:20 +02:00
|
|
|
otherSplices = {
|
|
|
|
selfBuildBuild = pkgsBuildBuild.darwin;
|
|
|
|
selfBuildHost = pkgsBuildHost.darwin;
|
|
|
|
selfBuildTarget = pkgsBuildTarget.darwin;
|
|
|
|
selfHostHost = pkgsHostHost.darwin;
|
|
|
|
selfTargetTarget = pkgsTargetTarget.darwin or {}; # might be missing
|
|
|
|
};
|
2021-01-17 13:18:05 +01:00
|
|
|
|
2017-08-30 22:44:42 +02:00
|
|
|
in
|
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
lib.makeScopeWithSplicing splicePackages newScope otherSplices (_: {}) (spliced: spliced.apple_sdk.frameworks) (self: let
|
|
|
|
inherit (self) mkDerivation callPackage;
|
2017-08-30 22:44:42 +02:00
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
# Must use pkgs.callPackage to avoid infinite recursion.
|
2017-08-30 22:48:33 +02:00
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
# Open source packages that are built from source
|
|
|
|
appleSourcePackages = pkgs.callPackage ../os-specific/darwin/apple-source-releases { } self;
|
2021-05-04 06:08:20 +02:00
|
|
|
|
|
|
|
impure-cmds = pkgs.callPackage ../os-specific/darwin/impure-cmds { };
|
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
# macOS 10.12 SDK
|
|
|
|
apple_sdk_10_12 = pkgs.callPackage ../os-specific/darwin/apple-sdk {
|
2021-05-04 06:08:20 +02:00
|
|
|
inherit (buildPackages.darwin) print-reexports;
|
|
|
|
inherit (self) darwin-stubs;
|
2019-06-17 23:12:07 +02:00
|
|
|
};
|
2020-11-19 09:23:29 +01:00
|
|
|
|
|
|
|
# macOS 11.0 SDK
|
|
|
|
apple_sdk_11_0 = pkgs.callPackage ../os-specific/darwin/apple-sdk-11.0 { };
|
|
|
|
|
|
|
|
# Pick an SDK
|
|
|
|
apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12;
|
|
|
|
|
|
|
|
# Pick the source of libraries: either Apple's open source releases, or the
|
|
|
|
# SDK.
|
|
|
|
useAppleSDKLibs = stdenv.hostPlatform.isAarch64;
|
|
|
|
|
|
|
|
chooseLibs = {
|
|
|
|
inherit (
|
|
|
|
if useAppleSDKLibs
|
|
|
|
then apple_sdk
|
|
|
|
else appleSourcePackages
|
|
|
|
) Libsystem LibsystemCross libcharset libunwind objc4 configd IOKit;
|
|
|
|
|
|
|
|
inherit (
|
|
|
|
if useAppleSDKLibs
|
|
|
|
then apple_sdk.frameworks
|
|
|
|
else appleSourcePackages
|
|
|
|
) Security;
|
|
|
|
};
|
2021-05-04 06:08:20 +02:00
|
|
|
in
|
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
impure-cmds // appleSourcePackages // chooseLibs // {
|
2019-06-17 23:12:07 +02:00
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
inherit apple_sdk;
|
|
|
|
|
|
|
|
stdenvNoCF = stdenv.override {
|
|
|
|
extraBuildInputs = [];
|
2020-09-18 10:12:43 +02:00
|
|
|
};
|
2017-08-30 22:44:42 +02:00
|
|
|
|
2018-04-16 01:21:45 +02:00
|
|
|
binutils-unwrapped = callPackage ../os-specific/darwin/binutils {
|
|
|
|
inherit (pkgs) binutils-unwrapped;
|
2020-11-19 09:23:29 +01:00
|
|
|
inherit (pkgs.llvmPackages) llvm clang-unwrapped;
|
2018-04-16 01:21:45 +02:00
|
|
|
};
|
|
|
|
|
2017-08-26 17:43:30 +02:00
|
|
|
binutils = pkgs.wrapBintoolsWith {
|
|
|
|
libc =
|
2018-08-20 20:43:41 +02:00
|
|
|
if stdenv.targetPlatform != stdenv.hostPlatform
|
2017-08-26 17:43:30 +02:00
|
|
|
then pkgs.libcCross
|
|
|
|
else pkgs.stdenv.cc.libc;
|
2021-05-04 06:08:20 +02:00
|
|
|
bintools = self.binutils-unwrapped;
|
|
|
|
};
|
|
|
|
|
|
|
|
binutilsNoLibc = pkgs.wrapBintoolsWith {
|
2021-05-11 21:20:15 +02:00
|
|
|
libc = preLibcCrossHeaders;
|
2021-05-04 06:08:20 +02:00
|
|
|
bintools = self.binutils-unwrapped;
|
2017-09-07 12:22:33 +02:00
|
|
|
};
|
2017-08-30 22:44:42 +02:00
|
|
|
|
|
|
|
cctools = callPackage ../os-specific/darwin/cctools/port.nix {
|
|
|
|
stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
|
|
|
|
};
|
|
|
|
|
2019-06-17 23:09:06 +02:00
|
|
|
# TODO: remove alias.
|
2021-05-04 06:08:20 +02:00
|
|
|
cf-private = self.apple_sdk.frameworks.CoreFoundation;
|
2017-08-30 22:44:42 +02:00
|
|
|
|
|
|
|
DarwinTools = callPackage ../os-specific/darwin/DarwinTools { };
|
|
|
|
|
2020-09-10 12:06:20 +02:00
|
|
|
darwin-stubs = callPackage ../os-specific/darwin/darwin-stubs { };
|
|
|
|
|
2020-11-19 08:48:10 +01:00
|
|
|
print-reexports = callPackage ../os-specific/darwin/print-reexports { };
|
|
|
|
|
2020-11-19 08:45:11 +01:00
|
|
|
rewrite-tbd = callPackage ../os-specific/darwin/rewrite-tbd { };
|
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
checkReexportsHook = pkgs.makeSetupHook {
|
2020-11-19 08:48:10 +01:00
|
|
|
deps = [ pkgs.darwin.print-reexports ];
|
|
|
|
} ../os-specific/darwin/print-reexports/setup-hook.sh;
|
2020-09-18 10:10:03 +02:00
|
|
|
|
2020-11-19 08:41:41 +01:00
|
|
|
sigtool = callPackage ../os-specific/darwin/sigtool { };
|
|
|
|
|
2017-08-30 22:44:42 +02:00
|
|
|
maloader = callPackage ../os-specific/darwin/maloader {
|
|
|
|
};
|
|
|
|
|
2017-12-09 20:37:24 +01:00
|
|
|
insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
|
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
iosSdkPkgs = callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
|
2018-04-16 01:21:45 +02:00
|
|
|
buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk;
|
|
|
|
targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs;
|
|
|
|
inherit (pkgs.llvmPackages) clang-unwrapped;
|
2017-08-30 22:44:42 +02:00
|
|
|
};
|
|
|
|
|
2018-06-09 22:13:01 +02:00
|
|
|
iproute2mac = callPackage ../os-specific/darwin/iproute2mac { };
|
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
libobjc = self.objc4;
|
2018-06-09 22:13:01 +02:00
|
|
|
|
2018-02-05 17:41:35 +01:00
|
|
|
lsusb = callPackage ../os-specific/darwin/lsusb { };
|
2017-08-30 22:44:42 +02:00
|
|
|
|
|
|
|
opencflite = callPackage ../os-specific/darwin/opencflite { };
|
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
stubs = pkgs.callPackages ../os-specific/darwin/stubs { };
|
2017-08-30 22:44:42 +02:00
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
trash = callPackage ../os-specific/darwin/trash { };
|
2017-05-11 20:37:59 +02:00
|
|
|
|
2017-08-30 22:44:42 +02:00
|
|
|
usr-include = callPackage ../os-specific/darwin/usr-include { };
|
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
inherit (pkgs.callPackages ../os-specific/darwin/xcode { })
|
2019-10-16 01:14:33 +02:00
|
|
|
xcode_8_1 xcode_8_2
|
|
|
|
xcode_9_1 xcode_9_2 xcode_9_4 xcode_9_4_1
|
|
|
|
xcode_10_2 xcode_10_2_1 xcode_10_3
|
|
|
|
xcode_11
|
|
|
|
xcode;
|
2017-08-30 22:44:42 +02:00
|
|
|
|
2018-04-08 07:40:24 +02:00
|
|
|
CoreSymbolication = callPackage ../os-specific/darwin/CoreSymbolication { };
|
|
|
|
|
2020-11-19 09:23:29 +01:00
|
|
|
# TODO: make swift-corefoundation build with apple_sdk_11_0.Libsystem
|
|
|
|
CF = if useAppleSDKLibs
|
|
|
|
then apple_sdk.frameworks.CoreFoundation
|
|
|
|
else callPackage ../os-specific/darwin/swift-corelibs/corefoundation.nix { };
|
2018-10-24 12:04:05 +02:00
|
|
|
|
2018-09-09 19:36:05 +02:00
|
|
|
# As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in
|
2021-05-04 06:08:20 +02:00
|
|
|
# libdispatch-broken = callPackage ../os-specific/darwin/swift-corelibs/libdispatch.nix { };
|
2018-04-08 07:29:08 +02:00
|
|
|
|
2018-04-08 07:41:15 +02:00
|
|
|
darling = callPackage ../os-specific/darwin/darling/default.nix { };
|
|
|
|
|
2019-01-26 00:04:50 +01:00
|
|
|
libtapi = callPackage ../os-specific/darwin/libtapi {};
|
|
|
|
|
2020-07-20 17:50:41 +02:00
|
|
|
ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
|
|
|
|
|
2021-05-04 06:08:20 +02:00
|
|
|
discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll { };
|
2020-08-18 23:07:54 +02:00
|
|
|
|
2017-08-30 22:44:42 +02:00
|
|
|
})
|