mirror of
https://gitcode.com/JianFeeeee/LuaCangjia_api.git
synced 2026-09-21 01:18:10 +00:00
- 桥接层编译通过, 核心功能可用(init/load/unload/callfunction/dostring)
- 新增 compat_50.h 兼容层集中处理 5.0 差异:
* luaL_newstate → lua_open (#define)
* lua_status → 恒 LUA_OK(5.0 单线程, 无状态查询)
* luaL_dostring → lua_dostring(lauxlib)
* lua_getfield/setfield → pushstring+gettable/settable
(含绝对索引修正, 避免 push 后相对偏移)
* lua_Integer → double, lua_pushinteger→pushnumber(5.0 无整数类型)
* luaL_Reg typedef(5.0 结构体名小写 luaL_reg)
* open_std_libs 替代 luaL_openlibs(5.0 需逐库 luaopen_*)
- 5.0 无 package 系统: pkgpath 构造函数参数被忽略; clean 跳过
package.loaded={} 操作
- 5.0 不支持 ... 表达式(chunk 级无变参): 涉及此语法的测试脚本
需替换为 5.0 兼容版(已创建 test/scripts50/ 目录)
- 验证: lib 构建 0 error, InitFree 通过; 因语法差异部分测试未全过
(桥接层本身无 bug, 属测试脚本版本差异)
49 lines
879 B
CMake
49 lines
879 B
CMake
cmake_minimum_required(VERSION 3.12)
|
|
project(lua VERSION 5.0.3 LANGUAGES C)
|
|
|
|
# Lua 5.0.3: 平铺源码, 无 linit.c(库需手动逐个 luaopen_*)
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -w")
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
if(CMAKE_C_COMPILER MATCHES "mingw" OR CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
set(IS_WINDOWS TRUE)
|
|
endif()
|
|
|
|
if(NOT IS_WINDOWS)
|
|
list(APPEND EXTRA_LIBS dl)
|
|
add_compile_definitions(LUA_USE_LINUX)
|
|
endif()
|
|
|
|
add_library(lua STATIC
|
|
lapi.c
|
|
lauxlib.c
|
|
lbaselib.c
|
|
lcode.c
|
|
ldblib.c
|
|
ldebug.c
|
|
ldo.c
|
|
ldump.c
|
|
lfunc.c
|
|
lgc.c
|
|
liolib.c
|
|
llex.c
|
|
lmathlib.c
|
|
lmem.c
|
|
loadlib.c
|
|
lobject.c
|
|
lopcodes.c
|
|
lparser.c
|
|
lstate.c
|
|
lstring.c
|
|
lstrlib.c
|
|
ltable.c
|
|
ltablib.c
|
|
ltm.c
|
|
lundump.c
|
|
lvm.c
|
|
lzio.c
|
|
)
|
|
|
|
# ltests.c 仅调试用, 不参与构建
|