pack:打包配置。
This commit is contained in:
parent
ceed885924
commit
676f04e752
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ cmake-*
|
|||||||
.xmake
|
.xmake
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
out
|
out
|
||||||
|
xpbuild
|
@ -4,6 +4,8 @@ project(transm VERSION 1.2.3 LANGUAGES CXX)
|
|||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
# 将 CMAKE_SYSTEM_PROCESSOR 转换为小写
|
||||||
|
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LOWER)
|
||||||
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
|
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_compile_options(/source-charset:utf-8)
|
add_compile_options(/source-charset:utf-8)
|
||||||
@ -75,6 +77,7 @@ endif()
|
|||||||
|
|
||||||
# ********************************************************** pack infomation
|
# ********************************************************** pack infomation
|
||||||
set(CPACK_PACKAGE_NAME "transm")
|
set(CPACK_PACKAGE_NAME "transm")
|
||||||
|
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||||
set(CPACK_PACKAGE_CONTACT "taynpg <taynpg@163.com>")
|
set(CPACK_PACKAGE_CONTACT "taynpg <taynpg@163.com>")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION "A simple tool that uses a server (tss) as a relay center to indirectly transfer files between two (or more) clients (tsc).")
|
set(CPACK_PACKAGE_DESCRIPTION "A simple tool that uses a server (tss) as a relay center to indirectly transfer files between two (or more) clients (tsc).")
|
||||||
set(CPACK_PACKAGE_VENDOR "taynpg")
|
set(CPACK_PACKAGE_VENDOR "taynpg")
|
||||||
@ -82,23 +85,21 @@ if(WIN32)
|
|||||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
set(CPACK_GENERATOR "NSIS64;ZIP")
|
set(CPACK_GENERATOR "NSIS64;ZIP")
|
||||||
set(ARCH_SUFFIX "win64")
|
|
||||||
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
set(CPACK_GENERATOR "NSIS;ZIP")
|
set(CPACK_GENERATOR "NSIS;ZIP")
|
||||||
set(ARCH_SUFFIX "win32")
|
|
||||||
else()
|
else()
|
||||||
message(WARNING "Unknown target architecture")
|
message(FATAL_ERROR "Unknown target architecture")
|
||||||
endif()
|
endif()
|
||||||
|
set(CPACK_NSIS_INSTALL_ROOT "$PROFILE")
|
||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "transm")
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "transm")
|
||||||
elseif(UNIX AND NOT APPLE)
|
elseif(UNIX AND NOT APPLE)
|
||||||
set(CPACK_GENERATOR "DEB;TGZ")
|
set(CPACK_GENERATOR "DEB;TGZ;RPM")
|
||||||
set(ARCH_SUFFIX "amd64")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
|
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
|
||||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "taynpg <taynpg@163.com>")
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "taynpg <taynpg@163.com>")
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(CPACK_GENERATOR "DragNDrop")
|
set(CPACK_GENERATOR "DragNDrop")
|
||||||
endif()
|
endif()
|
||||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${ARCH_SUFFIX}")
|
# 这里的打包信息,具体只在 "本机生成本机程序" 时才是正确的,如果是交叉编译器,或者使用 -m32 等改变目标架构,这里的信息是不准确的
|
||||||
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${CMAKE_SYSTEM_PROCESSOR_LOWER}")
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
12
README.md
12
README.md
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
低版本编译器,可选择`boost`+`c++11`标准组合。
|
低版本编译器,可选择`boost`+`c++11`标准组合。
|
||||||
|
|
||||||
|
**注**:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本。
|
||||||
|
|
||||||
# 一、简要介绍
|
# 一、简要介绍
|
||||||
|
|
||||||
| 主要功能序号 | 简介 |
|
| 主要功能序号 | 简介 |
|
||||||
@ -128,11 +130,15 @@ cmake:`cmake -Bbuild -DCMAKE_BUILD_TYPE=Release`、`cmake --build build --conf
|
|||||||
|
|
||||||
### 前提
|
### 前提
|
||||||
|
|
||||||
- `cmake`支持windows XP的版本过低,故使用`xmake`。
|
|
||||||
- 支持`XP`的`msvc`编译器不支持新`C++语法标准`,故使用`mingw32`编译器。
|
- 支持`XP`的`msvc`编译器不支持新`C++语法标准`,故使用`mingw32`编译器。
|
||||||
- 支持`xp`的`mingw32`编译器的`c++17`标准的`filesystem`模块还是实验性质且有编译`BUG`,故使用`boost-filesystem`。
|
- 支持`xp`的`mingw32`编译器的`c++17`标准的`filesystem`模块还是实验性质且有编译`BUG`,故使用`boost-filesystem`。
|
||||||
|
- 需要一个最低`3.16`版本的`cmake`。
|
||||||
|
|
||||||
### 编译
|
### 编译
|
||||||
|
|
||||||
- 构建选项:`xmake f -p mingw -a i386 --boost=y --xp=y`
|
请参照:`xp_build.bat`。
|
||||||
- 环境变量定义:`BOOST_HEADER_DIR`、`BOOST_LIB_DIR`、`BOOST_LIBS`。
|
|
||||||
|
|
||||||
|
# 其他
|
||||||
|
|
||||||
|
- `xp`系统下,安装后(或者添加环境变量后),如果时第一次使用请先执行`ansicon -i`以支持彩色显示,后续则不用再次执行(如果没有卸载过或变更安装位置)。
|
22
xp_build.bat
22
xp_build.bat
@ -1,24 +1,10 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
echo Setting environment variables...
|
cmake -Bxpbuild -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
|
||||||
set BOOST_HEADER_DIR=C:\boost\include\boost-1_83
|
cd xpbuild
|
||||||
set BOOST_LIB_DIR=C:\boost\lib
|
cpack
|
||||||
set BOOST_LIBS=boost_filesystem-mgw7-mt-x32-1_83
|
|
||||||
|
|
||||||
echo Configuring xmake...
|
|
||||||
xmake f -p mingw -a i386 --boost=y --xp=y
|
|
||||||
if %errorlevel% neq 0 (
|
if %errorlevel% neq 0 (
|
||||||
echo Error: xmake configuration failed.
|
echo Error: cmake build failed.
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo BOOST_HEADER_DIR=%BOOST_HEADER_DIR%
|
|
||||||
echo BOOST_LIB_DIR=%BOOST_LIB_DIR%
|
|
||||||
echo BOOST_LIBS=%BOOST_LIBS%
|
|
||||||
echo Building project with xmake...
|
|
||||||
xmake
|
|
||||||
if %errorlevel% neq 0 (
|
|
||||||
echo Error: xmake build failed.
|
|
||||||
pause
|
pause
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user