Skip to content

Commit 5a0ecbb

Browse files
committed
Fix Windows linker issue
1 parent 7b59657 commit 5a0ecbb

3 files changed

Lines changed: 43 additions & 62 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,7 @@ set(libs
395395
nanovg
396396
webpdecoder
397397
liblzma
398+
luajit
398399
)
399400

400401
if(UNIX AND NOT APPLE)

Libraries/CMakeLists.txt

Lines changed: 41 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -305,58 +305,6 @@ ExternalProject_Add(luajit_build
305305
BUILD_BYPRODUCTS ${LUAJIT_LIBS}
306306
)
307307

308-
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-
)
317-
# pdlua sources
318-
set(PDLUA_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pd-lua")
319-
320-
set(LUA_INCLUDE_DIR "${PDLUA_PATH}/luas/luajit/src")
321-
322-
add_library(pdlua STATIC ${PDLUA_PATH}/luas/lua.c ${PDLUA_PATH}/luas/luajit.c)
323-
add_library(pdlua-multi STATIC ${PDLUA_PATH}/luas/lua.c ${PDLUA_PATH}/luas/luajit.c)
324-
target_include_directories(pdlua PUBLIC ${LUA_INCLUDE_DIR})
325-
target_include_directories(pdlua-multi PUBLIC ${LUA_INCLUDE_DIR})
326-
327-
target_link_libraries(pdlua PUBLIC luajit)
328-
target_link_libraries(pdlua-multi PUBLIC luajit)
329-
330-
331-
target_compile_definitions(pdlua PRIVATE PLUGDATA=1)
332-
target_compile_definitions(pdlua-multi PRIVATE PLUGDATA=1 PDINSTANCE=1)
333-
334-
if("${CMAKE_SYSTEM}" MATCHES "Linux")
335-
target_compile_definitions(pdlua PRIVATE MAKE_LIB=1 LUA_USE_LINUX=1)
336-
target_compile_definitions(pdlua-multi PRIVATE MAKE_LIB=1 LUA_USE_LINUX=1)
337-
elseif(MSVC)
338-
target_compile_definitions(pdlua PRIVATE MAKE_LIB=1 LUA_USE_WINDOWS=1)
339-
target_compile_definitions(pdlua-multi PRIVATE MAKE_LIB=1 LUA_USE_WINDOWS=1)
340-
elseif(APPLE)
341-
if("${CMAKE_SYSTEM_NAME}" MATCHES "iOS")
342-
target_compile_definitions(pdlua PRIVATE LUA_USE_IOS=1 PRIVATE MAKE_LIB=1)
343-
target_compile_definitions(pdlua-multi PRIVATE LUA_USE_IOS=1 PRIVATE MAKE_LIB=1)
344-
else()
345-
target_compile_definitions(pdlua PRIVATE MAKE_LIB=1 LUA_USE_MACOSX=1)
346-
target_compile_definitions(pdlua-multi PRIVATE MAKE_LIB=1 LUA_USE_MACOSX=1)
347-
endif()
348-
else()
349-
target_compile_definitions(pdlua PRIVATE MAKE_LIB=1)
350-
target_compile_definitions(pdlua-multi PRIVATE MAKE_LIB=1)
351-
endif()
352-
353-
source_group(pdlua FILES ${PDLUA_SOURCES})
354-
355-
# live version data for pdlua.c
356-
# set(PDLUA_VERSION 0.11.0)
357-
#execute_process(COMMAND git -C ${CMAKE_CURRENT_SOURCE_DIR}/pd-lua describe --tags OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PDLUA_VERSION)
358-
#set_source_files_properties(${PDLUA_PATH}/pdlua.c PROPERTIES COMPILE_DEFINITIONS PDLUA_VERSION=${PDLUA_VERSION})
359-
360308
# ------------------------------------------------------------------------------#
361309
# COMPILE DEFINITIONS
362310
# ------------------------------------------------------------------------------#
@@ -507,11 +455,43 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/pd-else/Source/Shared/opus)
507455
target_compile_definitions(opus PRIVATE FLOAT_APPROX=1)
508456
unset(MESSAGE_QUIET)
509457

