CPack 归档生成器

CPack 生成器用于将文件打包成归档文件,支持以下格式:

  • 7Z - 7zip - (.7z)

  • TBZ2 (.tar.bz2)

  • TGZ (.tar.gz)

  • TXZ (.tar.xz)

  • TZ (.tar.Z)

  • TZST (.tar.zst)

  • ZIP (.zip)

3.1 版本新增: 支持 7Z 和 TXZ 格式。

3.16 版本新增: 支持 TZST 格式。

当此生成器从 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
CPACK_ARCHIVE_<component>_FILE_NAME

包文件名,不含扩展名。

默认值:

默认为 <CPACK_PACKAGE_FILE_NAME>[-<component>],其中空格替换为'-'.

扩展名由归档格式决定(见上面的列表),并自动追加到文件名。注意 <component> 在变量名中全部大写。

3.9 版本新增: 每个组件的 CPACK_ARCHIVE_<component>_FILE_NAME 变量。

CPACK_ARCHIVE_FILE_EXTENSION

3.25 版本新增。

包文件扩展名。

默认值:

默认值在上面的列表中给出。

CPACK_ARCHIVE_COMPONENT_INSTALL

启用组件打包。

默认值:

OFF

如果启用(ON),则生成多个包。默认情况下,生成一个包含所有组件文件的单一包。

CPack 归档生成器使用的变量

这些变量由归档生成器使用,但也可用于本质上是归档的 CPack 生成器。这些包括

CPACK_ARCHIVE_THREADS

执行压缩时使用的线程数。

3.18 版本新增。

默认值:

CPACK_THREADS 的值。

如果设置为 0,则将使用机器上的可用核心数。注意,并非所有压缩模式在所有环境中都支持多线程。

3.21 版本新增: cmake.org 上提供的官方 CMake 二进制文件现在附带支持并行压缩的 liblzma。旧版本没有。