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_PACKAGE_FILE_NAME

扩展名将自动追加。

如果 CPACK_COMPONENTS_GROUPING 设置为 ALL_COMPONENTS_IN_ONE,这将是唯一输出归档的名称。

Version 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 版本中新增。

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

默认值

CPACK_THREADS 的值

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

Version 3.21 中添加: cmake.org 上提供的官方 CMake 二进制文件现在附带一个支持并行压缩的 liblzma。旧版本不支持。