From 66fe816acc084d2126f37e186b1708a5f71ae07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Pi=C5=82asiewicz?= Date: Wed, 20 May 2026 09:20:43 +0200 Subject: [PATCH 1/2] Turn Luau into a shared library, make sure all of the libraries are moved correctly --- CMakeLists.txt | 55 +++++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f41960a8..be9c19e77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ endif() # Lua if(LOVR_USE_LUAU) set(LOVR_ENABLE_UTF8 OFF) + set(LUAU_BUILD_SHARED ON) set(LUAU_BUILD_TESTS OFF CACHE BOOL "") set(LUAU_BUILD_CLI OFF CACHE BOOL "") set(LUAU_EXTERN_C ON CACHE BOOL "") @@ -125,7 +126,7 @@ if(LOVR_USE_LUAU) Luau.Require PROPERTIES EXCLUDE_FROM_ALL 1 ) - set(LOVR_LUA Luau.VM Luau.Compiler Luau.Ast) + set(LOVR_LUA Luau.VM Luau.Compiler Luau.Ast Luau.Common) set_target_properties(${LOVR_LUA} PROPERTIES POSITION_INDEPENDENT_CODE 1) elseif(LOVR_USE_LUAJIT AND NOT EMSCRIPTEN) if(LOVR_SYSTEM_LUA) @@ -684,17 +685,19 @@ if(WIN32) target_compile_definitions(lovr PRIVATE _CRT_NONSTDC_NO_WARNINGS) function(move_dll) - if(TARGET ${ARGV0}) - add_custom_command(TARGET move_files POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - $ - $/$ - ) - endif() + foreach(LIB IN ITEMS ${ARGV0}) + if(TARGET ${ARGV0}) + add_custom_command(TARGET move_files POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $/$ + ) + endif() + endforeach() endfunction() move_dll(${LOVR_GLFW}) - move_dll(${LOVR_LUA}) + move_dll("${LOVR_LUA}") # Luau version multiple ddls move_dll(${LOVR_MSDF}) move_dll(${LOVR_JOLT}) move_dll(${LOVR_GLSLANG}) @@ -729,25 +732,27 @@ elseif(APPLE) set_target_properties(lovr PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") endif() function(move_lib) - if(TARGET ${ARGV0}) - get_target_property(TARGET_TYPE ${ARGV0} TYPE) - if(${TARGET_TYPE} STREQUAL "SHARED_LIBRARY") - add_custom_command(TARGET move_files POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - $ - ${EXE_DIR}/$ - ) - else() - add_custom_command(TARGET move_files POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - $ - ${EXE_DIR}/$ - ) + foreach(LIB IN ITEMS ${ARGV0}) + if(TARGET ${LIB}) + get_target_property(TARGET_TYPE ${LIB} TYPE) + if(${TARGET_TYPE} STREQUAL "SHARED_LIBRARY") + add_custom_command(TARGET move_files POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + ${EXE_DIR}/$ + ) + else() + add_custom_command(TARGET move_files POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + ${EXE_DIR}/$ + ) + endif() endif() - endif() + endforeach() endfunction() move_lib(${LOVR_GLFW}) - move_lib(${LOVR_LUA}) + move_lib("${LOVR_LUA}") # Luau version contains multiple libraries move_lib(${LOVR_MSDF}) move_lib(${LOVR_JOLT}) move_lib(${LOVR_GLSLANG}) From 032c4516a84b6ef2b7f89b07ff908a0bfbe02ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Pi=C5=82asiewicz?= Date: Wed, 20 May 2026 09:46:46 +0200 Subject: [PATCH 2/2] whoops --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index be9c19e77..a54dd573d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -686,7 +686,7 @@ if(WIN32) function(move_dll) foreach(LIB IN ITEMS ${ARGV0}) - if(TARGET ${ARGV0}) + if(TARGET ${LIB}) add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $