diff --git a/lua/CMakeLists.txt b/lua/CMakeLists.txt index 97eb30f..6a15747 100644 --- a/lua/CMakeLists.txt +++ b/lua/CMakeLists.txt @@ -4,6 +4,15 @@ project(Lua VERSION 5.4.7 LANGUAGES C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) +# 平台特定的设置 +if(WIN32) + set(PLATFORM_DEFINITIONS LUA_BUILD_AS_DLL) + set(PLATFORM_LIBS "") +else() + set(PLATFORM_DEFINITIONS LUA_USE_LINUX) + set(PLATFORM_LIBS -lm -ldl -Wl,-E) +endif() + if (MSVC) add_compile_options(/wd4530) endif() @@ -20,7 +29,9 @@ list(REMOVE_ITEM LUA_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) +target_link_libraries(lua PRIVATE ${PLATFORM_LIBS}) +target_compile_definitions(lua PRIVATE LUA_COMPAT_5_3 ${PLATFORM_DEFINITIONS}) +set_target_properties(lua PROPERTIES POSITION_INDEPENDENT_CODE ON) # 添加Lua可执行文件 add_executable(mlua src/lua.c)