37 lines
1002 B
CMake
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) |