Skip to content

Commit 7b59657

Browse files
committed
Compilation fix
1 parent dcfb7dc commit 7b59657

2 files changed

Lines changed: 32 additions & 14 deletions

File tree

Libraries/CMakeLists.txt

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -265,19 +265,35 @@ source_group(pd-cyclone FILES ${CYCLONE_SOURCES})
265265

266266
include(ExternalProject)
267267
find_program(MAKE_EXECUTABLE NAMES gmake make REQUIRED)
268-
269268
if(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+
)
273275
elseif(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)
277293
else()
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)
281297
endif()
282298

283299
ExternalProject_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
295318
set(PDLUA_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pd-lua")
296319

@@ -304,11 +327,6 @@ target_include_directories(pdlua-multi PUBLIC ${LUA_INCLUDE_DIR})
304327
target_link_libraries(pdlua PUBLIC luajit)
305328
target_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

313331
target_compile_definitions(pdlua PRIVATE PLUGDATA=1)
314332
target_compile_definitions(pdlua-multi PRIVATE PLUGDATA=1 PDINSTANCE=1)

Libraries/pd-lua

Submodule pd-lua updated 1 file

0 commit comments

Comments
 (0)