diff --git a/.gitignore b/.gitignore index 2c1c893..ed77db8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /macOS/Sources +/iOS/Sources +**/.DS_Store diff --git a/iOS/luajit-iOS.sh b/iOS/luajit-iOS.sh new file mode 100755 index 0000000..da54cf1 --- /dev/null +++ b/iOS/luajit-iOS.sh @@ -0,0 +1,59 @@ +# mkdir -p Sources/LuaJIT + +git clone https://github.com/LuaJIT/LuaJIT.git Sources/LuaJIT +cd Sources/LuaJIT +git pull --no-rebase +git checkout v2.1 + +mkdir tmpbuild + +export MACOSX_DEPLOYMENT_TARGET=10.9 + +# iOS device binaries +# LuaJIT does not support building for armv7 on modern macOS versions. + +ISDKP=$(xcrun --sdk iphoneos --show-sdk-path) +ICC=$(xcrun --sdk iphoneos --find clang) + +ISDKF="-arch arm64 -isysroot $ISDKP -mios-version-min=8.0" +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a tmpbuild/libluajit_arm64_device.a + + +# iOS simulator binaries + +ISDKP=$(xcrun --sdk iphonesimulator --show-sdk-path) +ICC=$(xcrun --sdk iphonesimulator --find clang) + +ISDKF="-arch x86_64 -isysroot $ISDKP -mios-simulator-version-min=8.0" +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a tmpbuild/libluajit_x86_64_sim.a + +ISDKF="-arch arm64 -isysroot $ISDKP -mios-simulator-version-min=8.0" +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a tmpbuild/libluajit_arm64_sim.a + +# copy includes +mkdir tmpbuild/include + +cp src/lua.hpp tmpbuild/include +cp src/lauxlib.h tmpbuild/include +cp src/lua.h tmpbuild/include +cp src/luaconf.h tmpbuild/include +cp src/lualib.h tmpbuild/include +cp src/luajit.h tmpbuild/include + +# combine lib +lipo -create -output tmpbuild/libluajit_device.a tmpbuild/libluajit_arm64_device.a +lipo -create -output tmpbuild/libluajit_sim.a tmpbuild/libluajit_x86_64_sim.a tmpbuild/libluajit_arm64_sim.a + +# create xcframework with all platforms +rm -rf tmpbuild/Lua.xcframework +xcodebuild -create-xcframework -library tmpbuild/libluajit_device.a -headers tmpbuild/include -library tmpbuild/libluajit_sim.a -headers tmpbuild/include -output tmpbuild/Lua.xcframework + +cd ../../ +rm -rf libraries/Lua.xcframework +cp -R Sources/LuaJIT/tmpbuild/Lua.xcframework libraries