使用CPack生成安装包¶
CPack是CMake提供的一个工具, 专门用于打包, 可以生成各种平台上的安装包, 包括二进制安装包和源码安装包.
如何使用¶
在项目顶层的CMakeLists.txt文件尾部添加如下:
include(InstallRequiredSystemLibraries) # 设置一些CPack相关变量 ... include(CPack)
上面的代码做了以下工作:
- 导入
InstallRequiredSystemLibraries模块, 以便之后导入CPack模块;- 设置
CPack相关变量;- 导入
CPack模块.
执行打包操作有两种方式:
在构建目录中执行
cpack指令:
- 生成二进制安装包:
cpack -C CPackConfig.cmake- 生成源码安装包:
cpack -C CPackSourceConfig.cmake在构建目录中执行
make package(推荐的方式).
基本设置¶
通过设置预定义的变量设置CPack打包时的参数.
设置包类型 -
set(CPACK_GENERATOR "DEB")指定生成
deb安装包, 也可以指定生成其它类型的安装包.设置软件包的full version -
set(CPACK_PACKAGE_VERSION "1.0.0")cpack还提供了CPACK_PACKAGE_VERISON_MAJOR,CPACK_PACKAGE_VERSION_MINOR,CPACK_PACKAGE_VERSION_PATCH.设置软件包名称 -
set(CPACK_PACKAGE_NAME "xxx")If not specified, it defaults to the project name.
设置程序安装后的名称 -
set(CPACK_DEBIAN_PACKAGE_NAME "xxx")设置package支持的CPU架构 -
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")设置priority -
set(CPACK_DEBIAN_PACKAGE_PRIORITY "Optional")设置section -
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")设置软件包安装位置 -
set(CPACK_SET_DESTDIR true)Boolean toggle to make CPack use
DESTDIRmechanism when packaging.If without
CPACK_SET_DESTDIR, CPack usesCPACK_PACKAGING_INSTALL_PREFIXas a prefix whereas withCPACK_SET_DESTDIRset, CPack will useCMAKE_INSTALL_PREFIXas a prefix.设置维护者信息 -
set(CPACK_DEBIAN_PACKAGE_MAINTATINER "xxx")设置联系方式 -
set(CPACK_PACKAGE_CONTACT "xxx")设置描述信息:
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "xxx")set(CPACK_PACKAGE_DESCRIPTION "xxx")设置依赖关系 -
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>=2.3.1-6), libc6 (<2.4)")