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)