comp:编译通过。
This commit is contained in:
parent
aaf3244297
commit
4ac3d4c0b4
@ -1,14 +1,14 @@
|
||||
#ifndef LIB_HEADER
|
||||
#define LIB_HEADER
|
||||
|
||||
#include <lauxlib.h>
|
||||
#include <lua.h>
|
||||
#include <lualib.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <lauxlib.h>
|
||||
#include <lua.h>
|
||||
#include <lualib.h>
|
||||
|
||||
int luaopen_mylib(lua_State* L);
|
||||
int c_multiply(lua_State* L);
|
||||
|
||||
|
@ -1,81 +1,34 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(Lua C)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(Lua VERSION 5.4.7 LANGUAGES C)
|
||||
|
||||
# 设置C标准
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
# 平台特定的设置
|
||||
if(WIN32)
|
||||
set(PLATFORM_DEFINITIONS -DLUA_BUILD_AS_DLL)
|
||||
set(PLATFORM_LIBS "")
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
|
||||
set(CMAKE_EXECUTABLE_SUFFIX ".exe")
|
||||
else()
|
||||
set(PLATFORM_DEFINITIONS -DLUA_USE_LINUX)
|
||||
set(PLATFORM_LIBS -lm -ldl -Wl,-E)
|
||||
if (MSVC)
|
||||
add_compile_options(/wd4530)
|
||||
endif()
|
||||
|
||||
# 设置源码目录
|
||||
set(SRC_DIR src)
|
||||
include_directories(src)
|
||||
file(GLOB LUA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/*.c)
|
||||
|
||||
# Lua核心源文件
|
||||
set(CORE_SOURCES
|
||||
${SRC_DIR}/lapi.c
|
||||
${SRC_DIR}/lcode.c
|
||||
${SRC_DIR}/lctype.c
|
||||
${SRC_DIR}/ldebug.c
|
||||
${SRC_DIR}/ldo.c
|
||||
${SRC_DIR}/ldump.c
|
||||
${SRC_DIR}/lfunc.c
|
||||
${SRC_DIR}/lgc.c
|
||||
${SRC_DIR}/llex.c
|
||||
${SRC_DIR}/lmem.c
|
||||
${SRC_DIR}/lobject.c
|
||||
${SRC_DIR}/lopcodes.c
|
||||
${SRC_DIR}/lparser.c
|
||||
${SRC_DIR}/lstate.c
|
||||
${SRC_DIR}/lstring.c
|
||||
${SRC_DIR}/ltable.c
|
||||
${SRC_DIR}/ltm.c
|
||||
${SRC_DIR}/lundump.c
|
||||
${SRC_DIR}/lvm.c
|
||||
${SRC_DIR}/lzio.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
|
||||
)
|
||||
|
||||
# Lua库源文件
|
||||
set(LIB_SOURCES
|
||||
${SRC_DIR}/lauxlib.c
|
||||
${SRC_DIR}/lbaselib.c
|
||||
${SRC_DIR}/lcorolib.c
|
||||
${SRC_DIR}/ldblib.c
|
||||
${SRC_DIR}/liolib.c
|
||||
${SRC_DIR}/lmathlib.c
|
||||
${SRC_DIR}/loadlib.c
|
||||
${SRC_DIR}/loslib.c
|
||||
${SRC_DIR}/lstrlib.c
|
||||
${SRC_DIR}/ltablib.c
|
||||
${SRC_DIR}/lutf8lib.c
|
||||
${SRC_DIR}/linit.c
|
||||
)
|
||||
|
||||
# Lua可执行文件源文件
|
||||
set(LUA_SOURCES ${SRC_DIR}/lua.c)
|
||||
set(LUAC_SOURCES ${SRC_DIR}/luac.c)
|
||||
|
||||
# 添加Lua库
|
||||
add_library(lua STATIC ${CORE_SOURCES} ${LIB_SOURCES})
|
||||
# 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 ${PLATFORM_DEFINITIONS})
|
||||
target_compile_definitions(lua PRIVATE LUA_COMPAT_5_3)
|
||||
|
||||
# 添加Lua可执行文件
|
||||
add_executable(lua_bin ${LUA_SOURCES})
|
||||
target_link_libraries(lua_bin lua ${PLATFORM_LIBS})
|
||||
add_executable(lua_bin src/lua.c)
|
||||
target_link_libraries(lua_bin PRIVATE lua)
|
||||
|
||||
# 添加Lua编译器可执行文件
|
||||
add_executable(luac_bin ${LUAC_SOURCES})
|
||||
target_link_libraries(luac_bin lua ${PLATFORM_LIBS})
|
||||
add_executable(luac_bin src/luac.c)
|
||||
target_link_libraries(luac_bin PRIVATE lua)
|
||||
|
||||
# 安装目标
|
||||
install(TARGETS lua lua_bin luac_bin
|
||||
|
Loading…
x
Reference in New Issue
Block a user