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,則這將會是單一輸出封存檔的名稱。

在版本 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,則將改為使用機器上可用的核心數量。請注意,並非所有壓縮模式都在所有環境中都支援執行緒。

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