@@ -263,6 +263,7 @@ include_directories(pd-cyclone/)
263263include_directories (pd-cyclone/shared/ )
264264source_group (pd-cyclone FILES ${CYCLONE_SOURCES} )
265265
266+
266267include (ExternalProject )
267268find_program (MAKE_EXECUTABLE NAMES gmake make REQUIRED )
268269if (WIN32 )
@@ -274,21 +275,42 @@ if(WIN32)
274275 )
275276elseif (APPLE )
276277 set (LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/)
277- set (LUAJIT_BUILD_COMMAND
278- sh -c
279- [=[
278+ if ( " ${CMAKE_SYSTEM_NAME} " MATCHES "iOS" )
279+ set (LUAJIT_BUILD_COMMAND sh -c
280+ [=[
280281 cd src &&
281- make clean MACOSX_DEPLOYMENT_TARGET=10.15 &&
282- make MACOSX_DEPLOYMENT_TARGET=10.15 BUILDMODE=static \
283- CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" TARGET_FLAGS="-arch x86_64" &&
284- cp libluajit.a libluajit-x86_64.a &&
285- make clean MACOSX_DEPLOYMENT_TARGET=11.0 &&
286- make MACOSX_DEPLOYMENT_TARGET=11.0 BUILDMODE=static \
287- CFLAGS="-arch arm64" LDFLAGS="-arch arm64" TARGET_FLAGS="-arch arm64" &&
288- cp libluajit.a libluajit-arm64.a &&
289- lipo -create libluajit-x86_64.a libluajit-arm64.a -output libluajit.a
290- ]=]
291- )
282+ make clean TARGET_SYS=iOS &&
283+ ISDKP=$(xcrun --sdk iphoneos --show-sdk-path)
284+ ICC=$(xcrun --sdk iphoneos --find clang)
285+ ISDKF="-arch arm64 -isysroot $ISDKP"
286+ # Workaround: xcode's env variables makes it compile build tools for iOS, so we need to clear the environment and pass CC manually
287+ env -i PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" \
288+ HOME="$HOME" \
289+ USER="$USER" \
290+ DEVELOPER_DIR="$(xcode-select -p)" \
291+ make CC="clang" \
292+ TARGET_SYS=iOS \
293+ TARGET_FLAGS="$ISDKF" \
294+ CROSS="$(dirname $ICC)/"
295+ ]=]
296+ )
297+ else ()
298+ set (LUAJIT_BUILD_COMMAND
299+ sh -c
300+ [=[
301+ cd src &&
302+ make clean MACOSX_DEPLOYMENT_TARGET=10.15 &&
303+ make MACOSX_DEPLOYMENT_TARGET=10.15 BUILDMODE=static \
304+ CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" TARGET_FLAGS="-arch x86_64" &&
305+ cp libluajit.a libluajit-x86_64.a &&
306+ make clean MACOSX_DEPLOYMENT_TARGET=11.0 &&
307+ make MACOSX_DEPLOYMENT_TARGET=11.0 BUILDMODE=static \
308+ CFLAGS="-arch arm64" LDFLAGS="-arch arm64" TARGET_FLAGS="-arch arm64" &&
309+ cp libluajit.a libluajit-arm64.a &&
310+ lipo -create libluajit-x86_64.a libluajit-arm64.a -output libluajit.a
311+ ]=]
312+ )
313+ endif ()
292314 set (LUAJIT_LIBS ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/libluajit.a)
293315else ()
294316 set (LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/)
0 commit comments