第 9 步:打包安装程序¶
接下来假设我们想要将我们的项目分发给其他人,以便他们可以使用它。我们希望在各种平台上提供二进制和源代码分发。这与我们之前在 Installing and Testing 中进行的安装略有不同,我们在其中安装从源代码构建的二进制文件。在此示例中,我们将构建支持二进制安装和包管理功能的安装包。为此,我们将使用 CPack 创建特定于平台的安装程序。具体来说,我们需要在顶级“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_SOURCE_GENERATOR "TGZ")
include(CPack)
这就是它的全部。我们首先包括:module:InstallRequiredSystemLibraries。该模块将包含当前平台项目所需的任何运行时库。接下来,我们将一些 CPack 变量设置为我们存储该项目的许可证和版本信息的位置。版本信息已在本教程前面部分设置,并且 License.txt 已包含在该步骤的顶级源目录中。 CPACK_SOURCE_GENERATOR 变量选择源包的文件格式。
最后,我们包括 CPack 模块,它将使用这些变量和当前系统的一些其他属性来设置安装程序。
下一步是以通常的方式构建项目,然后运行 cpack 可执行文件。要构建二进制分发版,请从二进制目录运行:
cpack
要指定生成器,请使用 -G 选项。对于多配置构建,使用:option:-C <cpack -C> 指定配置。例如:
cpack -G ZIP -C Debug
有关可用生成器的列表,请参阅 cpack-generators(7) 或调用:option:cpack --help。像 ZIP 这样的 archive generator 创建所有 installed 文件的压缩存档。
要创建*完整*源代码树的存档,您可以键入:
cpack --config CPackSourceConfig.cmake
或者,从集成开发环境运行“make package”或右键单击“Package”目标和“Build Project”。
运行在二进制目录中找到的安装程序。然后运行安装的可执行文件并验证它是否有效。