CPack 归档生成器¶
CPack 生成器用于将文件打包到归档文件中,归档文件可以具有以下任何格式
7Z - 7zip - (
.7z
)版本 3.1 中新增。
TAR (
.tar
)版本 4.0 中新增。
TBZ2 (
.tar.bz2
)TGZ (
.tar.gz
)TXZ (
.tar.xz
)版本 3.1 中新增。
TZ (
.tar.Z
)TZST (
.tar.zst
)版本 3.16 中新增。
ZIP (
.zip
)
当从 CPackSourceConfig.cmake
(或通过 package_source
目标) 调用此生成器时,生成的归档文件将包含项目目录中的所有文件,但 CPACK_SOURCE_IGNORE_FILES
中指定的文件除外。以下是将项目的所有源文件打包的一个示例
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_IGNORE_FILES
\\.git/
build/
".*~$"
)
set(CPACK_VERBATIM_VARIABLES YES)
include(CPack)
当从 CPackConfig.cmake
(或通过 package
目标) 调用此生成器时,生成的归档文件将包含通过 CMake 的 install()
命令(以及已弃用的命令 install_files()
、 install_programs()
和 install_targets()
)安装的所有文件。
CPack 归档生成器特有的变量¶
- CPACK_ARCHIVE_FILE_NAME¶
版本 3.9 中新增。
基于组件的软件包的归档名称,不带扩展名。
扩展名会自动追加。
如果
CPACK_COMPONENTS_GROUPING
设置为ALL_COMPONENTS_IN_ONE
,这将是单个输出归档文件的名称。在版本 4.0 中更改:此变量也适用于非组件软件包。
- CPACK_ARCHIVE_<component>_FILE_NAME¶
版本 3.9 中新增。
组件归档名称,不带扩展名。
- 默认值:
<CPACK_ARCHIVE_FILE_NAME>-<component>
,空格替换为'-'
。
扩展名会自动追加。请注意,
<component>
在变量名中全部为大写。
- CPACK_ARCHIVE_FILE_EXTENSION¶
版本 3.25 中新增。
归档文件扩展名。
- 默认值:
默认值在上面的列表中给出。
- CPACK_ARCHIVE_COMPONENT_INSTALL¶
启用组件打包。
- 默认值:
OFF
如果启用 (
ON
) ,则会生成多个软件包。默认情况下,会生成一个包含所有组件文件的软件包。
CPack 归档生成器使用的变量¶
这些变量由归档生成器使用,但也适用于本质上是归档文件的 CPack 生成器。这些包括
- CPACK_ARCHIVE_THREADS¶
版本 3.18 中新增。
执行压缩时要使用的线程数。
- 默认值:
如果设置为
0
,则将使用机器上可用的核心数。请注意,并非所有压缩模式都在所有环境中都支持线程。在版本 3.21 中新增:cmake.org 上提供的官方 CMake 二进制文件现在附带支持并行压缩的
liblzma
。旧版本则没有。