Skip to content

Commit 9b51819

Browse files
committed
Fix LuaJIT for iOS
1 parent 3681726 commit 9b51819

2 files changed

Lines changed: 37 additions & 15 deletions

File tree

Libraries/CMakeLists.txt

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ include_directories(pd-cyclone/)
263263
include_directories(pd-cyclone/shared/)
264264
source_group(pd-cyclone FILES ${CYCLONE_SOURCES})
265265

266+
266267
include(ExternalProject)
267268
find_program(MAKE_EXECUTABLE NAMES gmake make REQUIRED)
268269
if(WIN32)
@@ -274,21 +275,42 @@ if(WIN32)
274275
)
275276
elseif(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)
293315
else()
294316
set(LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/pd-lua/luas/luajit/)

0 commit comments

Comments
 (0)