CPack 存档生成器

用于将文件打包成存档的 CPack 生成器,存档可以是以下任何一种格式:

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

  • TBZ2 (.tar.bz2)

  • TGZ (.tar.gz)

  • TXZ (.tar.xz)

  • TZ (.tar.Z)

  • TZST (.tar.zst)

  • 邮编(.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

启用组件打包。

默认:

关闭

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

CPack 存档生成器使用的变量

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

  • CPack Cygwin 生成器

  • CPack FreeBSD 生成器

CPACK_ARCHIVE_THREADS

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

在 3.18 版本加入.

默认:

1

如果设置为“0”,则将使用机器上的可用内核数。默认值为“1”,它将压缩限制为单个线程。请注意,并非所有压缩模式都支持所有环境中的线程。目前,只有 XZ 压缩可能支持它。

另请参阅 CPACK_THREADS 变量。

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