Add new package for Apple's XCode.

This package provides the SDK and standard library needed for
cross-compiling to Mac US X. We're using xpwn here to extract the DMG.

Also, this version (XCode 5.0.2) only contains the SDKs for version 10.9
and 10.8, so we might need to add requireFile directives for older
versions as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2014-03-10 03:39:33 +01:00
parent 5e565754ab
commit 83dd414ca2
No known key found for this signature in database
GPG Key ID: D0EBD0EC8C2DC961
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,37 @@
{ stdenv, requireFile, xpwn }:
stdenv.mkDerivation rec {
name = "xcode-${version}";
version = "5.0.2";
src = requireFile {
name = "xcode_${version}.dmg";
url = meta.homepage;
sha256 = "0mrligqkfqwx8cy883pxm4w5w7a17nfh227zdspfll23r9agf32k";
};
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
unpackCmd = let
basePath = "Xcode.app/Contents/Developer/Platforms/MacOSX.platform";
sdkPath = "${basePath}/Developer/SDKs";
in ''
${xpwn}/bin/dmg extract "$curSrc" main.hfs > /dev/null
${xpwn}/bin/hfsplus main.hfs extractall "${sdkPath}" > /dev/null
'';
setSourceRoot = "sourceRoot=MacOSX10.9.sdk";
installPhase = ''
ensureDir "$out/share/sysroot"
cp -a * "$out/share/sysroot/"
ln -s "$out/usr/lib" "$out/lib"
ln -s "$out/usr/include" "$out/include"
'';
meta = {
homepage = "https://developer.apple.com/downloads/";
description = "Apple's XCode SDK";
license = stdenv.lib.licenses.unfree;
};
}

View File

@ -6546,6 +6546,8 @@ let
cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
darwin.xcode = callPackage ../os-specific/darwin/xcode { };
devicemapper = lvm2;
dmidecode = callPackage ../os-specific/linux/dmidecode { };