Add support for using system LuaJIT (#808)

* Add support for using system LuaJIT

* Test CI: Update package list

* Update toml11
This commit is contained in:
wheremyfoodat
2025-09-23 21:37:55 +03:00
committed by GitHub
parent 2ebf17fc2b
commit 9a91c0bc30
4 changed files with 88 additions and 10 deletions

View File

@@ -59,6 +59,7 @@ option(ENABLE_DISCORD_RPC "Compile with Discord RPC support (disabled by default
option(ENABLE_LUAJIT "Enable scripting with the Lua programming language" ON)
option(ENABLE_QT_GUI "Enable the Qt GUI. If not selected then the emulator uses a minimal SDL-based UI instead" OFF)
option(USE_SYSTEM_SDL2 "Use the system's SDL2 package" OFF)
option(USE_SYSTEM_LUAJIT "Use the system's LuaJIT package" OFF)
option(ENABLE_GIT_VERSIONING "Enables querying git for the emulator version" ON)
option(BUILD_HYDRA_CORE "Build a Hydra core" OFF)
option(BUILD_LIBRETRO_CORE "Build a Libretro core" OFF)
@@ -228,18 +229,32 @@ else()
endif()
if(ENABLE_LUAJIT)
add_subdirectory(third_party/LuaJIT luajit)
include_directories(third_party/LuaJIT/src ${CMAKE_BINARY_DIR}/luajit)
set_target_properties(luajit PROPERTIES EXCLUDE_FROM_ALL 1)
if (USE_SYSTEM_LUAJIT)
find_package(LuaJIT MODULE REQUIRED)
if(MSVC)
target_compile_definitions(libluajit PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_definitions(minilua PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_definitions(buildvm PRIVATE _CRT_SECURE_NO_WARNINGS)
if (LUAJIT_FOUND)
target_include_directories(AlberCore PUBLIC ${LUA_INCLUDE_DIR})
message(STATUS "Lua include dir: ${LUA_INCLUDE_DIR}")
else()
message(FATAL_ERROR "Failed to find system LuaJIT. Either disable LuaJIT, or use the bundled LuaJIT by setting USE_SYSTEM_LUAJIT to false")
endif()
target_link_libraries(AlberCore PRIVATE ${LUA_LIBRARIES})
else()
add_subdirectory(third_party/LuaJIT luajit)
target_include_directories(AlberCore PUBLIC third_party/LuaJIT/src ${CMAKE_BINARY_DIR}/luajit)
set_target_properties(luajit PROPERTIES EXCLUDE_FROM_ALL 1)
if(MSVC)
target_compile_definitions(libluajit PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_definitions(minilua PRIVATE _CRT_SECURE_NO_WARNINGS)
target_compile_definitions(buildvm PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
target_link_libraries(AlberCore PRIVATE libluajit)
endif()
target_compile_definitions(AlberCore PUBLIC "PANDA3DS_ENABLE_LUA=1")
target_link_libraries(AlberCore PRIVATE libluajit)
endif()
# Detect target architecture