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¶
启用组件打包。
- 默认值:
关闭
如果启用(
ON
),则生成多个包。默认情况下,生成一个包含所有组件文件的单个包。
CPack 归档生成器使用的变量¶
这些变量由归档生成器使用,但也适用于本质上是归档的核心的 CPack 生成器。这些包括:
- CPACK_ARCHIVE_THREADS¶
在 3.18 版本中新增。
执行压缩时使用的线程数。
- 默认值:
如果设置为
0
,将使用机器上可用的核心数。请注意,并非所有压缩模式都支持所有环境中的多线程。3.21 版本新增:
cmake.org
上提供的官方 CMake 二进制文件现在附带支持并行压缩的liblzma
。旧版本不支持。