comp:编译通过。

This commit is contained in:
taynpg 2025-02-12 17:00:05 +08:00
parent aaf3244297
commit 4ac3d4c0b4
2 changed files with 21 additions and 68 deletions

View File

@ -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);

View File

@ -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