@@ -265,19 +265,35 @@ source_group(pd-cyclone FILES ${CYCLONE_SOURCES})
265265
266266include (ExternalProject )
267267find_program (MAKE_EXECUTABLE NAMES gmake make REQUIRED )
268-
269268if (WIN32 )
270- set (LUAJIT_LIB_NAME luajit.lib)
271269 set (LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src)
272- set (LUAJIT_BUILD_COMMAND cmd /c msvcbuild.bat static)
270+ set (LUAJIT_BUILD_COMMAND cmd /c "set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline /MT && msvcbuild.bat static" )
271+ set (LUAJIT_LIBS
272+ ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/lua51.lib
273+ ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/luajit.lib
274+ )
273275elseif (APPLE )
274- set (LUAJIT_LIB_NAME libluajit.a)
275276 set (LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/)
276- set (LUAJIT_BUILD_COMMAND ${MAKE_EXECUTABLE} -C src MACOSX_DEPLOYMENT_TARGET=10.11 BUILDMODE=static)
277+ set (LUAJIT_BUILD_COMMAND
278+ sh -c
279+ [=[
280+ 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+ )
292+ set (LUAJIT_LIBS ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/libluajit.a)
277293else ()
278- set (LUAJIT_LIB_NAME libluajit.a)
279294 set (LUAJIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/)
280295 set (LUAJIT_BUILD_COMMAND ${MAKE_EXECUTABLE} -C src CFLAGS=-fPIC BUILDMODE=static)
296+ set (LUAJIT_LIBS ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/libluajit.a)
281297endif ()
282298
283299ExternalProject_Add (luajit_build
@@ -286,11 +302,18 @@ ExternalProject_Add(luajit_build
286302 CONFIGURE_COMMAND ""
287303 BUILD_COMMAND ${LUAJIT_BUILD_COMMAND}
288304 INSTALL_COMMAND ""
289- BUILD_BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/ ${LUAJIT_LIB_NAME }
305+ BUILD_BYPRODUCTS ${LUAJIT_LIBS }
290306)
291307
292- add_library (luajit STATIC IMPORTED GLOBAL )
293308
309+ add_library (luajit STATIC IMPORTED GLOBAL )
310+ list (GET LUAJIT_LIBS 0 LUAJIT_MAIN_LIB)
311+ set_target_properties (luajit PROPERTIES IMPORTED_LOCATION ${LUAJIT_MAIN_LIB} )
312+ add_dependencies (luajit luajit_build )
313+ target_link_libraries (luajit INTERFACE ${LUAJIT_LIBS} )
314+ target_include_directories (luajit INTERFACE
315+ ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src
316+ )
294317# pdlua sources
295318set (PDLUA_PATH "${CMAKE_CURRENT_SOURCE_DIR} /pd-lua" )
296319
@@ -304,11 +327,6 @@ target_include_directories(pdlua-multi PUBLIC ${LUA_INCLUDE_DIR})
304327target_link_libraries (pdlua PUBLIC luajit )
305328target_link_libraries (pdlua-multi PUBLIC luajit )
306329
307- add_dependencies (luajit luajit_build )
308- set_target_properties (luajit PROPERTIES
309- IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src/${LUAJIT_LIB_NAME}
310- INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} /pd-lua/luas/luajit/src
311- )
312330
313331target_compile_definitions (pdlua PRIVATE PLUGDATA=1 )
314332target_compile_definitions (pdlua-multi PRIVATE PLUGDATA=1 PDINSTANCE=1 )
0 commit comments