xcbuild: include version in sdk

Without this xcbuild can detect an incorrect version for store paths
that have a sequence of digits in their hash.

ld: malformed 32-bit x.y.z version number: 85294

/nix/store/yz966rdvw1blblvzs15pxpcd85294isw-MacOSX.platform/Developer/SDKs/MacOSX.sdk
This commit is contained in:
Daiderd Jordan 2018-01-20 20:42:29 +01:00
parent 394e989376
commit 6fba728a6d
No known key found for this signature in database
GPG Key ID: D02435D05B810C96
1 changed files with 9 additions and 5 deletions

View File

@ -1,26 +1,30 @@
{ stdenv, writeText, toolchainName, sdkName, xcbuild }:
let
# TODO: expose MACOSX_DEPLOYMENT_TARGET in nix so we can use it here.
version = "10.10";
SDKSettings = {
CanonicalName = sdkName;
DisplayName = sdkName;
Toolchains = [ toolchainName ];
Version = "10.10";
MaximumDeploymentTarget = "10.10";
Version = version;
MaximumDeploymentTarget = version;
isBaseSDK = "YES";
};
SystemVersion = {
ProductName = "Mac OS X";
ProductVersion = "10.10";
ProductVersion = version;
};
in
stdenv.mkDerivation {
name = "MacOSX.sdk";
name = "MacOSX${version}.sdk";
inherit version;
buildInputs = [ xcbuild ];
buildCommand = ''
mkdir -p $out/
plutil -convert xml1 -o $out/SDKSettings.plist ${writeText "SDKSettings.json" (builtins.toJSON SDKSettings)}