65 lines
2.1 KiB
Nix
65 lines
2.1 KiB
Nix
{ stdenv, git, clang,
|
|
fetchFromGitHub, requireFile,
|
|
openssl, xz, gnutar,
|
|
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;
|
|
};
|
|
}
|