add:添加打包逻辑。

This commit is contained in:
taynpg 2025-02-22 22:54:32 +08:00
parent 7f3d91339d
commit ebb14aa7ef
6 changed files with 125 additions and 12 deletions

View File

@ -1,6 +1,6 @@
{
"files.autoSave": "onFocusChange",
"editor.fontSize": 15,
"editor.fontSize": 14,
"editor.fontFamily": "'Source Code Pro', 'Source Code Pro', 'Source Code Pro'",
"terminal.integrated.fontFamily": "Source Code Pro",
"cmake.configureOnOpen": true,

View File

@ -1,6 +1,6 @@
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_REQUIRED ON)
@ -8,13 +8,67 @@ if (MSVC)
add_compile_options(/source-charset:utf-8)
endif()
include(config/MSystem.cmake)
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
message(STATUS "System: ${CMAKE_SYSTEM_NAME}")
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
string(TOLOWER ${COMPILER_ID} COMPILER_ID)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
add_subdirectory(lua)
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
View 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
View 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}")

View File

@ -4,9 +4,19 @@ project(lua_fs LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
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()
add_library(lua_fs SHARED lib.h lib.cxx)
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()

View File

@ -39,10 +39,4 @@ target_link_libraries(lua PRIVATE mlua)
# Lua
add_executable(luac src/luac.c)
target_link_libraries(luac PRIVATE mlua)
#
install(TARGETS lua mlua luac
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
target_link_libraries(luac PRIVATE mlua)