about summary refs log tree commit diff
path: root/pkgs/development/tools/xcbuild/sdks.nix
blob: bf16bf132d774c69091efef5b5dddd4b0b5c91bf (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
{ runCommand, lib, toolchainName, sdkName
, writeText, xcodePlatform, sdkVer, productBuildVer }:

let
  inherit (lib.generators) toPlist toJSON;

  SDKSettings = {
    CanonicalName = sdkName;
    DisplayName = sdkName;
    Toolchains = [ toolchainName ];
    Version = sdkVer;
    MaximumDeploymentTarget = sdkVer;
    isBaseSDK = "YES";
  };

  SystemVersion = lib.optionalAttrs (productBuildVer != null) {
    ProductBuildVersion = productBuildVer;
  } // {
    ProductName = "Mac OS X";
    ProductVersion = sdkVer;
  };
in

runCommand "SDKs" {} ''
  sdk=$out/${sdkName}.sdk
  install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist
  install -D ${writeText "SDKSettings.json" (toJSON {} SDKSettings)} $sdk/SDKSettings.json
  install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist
  ln -s $sdk $sdk/usr

  ln -s $sdk $out/${xcodePlatform}.sdk
''