假设我们要将工程分享给其他人使用,我们希望能在各种各样的平台上提供二进制和源代码的发行版。这和我们之前在安装与测试那一节执行的安装步骤有一些不同,那里我们是从源代码构建二进制文件。在本例中,我们将 构建一个支持二进制安装和包特性管理的安装包,如cygwin、debian、RPMs 等。因此我们可以使用CPack 生成指定平台的安装程序。具体来说,我们需要在顶层CMakeLists.txt底部添加如下代码:
# build a CPack driven installer package
include (InstallRequiredSystemLibraries)
set (CPACK_RESOURCE_FILE_LICENSE
"${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set (CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
include (CPack)
首先我们需要加入InstallRequiredSystemLibraries模块,这个模块包含当前平台的项目所需的任何运行时期的库。接下来设置CPack变量,指定项目License和版本号的存储位置。版本信息使用的是我们在前面章节设定的变量。最后我们include CPack模块,来使用这些变量和安装程序的系统的一些其他性能。
接下来按照一般的方法构建项目,然后运行CPack命令,为了构建一个二进制发行版,我们可以执行以下命令:
cpack --config CPackConfig.cmake
为了构建源代码发行版,我们可以执行以下命令:
cpack --config CPackSourceConfig.cmake