lua/lua/CMakeLists.txt
2025-02-12 17:00:05 +08:00

37 lines
1002 B
CMake

cmake_minimum_required(VERSION 3.16)
project(Lua VERSION 5.4.7 LANGUAGES C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
if (MSVC)
add_compile_options(/wd4530)
endif()
include_directories(src)
file(GLOB LUA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/*.c)
# Exclude lua.c and luac.c from the library sources
list(REMOVE_ITEM LUA_SOURCES
${CMAKE_CURRENT_LIST_DIR}/src/lua.c
${CMAKE_CURRENT_LIST_DIR}/src/luac.c
)
# Build the static library
add_library(lua STATIC ${LUA_SOURCES})
target_include_directories(lua PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
target_compile_definitions(lua PRIVATE LUA_COMPAT_5_3)
# 添加Lua可执行文件
add_executable(lua_bin src/lua.c)
target_link_libraries(lua_bin PRIVATE lua)
# 添加Lua编译器可执行文件
add_executable(luac_bin src/luac.c)
target_link_libraries(luac_bin PRIVATE lua)
# 安装目标
install(TARGETS lua lua_bin luac_bin
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)