add:添加打包逻辑。
This commit is contained in:
parent
7f3d91339d
commit
ebb14aa7ef
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"files.autoSave": "onFocusChange",
|
"files.autoSave": "onFocusChange",
|
||||||
"editor.fontSize": 15,
|
"editor.fontSize": 14,
|
||||||
"editor.fontFamily": "'Source Code Pro', 'Source Code Pro', 'Source Code Pro'",
|
"editor.fontFamily": "'Source Code Pro', 'Source Code Pro', 'Source Code Pro'",
|
||||||
"terminal.integrated.fontFamily": "Source Code Pro",
|
"terminal.integrated.fontFamily": "Source Code Pro",
|
||||||
"cmake.configureOnOpen": true,
|
"cmake.configureOnOpen": true,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
project(mlua LANGUAGES CXX)
|
project(mlua VERSION 1.0.0 LANGUAGES CXX)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
@ -8,13 +8,67 @@ if (MSVC)
|
|||||||
add_compile_options(/source-charset:utf-8)
|
add_compile_options(/source-charset:utf-8)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include(config/MSystem.cmake)
|
||||||
|
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
|
||||||
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
|
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
|
||||||
message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}")
|
message(STATUS "Compiler CXX ID: ${CMAKE_CXX_COMPILER_ID}")
|
||||||
|
|
||||||
|
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
message(STATUS "add mingw param.")
|
||||||
|
add_compile_options(-finput-charset=utf-8)
|
||||||
|
add_compile_options(-fexec-charset=gbk)
|
||||||
|
add_compile_options(-Wa,-mbig-obj)
|
||||||
|
set(COMPILER_ID "mingw")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Set output directories
|
# Set output directories
|
||||||
|
string(TOLOWER ${COMPILER_ID} COMPILER_ID)
|
||||||
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/)
|
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
|
||||||
|
|
||||||
add_subdirectory(lua)
|
add_subdirectory(lua)
|
||||||
add_subdirectory(fs)
|
add_subdirectory(fs)
|
||||||
add_subdirectory(gendef)
|
add_subdirectory(gendef)
|
||||||
|
|
||||||
|
install(TARGETS lua DESTINATION bin)
|
||||||
|
install(TARGETS luac DESTINATION bin)
|
||||||
|
install(TARGETS lua_fs RUNTIME DESTINATION bin)
|
||||||
|
|
||||||
|
if (DEFINED USE_BOOST)
|
||||||
|
install(FILES ${MINGW32_DLLS} DESTINATION bin)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ********************************************************** pack infomation
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
set(ARCH_BIT "64Bit")
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(ARCH_BIT "32Bit")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unknown target architecture")
|
||||||
|
endif()
|
||||||
|
set(CPACK_PACKAGE_NAME "mlua")
|
||||||
|
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||||
|
set(CPACK_PACKAGE_CONTACT "taynpg <taynpg@163.com>")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION "A personal lua.")
|
||||||
|
set(CPACK_PACKAGE_VENDOR "taynpg")
|
||||||
|
if(WIN32)
|
||||||
|
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
|
set(CPACK_GENERATOR "NSIS64;ZIP")
|
||||||
|
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(CPACK_GENERATOR "NSIS;ZIP")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unknown target architecture")
|
||||||
|
endif()
|
||||||
|
set(CPACK_NSIS_INSTALL_ROOT "$PROFILE")
|
||||||
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "mlua")
|
||||||
|
elseif(UNIX AND NOT APPLE)
|
||||||
|
set(CPACK_GENERATOR "DEB;TGZ")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||||
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "taynpg <taynpg@163.com>")
|
||||||
|
elseif(APPLE)
|
||||||
|
set(CPACK_GENERATOR "DragNDrop")
|
||||||
|
endif()
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${SYSTEM_ARCH}.${ARCH_BIT}")
|
||||||
|
include(CPack)
|
9
config/MBoost.cmake
Normal file
9
config/MBoost.cmake
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
set(MBOOST_INCLUDE_DIR "C:/boost/include/boost-1_83")
|
||||||
|
set(MBOOST_LIB_DIR "C:/boost/lib")
|
||||||
|
set(MBOOST_LIBS "boost_filesystem-mgw7-mt-x32-1_83")
|
||||||
|
get_filename_component(CXX_COMPILER_PATH ${CMAKE_CXX_COMPILER} DIRECTORY)
|
||||||
|
set(MINGW32_DLLS
|
||||||
|
"${CXX_COMPILER_PATH}/libgcc_s_dw2-1.dll"
|
||||||
|
"${CXX_COMPILER_PATH}/libstdc++-6.dll"
|
||||||
|
"${CXX_COMPILER_PATH}/libwinpthread-1.dll"
|
||||||
|
)
|
46
config/MSystem.cmake
Normal file
46
config/MSystem.cmake
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# 获取一些常见的本机系统(注意是本机,非交叉编译器的信息)信息
|
||||||
|
if (UNIX)
|
||||||
|
execute_process(
|
||||||
|
COMMAND uname -a
|
||||||
|
OUTPUT_VARIABLE UNAME_OUTPUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
if(UNAME_OUTPUT MATCHES "x86_64")
|
||||||
|
set(SYSTEM_ARCH "x86_64")
|
||||||
|
elseif(UNAME_OUTPUT MATCHES "aarch64")
|
||||||
|
set(SYSTEM_ARCH "aarch64")
|
||||||
|
elseif(UNAME_OUTPUT MATCHES "armv7l")
|
||||||
|
set(SYSTEM_ARCH "armv7l")
|
||||||
|
elseif(UNAME_OUTPUT MATCHES "i686")
|
||||||
|
set(SYSTEM_ARCH "i686")
|
||||||
|
elseif(UNAME_OUTPUT MATCHES "riscv64")
|
||||||
|
set(SYSTEM_ARCH "riscv64")
|
||||||
|
else()
|
||||||
|
set(SYSTEM_ARCH "unknown")
|
||||||
|
endif()
|
||||||
|
if(UNAME_OUTPUT MATCHES "alpine" OR UNAME_OUTPUT MATCHES "Alpine")
|
||||||
|
set(SYSTEM_ARCH "musl_${SYSTEM_ARCH}")
|
||||||
|
endif()
|
||||||
|
elseif (WIN32)
|
||||||
|
# 先调用 ver 命令
|
||||||
|
execute_process(COMMAND cmd /c ver
|
||||||
|
OUTPUT_VARIABLE VER_OUTPUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(VER_OUTPUT MATCHES "XP")
|
||||||
|
message(STATUS "Windows XP platform.")
|
||||||
|
set(SYSTEM_ARCH "x86")
|
||||||
|
else()
|
||||||
|
execute_process(COMMAND cmd /c wmic os get osarchitecture
|
||||||
|
OUTPUT_VARIABLE WMIC_OUTPUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(WMIC_OUTPUT MATCHES "64")
|
||||||
|
set(SYSTEM_ARCH "x86_64")
|
||||||
|
else()
|
||||||
|
set(SYSTEM_ARCH "x86")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "unknow system type.")
|
||||||
|
endif()
|
||||||
|
message(STATUS "SYSTEM_ARCH: ${SYSTEM_ARCH}")
|
@ -4,9 +4,19 @@ project(lua_fs LANGUAGES CXX)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
add_compile_options(/source-charset:utf-8)
|
add_compile_options(/source-charset:utf-8)
|
||||||
|
endif()
|
||||||
|
if(DEFINED USE_BOOST)
|
||||||
|
message(STATUS "lua fs use boost lib.")
|
||||||
|
include_directories(${MBOOST_INCLUDE_DIR})
|
||||||
|
link_directories(${MBOOST_LIB_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(lua_fs SHARED lib.h lib.cxx)
|
add_library(lua_fs SHARED lib.h lib.cxx)
|
||||||
target_link_libraries(lua_fs PRIVATE mlua)
|
target_link_libraries(lua_fs PRIVATE mlua)
|
||||||
target_compile_definitions(lua_fs PRIVATE FS_LIB_EXPORT)
|
target_compile_definitions(lua_fs PRIVATE FS_LIB_EXPORT)
|
||||||
|
set_target_properties(lua_fs PROPERTIES OUTPUT_NAME "lua_fs")
|
||||||
|
if(DEFINED USE_BOOST)
|
||||||
|
target_link_directories(lua_fs PRIVATE ${MBOOST_LIB_DIR})
|
||||||
|
target_link_libraries(lua_fs PRIVATE ${MBOOST_LIBS})
|
||||||
|
endif()
|
@ -40,9 +40,3 @@ target_link_libraries(lua PRIVATE mlua)
|
|||||||
# 添加Lua编译器可执行文件
|
# 添加Lua编译器可执行文件
|
||||||
add_executable(luac src/luac.c)
|
add_executable(luac src/luac.c)
|
||||||
target_link_libraries(luac PRIVATE mlua)
|
target_link_libraries(luac PRIVATE mlua)
|
||||||
|
|
||||||
# 安装目标
|
|
||||||
install(TARGETS lua mlua luac
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
LIBRARY DESTINATION lib
|
|
||||||
ARCHIVE DESTINATION lib)
|
|
Loading…
x
Reference in New Issue
Block a user