458+
# pdlua sources
459+
set(PDLUA_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pd-lua")
460+
set(LUA_INCLUDE_DIR "${PDLUA_PATH}/luas/luajit/src")
461+
set(PDLUA_SOURCES "${PDLUA_PATH}/luas/lua.c" "${PDLUA_PATH}/luas/luajit.c")
462+
510463
# ------------------------------------------------------------------------------#
511464
# TARGETS
512465
# ------------------------------------------------------------------------------#
513466
add_library(externals STATIC ${ELSE_SOURCES} ${CYCLONE_SOURCES} ${PDLUA_SOURCES})
514-
add_library(externals-multi STATIC ${ELSE_SOURCES} ${CYCLONE_SOURCES} ${PDLUA_SOURCES} ${})
467+
add_library(externals-multi STATIC ${ELSE_SOURCES} ${CYCLONE_SOURCES} ${PDLUA_SOURCES})
468+
469+
add_library(luajit STATIC IMPORTED GLOBAL)
470+
list(GET LUAJIT_LIBS 0 LUAJIT_MAIN_LIB)
471+
set_target_properties(luajit PROPERTIES IMPORTED_LOCATION ${LUAJIT_MAIN_LIB})
472+
add_dependencies(luajit luajit_build)
473+
target_link_libraries(luajit INTERFACE ${LUAJIT_LIBS})
474+
target_include_directories(luajit INTERFACE
475+
${CMAKE_CURRENT_SOURCE_DIR}/pd-lua/luas/luajit/src
476+
)
477+
set(LUA_COMPILE_DEFINITIONS MAKE_LIB=1)
478+
479+
if("${CMAKE_SYSTEM}" MATCHES "Linux")
480+
list(APPEND LUA_COMPILE_DEFINITIONS LUA_USE_LINUX=1)
481+
elseif(MSVC)
482+
list(APPEND LUA_COMPILE_DEFINITIONS LUA_USE_WINDOWS=1)
483+
elseif(APPLE)
484+
if("${CMAKE_SYSTEM_NAME}" MATCHES "iOS")
485+
list(APPEND LUA_COMPILE_DEFINITIONS LUA_USE_IOS=1)
486+
else()
487+
list(APPEND LUA_COMPILE_DEFINITIONS LUA_USE_MACOSX=1)
488+
endif()
489+
endif()
490+
491+
# live version data for pdlua.c
492+
# set(PDLUA_VERSION 0.11.0)
493+
#execute_process(COMMAND git -C ${CMAKE_CURRENT_SOURCE_DIR}/pd-lua describe --tags OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE PDLUA_VERSION)
494+
#set_source_files_properties(${PDLUA_PATH}/pdlua.c PROPERTIES COMPILE_DEFINITIONS PDLUA_VERSION=${PDLUA_VERSION})
515495

516496
# Hide deprecation warnings on externals, it's noise and are outside of our control
517497
if(MSVC)
@@ -540,8 +520,8 @@ target_include_directories(externals PRIVATE ${ELSE_INCLUDES})
540520
target_include_directories(externals-multi PRIVATE ${ELSE_INCLUDES})
541521

542522
# ag: pdlua needs PLUGDATA symbol at compile time for plugdata integration.
543-
target_compile_definitions(externals PRIVATE ${LIBPD_COMPILE_DEFINITIONS} PLUGDATA=1)
544-
target_compile_definitions(externals-multi PRIVATE ${LIBPD_COMPILE_DEFINITIONS} PDINSTANCE=1 PDTHREADS=1 PLUGDATA=1)
523+
target_compile_definitions(externals PRIVATE ${LIBPD_COMPILE_DEFINITIONS} ${LUA_COMPILE_DEFINITIONS} PLUGDATA=1)
524+
target_compile_definitions(externals-multi PRIVATE ${LIBPD_COMPILE_DEFINITIONS} ${LUA_COMPILE_DEFINITIONS} PDINSTANCE=1 PDTHREADS=1 PLUGDATA=1)
545525

546526
add_library(pd-src STATIC ${SOURCE_FILES})
547527
target_compile_definitions(pd-src PRIVATE ${LIBPD_COMPILE_DEFINITIONS})
@@ -598,23 +578,23 @@ if("${CMAKE_SYSTEM}" MATCHES "Linux")
598578
add_library(pd INTERFACE)
599579
add_library(pd-multi INTERFACE)
600580
find_library(MATH_LIB m)
601-
target_link_libraries(externals PUBLIC ${externals_libs} ${GEM_LIBS} pdlua)
602-
target_link_libraries(externals-multi PUBLIC ${externals_libs} ${GEM_LIBS_MULTI} pdlua-multi)
581+
target_link_libraries(externals PUBLIC ${externals_libs} ${GEM_LIBS})
582+
target_link_libraries(externals-multi PUBLIC ${externals_libs} ${GEM_LIBS_MULTI})
603583
elseif(MSVC)
604584
add_library(pd SHARED $<TARGET_OBJECTS:externals> $<TARGET_OBJECTS:pd-src>)
605585
add_library(pd-multi STATIC $<TARGET_OBJECTS:externals-multi> $<TARGET_OBJECTS:pd-src-multi>)
606586

607-
target_link_libraries(pd PUBLIC pthreadVC3 ws2_32 ${externals_libs} ${GEM_LIBS} pdlua)
608-
target_link_libraries(pd-multi PUBLIC pthreadVC3 ws2_32 ${externals_libs} ${GEM_LIBS_MULTI} pdlua-multi)
587+
target_link_libraries(pd PUBLIC pthreadVC3 ws2_32 ${externals_libs} ${GEM_LIBS} luajit)
588+
target_link_libraries(pd-multi PUBLIC pthreadVC3 ws2_32 ${externals_libs} ${GEM_LIBS_MULTI} luajit)
609589

610590
add_custom_command(TARGET pd POST_BUILD
611591
COMMAND ${CMAKE_COMMAND} -E copy_if_different
612592
"$<TARGET_FILE:pd>"
613593
${CMAKE_SOURCE_DIR}/Plugins/Standalone/pd.dll
614594
)
615595
elseif(APPLE)
616-
target_link_libraries(externals PUBLIC ${externals_libs} ${GEM_LIBS} pdlua)
617-
target_link_libraries(externals-multi PUBLIC ${externals_libs} ${GEM_LIBS_MULTI} pdlua-multi)
596+
target_link_libraries(externals PUBLIC ${externals_libs} ${GEM_LIBS})
597+
target_link_libraries(externals-multi PUBLIC ${externals_libs} ${GEM_LIBS_MULTI})
618598
endif()
619599

620600
if(MSVC)

Libraries/pd-lua

Submodule pd-lua updated 1 file

0 commit comments

Comments
 (0)