cmake_minimum_required(VERSION 3.12) project(lua VERSION 5.4.6 LANGUAGES C) set(CMAKE_SYSTEM_NAME Linux) # 基础配置 set(CMAKE_C_STANDARD 99) # 使用 C99 标准 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -Wall -Wextra") set(CMAKE_POSITION_INDEPENDENT_CODE ON) # 平台检测 if(CMAKE_SYSTEM_NAME STREQUAL "Linux") message(STATUS "Configuring for Linux/HarmonyOS") add_compile_definitions(LUA_USE_LINUX LUA_COMPAT_5_3) # 鸿蒙系统可能不支持 readline,因此不包含相关配置 # 如果鸿蒙系统有其他支持的库,可以在这里添加 # 添加动态链接支持 list(APPEND EXTRA_LIBS dl) else() # 通用 Unix 配置 message(STATUS "Configuring for generic Unix") add_compile_definitions(LUA_USE_POSIX LUA_COMPAT_5_3) list(APPEND EXTRA_LIBS dl) endif() # Lua 核心文件列表 file(GLOB LUA_CORE_SOURCES lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c ) # Lua 库文件列表 file(GLOB LUA_LIB_SOURCES lauxlib.c lbaselib.c lcorolib.c ldblib.c liolib.c lmathlib.c loadlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c linit.c ) # 特殊源文件的编译器优化 set_source_files_properties( llex.c lparser.c lcode.c PROPERTIES COMPILE_FLAGS "-Os" ) add_library(lua STATIC ${LUA_CORE_SOURCES} ${LUA_LIB_SOURCES} )