xcode: add xcodePlatform to system

This give us a little bit more control over what target we are using.
Eventually we can target other things like WatchOS or MacOS.
This commit is contained in:
Matthew Bauer 2018-06-25 22:18:23 -04:00
parent 9b0b31d981
commit 0bfffbc5e1
4 changed files with 12 additions and 8 deletions

View file

@ -46,7 +46,6 @@ rec {
# Misc boolean options
useAndroidPrebuilt = false;
useiOSPrebuilt = false;
isiPhoneSimulator = false;
} // mapAttrs (n: v: v final.parsed) inspect.predicates
// args;
in assert final.useAndroidPrebuilt -> final.isAndroid;

View file

@ -101,6 +101,7 @@ rec {
# config = "aarch64-apple-darwin14";
sdkVer = "10.2";
xcodeVer = "8.2";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
platform = {};
};
@ -110,6 +111,7 @@ rec {
# config = "arm-apple-darwin10";
sdkVer = "10.2";
xcodeVer = "8.2";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
platform = {};
};
@ -119,8 +121,8 @@ rec {
# config = "x86_64-apple-darwin14";
sdkVer = "10.2";
xcodeVer = "8.2";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
isiPhoneSimulator = true;
platform = {};
};
@ -129,8 +131,8 @@ rec {
# config = "i386-apple-darwin11";
sdkVer = "10.2";
xcodeVer = "8.2";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
isiPhoneSimulator = true;
platform = {};
};

View file

@ -25,9 +25,9 @@ rec {
sdk = rec {
name = "ios-sdk";
type = "derivation";
outPath = xcode + "/Contents/Developer/Platforms/iPhone${sdkType}.platform/Developer/SDKs/iPhone${sdkType}${version}.sdk";
outPath = xcode + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk";
sdkType = if targetPlatform.isiPhoneSimulator then "Simulator" else "OS";
platform = targetPlatform.xcodePlatform;
version = targetPlatform.sdkVer;
};
@ -48,7 +48,10 @@ rec {
mv cc-cflags.tmp $out/nix-support/cc-cflags
echo "-target ${targetPlatform.config} -arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/cc-cflags
echo "-isystem ${sdk}/usr/include -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++" >> $out/nix-support/cc-cflags
echo "${if targetPlatform.isiPhoneSimulator then "-mios-simulator-version-min" else "-miphoneos-version-min"}=${minSdkVersion}" >> $out/nix-support/cc-cflags
'' + stdenv.lib.optionalString (sdk.platform == "iPhoneSimulator") ''
echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
'' + stdenv.lib.optionalString (sdk.platform == "iPhoneOS") ''
echo "-miphoneos-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
'';
}) // {
inherit sdk;
@ -60,7 +63,7 @@ rec {
};
} ''
if ! [ -d ${sdk} ]; then
echo "You must have version ${sdk.version} of the iPhone${sdk.sdkType} sdk installed at ${sdk}" >&2
echo "You must have version ${sdk.version} of the ${sdk.platform} sdk installed at ${sdk}" >&2
exit 1
fi
ln -s ${sdk}/usr $out

View file

@ -44,7 +44,7 @@ in
insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
iosSdkPkgs = darwin.callPackage ../os-specific/darwin/ios-sdk-pkgs {
iosSdkPkgs = darwin.callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk;
targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs;
xcode = darwin.xcode;