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_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 新增。
執行壓縮時要使用的執行緒數量。
- 預設值:
如果設定為
0
,則將改為使用機器上可用的核心數量。請注意,並非所有壓縮模式都在所有環境中都支援執行緒。在版本 3.21 中新增:在
cmake.org
上提供的官方 CMake 二進制檔案現在隨附支援平行壓縮的liblzma
。舊版本則沒有。