mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-20 08:58:13 +00:00
77 lines
1.6 KiB
CMake
Executable File
77 lines
1.6 KiB
CMake
Executable File
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}
|
||
) |