diff options
author | Daiderd Jordan <daiderd@gmail.com> | 2019-06-17 23:09:06 +0200 |
---|---|---|
committer | Daiderd Jordan <daiderd@gmail.com> | 2019-07-03 22:20:09 +0200 |
commit | 73d9cac3776b705c8d265b0c9c2ddaf18bc48b46 (patch) | |
tree | 850bd227105a79c8d7d49c5981c4d0286ac622e5 /pkgs/os-specific/darwin/apple-sdk | |
parent | c2b76fa13cf7cacc16f1040f43d379402b518149 (diff) | |
download | nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar.gz nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar.bz2 nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar.lz nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar.xz nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.tar.zst nixpkgs-73d9cac3776b705c8d265b0c9c2ddaf18bc48b46.zip |
darwin-frameworks: replace cf-private and move it's setup-hook
The only remaining use-case for cf-private are symbols that are not available in the opensource build. This generally solved the problem because of it's setup-hook.
Diffstat (limited to 'pkgs/os-specific/darwin/apple-sdk')
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh | 9 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/frameworks.nix | 6 |
3 files changed, 17 insertions, 4 deletions
diff --git a/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh b/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh new file mode 100644 index 00000000000..66e24fe5877 --- /dev/null +++ b/pkgs/os-specific/darwin/apple-sdk/cf-setup-hook.sh @@ -0,0 +1,9 @@ +linkSystemCoreFoundationFramework() { + NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks $NIX_CFLAGS_COMPILE" + # gross! many symbols (such as _OBJC_CLASS_$_NSArray) are defined in system CF, but not + # in the opensource release + # if the package needs private headers, we assume they also want to link with system CF + NIX_LDFLAGS+=" /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation" +} + +preConfigureHooks+=(linkSystemCoreFoundationFramework) diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix index 908116e0c62..4d33fc0f3f8 100644 --- a/pkgs/os-specific/darwin/apple-sdk/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -187,6 +187,10 @@ in rec { ]; }); + CoreFoundation = stdenv.lib.overrideDerivation super.CoreFoundation (drv: { + setupHook = ./cf-setup-hook.sh; + }); + CoreMedia = stdenv.lib.overrideDerivation super.CoreMedia (drv: { __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [ "/System/Library/Frameworks/CoreImage.framework" @@ -222,7 +226,7 @@ in rec { bareFrameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix { inherit frameworks libs; - inherit (pkgs.darwin) cf-private libobjc; + inherit (pkgs.darwin) libobjc; }); frameworks = bareFrameworks // overrides bareFrameworks; diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix index 4ed85f903d6..28570714b60 100644 --- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix +++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix @@ -2,7 +2,7 @@ # Epic weird knot-tying happening here. # TODO: clean up the process for generating this and include it -{ frameworks, libs, libobjc, cf-private }: +{ frameworks, libs, libobjc, }: with frameworks; with libs; { AGL = [ Carbon OpenGL ]; @@ -47,8 +47,8 @@ with frameworks; with libs; { ExceptionHandling = []; FWAUserLib = []; ForceFeedback = [ IOKit ]; - Foundation = [ cf-private libobjc Security ApplicationServices SystemConfiguration ]; - GLKit = [ ]; + Foundation = [ libobjc CoreFoundation Security ApplicationServices SystemConfiguration ]; + GLKit = []; GLUT = [ OpenGL ]; GSS = []; GameController = []; |