接下来假设我们想要将我们的项目分发给其他人,以便他们可以使用。我们希望在各种平台上提供二进制和源代码分发。这与我们之前在 中执行的安装略有不同,在安装中我们安装从源代码构建的二进制文件。在此示例中,我们将构建支持二进制安装和包管理功能的安装包。为此,我们将使用 CPack 创建特定于平台的安装程序。具体来说,我们需要在顶级文件底部添加几行。Installing and TestingCMakeLists.txt
CMakeLists.txt
include(InstallRequiredSystemLibraries)
set(CPACK_RESOURCE_FILE_LICENSE “
C
M
A
K
E
C
U
R
R
E
N
T
S
O
U
R
C
E
D
I
R
/
L
i
c
e
n
s
e
.
t
x
t
"
)
s
e
t
(
C
P
A
C
K
P
A
C
K
A
G
E
V
E
R
S
I
O
N
M
A
J
O
R
"
{CMAKE_CURRENT_SOURCE_DIR}/License.txt") set(CPACK_PACKAGE_VERSION_MAJOR "
CMAKECURRENTSOURCEDIR/License.txt")set(CPACKPACKAGEVERSIONMAJOR"{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 module它将使用这些变量和当前系统的一些其他属性来设置安装程序。
下一步是以通常的方式构建项目,然后运行 cpack可执行文件。要构建二进制分发版,请从二进制目录运行:
cpack
要指定二进制生成器,请使用-G选项。对于多配置构建,请使用-C指定配置。例如:
cpack -G ZIP -C Debug
有关可用生成器的列表,请参阅cpack-generators(7)或致电 。cpack --helparchive generator像 ZIP 一样创建所有已安装文件 的压缩档案。
要创建完整源树的档案,您可以输入:
cpack --config CPackSourceConfig.cmake
或者,运行或右键单击目标并 从 IDE 中运行。make packagePackageBuild Project
运行二进制目录中的安装程序。然后运行已安装的可执行文件并验证其是否正常工作。