Files
LuaCangjia_api/lib/lua/CMakeLists.txt
2026-03-18 16:20:46 +08:00

77 lines
1.6 KiB
CMake
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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}
)