pack:打包配置。
This commit is contained in:
parent
ceed885924
commit
676f04e752
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ cmake-*
|
||||
.xmake
|
||||
compile_commands.json
|
||||
out
|
||||
xpbuild
|
@ -4,6 +4,8 @@ project(transm VERSION 1.2.3 LANGUAGES CXX)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
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})
|
||||
if(MSVC)
|
||||
add_compile_options(/source-charset:utf-8)
|
||||
@ -75,6 +77,7 @@ endif()
|
||||
|
||||
# ********************************************************** pack infomation
|
||||
set(CPACK_PACKAGE_NAME "transm")
|
||||
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||
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_VENDOR "taynpg")
|
||||
@ -82,23 +85,21 @@ if(WIN32)
|
||||
set(CPACK_NSIS_MODIFY_PATH ON)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(CPACK_GENERATOR "NSIS64;ZIP")
|
||||
set(ARCH_SUFFIX "win64")
|
||||
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
set(CPACK_GENERATOR "NSIS;ZIP")
|
||||
set(ARCH_SUFFIX "win32")
|
||||
else()
|
||||
message(WARNING "Unknown target architecture")
|
||||
message(FATAL_ERROR "Unknown target architecture")
|
||||
endif()
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROFILE")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "transm")
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
set(CPACK_GENERATOR "DEB;TGZ")
|
||||
set(ARCH_SUFFIX "amd64")
|
||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
||||
set(CPACK_GENERATOR "DEB;TGZ;RPM")
|
||||
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}.${ARCH_SUFFIX}")
|
||||
# 这里的打包信息,具体只在 "本机生成本机程序" 时才是正确的,如果是交叉编译器,或者使用 -m32 等改变目标架构,这里的信息是不准确的
|
||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${CMAKE_SYSTEM_PROCESSOR_LOWER}")
|
||||
include(CPack)
|
||||
|
12
README.md
12
README.md
@ -6,6 +6,8 @@
|
||||
|
||||
低版本编译器,可选择`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`的`mingw32`编译器的`c++17`标准的`filesystem`模块还是实验性质且有编译`BUG`,故使用`boost-filesystem`。
|
||||
- 需要一个最低`3.16`版本的`cmake`。
|
||||
|
||||
### 编译
|
||||
|
||||
- 构建选项:`xmake f -p mingw -a i386 --boost=y --xp=y`
|
||||
- 环境变量定义:`BOOST_HEADER_DIR`、`BOOST_LIB_DIR`、`BOOST_LIBS`。
|
||||
请参照:`xp_build.bat`。
|
||||
|
||||
|
||||
# 其他
|
||||
|
||||
- `xp`系统下,安装后(或者添加环境变量后),如果时第一次使用请先执行`ansicon -i`以支持彩色显示,后续则不用再次执行(如果没有卸载过或变更安装位置)。
|
22
xp_build.bat
22
xp_build.bat
@ -1,24 +1,10 @@
|
||||
@echo off
|
||||
|
||||
echo Setting environment variables...
|
||||
set BOOST_HEADER_DIR=C:\boost\include\boost-1_83
|
||||
set BOOST_LIB_DIR=C:\boost\lib
|
||||
set BOOST_LIBS=boost_filesystem-mgw7-mt-x32-1_83
|
||||
|
||||
echo Configuring xmake...
|
||||
xmake f -p mingw -a i386 --boost=y --xp=y
|
||||
cmake -Bxpbuild -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
|
||||
cd xpbuild
|
||||
cpack
|
||||
if %errorlevel% neq 0 (
|
||||
echo Error: xmake configuration 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.
|
||||
echo Error: cmake build failed.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user