接下来假设我们想要将我们的项目分发给其他人,以便他们可以使用它。我们希望在各种平台上提供二进制和源代码发行版。这与我们之前在安装和测试中所做的安装略有不同,在安装中我们安装了从源代码构建的二进制文件。在本例中,我们将构建支持二进制安装和包管理特性的安装包。为此,我们将使用CPack来创建特定于平台的安装程序。具体来说,我们需要在顶级CMakeLists.txt文件的底部添加几行。
// CMakeLists.txt
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}")
set(CPACK_GENERATOR "TGZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
include(CPack)
InstallRequiredSystemLibraries模块将包含当前平台上项目所需的任何运行时需要的库。接下来,我们将一些CPack变量设置到存储此项目的许可证和版本信息的位置。本教程前面设置了版本信息,并且License.txt已包含在此步骤的顶级源代码目录中。CPACK_GENERATOR和CPACK_SOURCE_GENERATOR变量分别选择用于二进制和源代码安装的生成器。
最后,我们将包括CPack模块,它将使用这些变量和当前系统的一些其他属性来设置安装程序。
下一步是以编译并运行cpack可执行文件。要构建一个二进制发行版,从二进制目录运行:
cpack
要指定二进制生成器,请使用-G选项。对于多配置构建,使用-C来指定配置。例如:
cpack -G ZIP -C Debug
要创建完整源代码结构的备份,您可以输入:
cpack --config CPackSourceConfig.cmake
或者,运行make package构建项目。
运行二进制目录中的安装程序。然后运行已安装的可执行文件并验证它是否有效。