nixpkgs-suyu/pkgs/development/compilers/ios-cross-compile/9.2.nix
2016-03-31 07:20:21 +03:00

65 lines
2.1 KiB
Nix

{ stdenv, git, clang,
fetchFromGitHub, requireFile,
openssl, xz, gnutar, gcc,
automake, autoconf, libtool, clangStdenv } :
clangStdenv.mkDerivation rec {
name = "ios-cross-compile-${version}";
version = "9.2";
sdk = "iPhoneOS9.2.sdk";
cctools_port = fetchFromGitHub {
owner = "tpoechtrager";
repo = "cctools-port";
rev = "7d405492b09fa27546caaa989b8493829365deab";
sha256 = "0nj1q5bqdx5jm68dispybxc7wnkb6p8p2igpnap9q6qyv2r9p07w";
};
ldid = fetchFromGitHub {
owner = "tpoechtrager";
repo = "ldid";
rev = "3064ed628108da4b9a52cfbe5d4c1a5817811400";
sha256 = "1a6zaz8fgbi239l5zqx9xi3hsrv3jmfh8dkiy5gmnjs6v4gcf6sf";
};
src = requireFile rec {
name = "iPhoneOS9.2.sdk.tar.xz";
sha256 = "1l2h3cic9psrq3nmfv9aaxkdk8y2pvr0iq6apj87mb3ms9a4cqrq";
message = ''
You need to do the following steps to get a prepared
ios tarball.
1) Download an XCode dmg, specifically XCode_7.2.dmg
2) Install darling-dmg, available via: nix-env -i darling-dmg
3) Follow this shell history:
$ cd ~/
$ mkdir xcode
$ darling-dmg Xcode_7.2dmg xcode
$ cd xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
$ mktemp -d
/tmp/gar/tmp.4ZZ8kqyfqp/
$ mkdir /tmp/gar/tmp.4ZZ8kqyfqp/iPhoneOS9.2.sdk
$ cp -r iPhoneOS.sdk/* /tmp/gar/tmp.4ZZ8kqyfqp/iPhoneOS9.2.sdk
$ cp -r ../../../../Toolchains/XcodeDefault.xctoolchain/usr/include/c++/* \
/tmp/gar/tmp.4ZZ8kqyfqp/iPhoneOS9.2.sdk/usr/include/c++
$ tar -cf - * | xz -9 -c - > iPhoneOS9.2.sdk.tar.xz
$ cd ~/
$ fusermount -u xcode
Then do:
nix-prefetch-url file:///path/to/${name}
and run this installation again.
'';
};
buildInputs = [ git xz gnutar openssl automake autoconf libtool clang ];
alt_wrapper = ./alt_wrapper.c;
builder = ./9.2_builder.sh;
meta = {
description =
"Provides an iOS cross compiler from 7.1 up to iOS-${version} and ldid";
platforms = stdenv.lib.platforms.linux;
hydraPlatforms = [];
maintainers = with stdenv.lib.maintainers; [ fxfactorial ];
license = stdenv.lib.licenses.gpl2;
};
}