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

啟用元件封裝。

預設值:

關閉

如果啟用 (ON),將會產生多個封裝。預設情況下,會產生一個包含所有元件檔案的單一封裝。

CPack 封存產生器使用的變數

這些變數由封存產生器使用,但也可供本質上為封存檔的 CPack 產生器使用。這些包括:

CPACK_ARCHIVE_THREADS

執行壓縮時要使用的執行緒數。

新增於 3.18 版本。

預設值:

CPACK_THREADS 的值

如果設定為 0,則會改用機器上可用的核心數。請注意,並非所有壓縮模式都在所有環境中都支援執行緒處理。

新增於 3.21 版本: cmake.org 上提供的官方 CMake 二進位檔案現在隨附支援平行壓縮的 liblzma。較舊的版本沒有。