about summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/apple-sdk-12.3/frameworks/fixups.nix
blob: f8b08c1e7222d054f4b001efacdcf9dbc6012c88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
{
  lib,
  # macOS things
  frameworks,
  libnetwork,
  libs,
  darwin-stubs,
  objc4,
}:

{
  # Used to add dependencies which are not picked up by gen-frameworks.py.
  # Some of these are simply private frameworks the generator does not see.
  # Trial and error, building things and adding dependencies when they fail.
  addToFrameworks =
    let
      inherit (libs) libDER;
      libobjc = objc4;
    in
    with frameworks;
    {
      # Below this comment are entries migrated from before the generator was
      # added. If, for a given framework, you are able to reverify the extra
      # deps are really necessary on top of the generator deps, move it above
      # this comment (and maybe document your findings).
      AVFoundation = {
        inherit ApplicationServices AVFCapture AVFCore;
      };
      Accelerate = {
        inherit CoreWLAN IOBluetooth;
      };
      AddressBook = {
        inherit AddressBookCore ContactsPersistence libobjc;
      };
      AppKit = {
        inherit AudioToolbox AudioUnit UIFoundation;
      };
      AudioToolbox = {
        inherit AudioToolboxCore;
      };
      AudioUnit = {
        inherit Carbon CoreAudio;
      };
      Carbon = {
        inherit IOKit QuartzCore libobjc;
      };
      CoreAudio = {
        inherit IOKit;
      };
      CoreFoundation = {
        inherit libobjc;
      };
      CoreGraphics = {
        inherit SystemConfiguration;
      };
      CoreMIDIServer = {
        inherit CoreMIDI;
      };
      CoreMedia = {
        inherit ApplicationServices AudioToolbox AudioUnit;
      };
      CoreServices = {
        inherit CoreAudio NetFS ServiceManagement;
      };
      CoreWLAN = {
        inherit SecurityFoundation;
      };
      DiscRecording = {
        inherit IOKit libobjc;
      };
      Foundation = {
        inherit SystemConfiguration libobjc;
      };
      GameKit = {
        inherit
          GameCenterFoundation
          GameCenterUI
          GameCenterUICore
          ReplayKit
          ;
      };
      ICADevices = {
        inherit Carbon libobjc;
      };
      IOBluetooth = {
        inherit CoreBluetooth;
      };
      JavaScriptCore = {
        inherit libobjc;
      };
      Kernel = {
        inherit IOKit;
      };
      LinkPresentation = {
        inherit URLFormatting;
      };
      MediaToolbox = {
        inherit AudioUnit;
      };
      MetricKit = {
        inherit SignpostMetrics;
      };
      Network = {
        inherit libnetwork;
      };
      PCSC = {
        inherit CoreData;
      };
      PassKit = {
        inherit PassKitCore;
      };
      QTKit = {
        inherit
          CoreMedia
          CoreMediaIO
          MediaToolbox
          VideoToolbox
          ;
      };
      Quartz = {
        inherit QTKit;
      };
      QuartzCore = {
        inherit
          ApplicationServices
          CoreImage
          CoreVideo
          Metal
          OpenCL
          libobjc
          ;
      };
      Security = {
        inherit IOKit libDER;
      };
      TWAIN = {
        inherit Carbon;
      };
      VideoDecodeAcceleration = {
        inherit CoreVideo;
      };
      WebKit = {
        inherit ApplicationServices Carbon libobjc;
      };
    };

  # Used to remove dependencies which are picked up by gen-frameworks.py -- used mainly to break
  # cyclic dependencies.
  removeFromFrameworks = { };

  # Overrides for framework derivations.
  overrideFrameworks = super: {
    # This framework doesn't exist in newer SDKs (somewhere around 10.13), but
    # there are references to it in nixpkgs.
    QuickTime = throw "QuickTime framework not available";

    # Seems to be appropriate given https://developer.apple.com/forums/thread/666686
    JavaVM = super.JavaNativeFoundation;
  };
}