]> git.saurik.com Git - cycript.git/commitdiff
Add support for iOS Simulator.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Nov 2011 12:09:22 +0000 (12:09 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 23 Nov 2011 12:09:22 +0000 (12:09 +0000)
simulate.sh [new file with mode: 0755]
simulator.sh [new file with mode: 0755]

diff --git a/simulate.sh b/simulate.sh
new file mode 100755 (executable)
index 0000000..ca81215
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+export DYLD_ROOT_PATH=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
+export DYLD_FALLBACK_LIBRARY_PATH=/usr/lib
+export DYLD_FALLBACK_FRAMEWORK_PATH=/System/Library/Frameworks
+
+exec arch -i386 cycript "$@"
diff --git a/simulator.sh b/simulator.sh
new file mode 100755 (executable)
index 0000000..37ff153
--- /dev/null
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+
+set -e
+
+rm -rf sysroot.sim
+mkdir -p sysroot.sim
+
+plt=iPhoneSimulator
+dev=/Developer/Platforms/${plt}.platform/Developer
+sdk=${dev}/SDKs/${plt}5.0.sdk
+
+mkdir -p sysroot.sim/usr/include
+cp -a /usr/include/ffi sysroot.sim/usr/include
+
+mkdir -p sysroot.sim/usr/lib
+cp -a /usr/lib/libffi.dylib sysroot.sim/usr/lib
+cp -a /usr/lib/libapr-1.* sysroot.sim/usr/lib
+
+ln -s /System/Library/Frameworks/WebKit.framework/Versions/A/Headers sysroot.sim/usr/include/WebKit
+
+mkdir -p sysroot.sim/Library/Frameworks/JavaScriptCore.framework
+ln -s "${sdk}"/System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore sysroot.sim/Library/Frameworks/JavaScriptCore.framework
+ln -s /System/Library/Frameworks/JavaScriptCore.framework/Headers sysroot.sim/Library/Frameworks/JavaScriptCore.framework
+
+export CC=${dev}/usr/bin/gcc
+export CXX=${dev}/usr/bin/g++
+export OBJCXX=${dev}/usr/bin/g++
+
+flags_i386=()
+flags_i386+=(-isysroot "${sdk}")
+
+flags_i386+=(-Fsysroot.sim/Library/Frameworks)
+flags_i386+=(-Isysroot.sim/usr/include)
+flags_i386+=(-Lsysroot.sim/usr/lib)
+
+flags_i386+=(-F"${sdk}"/System/Library/PrivateFrameworks)
+flags_i386+=(-framework WebCore)
+
+flags=()
+for flag in "${flags_i386[@]}"; do
+    flags+=(-Xarch_i386 "${flag}")
+done
+
+flags+=(-fobjc-abi-version=2)
+
+cflags=${flags[*]}
+export CFLAGS=${cflags}
+export CXXFLAGS=${cflags}
+export OBJCXXFLAGS=${cflags}
+
+export OBJCXXFLAGS="${OBJCXXFLAGS} -Xarch_i386 -fobjc-legacy-dispatch"
+
+lflags=()
+for flag in "${flags[@]}"; do
+    lflags+=("-Xcompiler ${flag}")
+done
+
+lflags=${lflags[*]}
+export LTFLAGS=${lflags}
+
+./configure --prefix=/usr "$@"