cpack(1)

概要

cpack [<options>]

描述

cpack 執行檔是 CMake 的封裝程式。它會產生各種格式的安裝程式和原始碼套件。

對於每個安裝程式或套件格式,cpack 都有一個特定的後端,稱為「產生器」。產生器負責產生所需的輸入並調用特定的套件建立工具。這些安裝程式或套件產生器不應與 cmake 命令的 makefile 產生器混淆。

所有支援的產生器都在 cpack-generators 手冊中指定。命令 cpack --help 會列印目標平台支援的產生器清單。可以使用 CPACK_GENERATOR 變數或透過命令列選項 -G 來選擇要使用哪個產生器。

cpack 程式由以 CMake 語言 編寫的設定檔控制。除非透過命令列選項 --config 選擇其他檔案,否則會使用目前目錄中的 CPackConfig.cmake 檔案。

在標準 CMake 工作流程中,如果專案的 CMakeLists.txt 檔案包含 CPack 模組,則會由 cmake 執行檔產生 CPackConfig.cmake 檔案。

選項

-G <產生器>

<產生器> 是以分號分隔的清單,其中包含產生器名稱。cpack 將會逐一處理此清單,並根據 CPackConfig.cmake 設定檔中提供的詳細資訊,以該產生器的格式產生套件。如果未指定此選項,則 CPACK_GENERATOR 變數會決定將使用的預設產生器集合。

-C <設定>

指定要封裝的專案設定(例如 DebugRelease 等),其中 <設定> 是以分號分隔的清單。當 CMake 專案使用多設定產生器(例如 Xcode 或 Visual Studio)時,需要使用此選項來告知 cpack 要在套件中包含哪些已建置的可執行檔。使用者有責任確保在調用 cpack 之前,已建置列出的設定。

-D <變數>=<值>

設定 CPack 變數。這會覆寫 cpack 讀取的輸入檔案中為 <變數> 設定的任何值。

--config <設定檔>

指定 cpack 讀取的設定檔,以提供封裝詳細資訊。預設情況下,將使用目前目錄中的 CPackConfig.cmake

-V, --verbose

以詳細輸出執行 cpack。這可以用來顯示來自套件產生工具的更多詳細資訊,適用於專案開發人員。

--debug

以偵錯輸出執行 cpack。此選項主要適用於 cpack 本身的開發人員,專案開發人員通常不需要。

--trace

將底層的 cmake 腳本設定為追蹤模式。

--trace-expand

將底層的 cmake 腳本設定為展開的追蹤模式。

-P <套件名稱>

覆寫/定義用於封裝的 CPACK_PACKAGE_NAME 變數的值。CPackConfig.cmake 檔案中為此變數設定的任何值都會被忽略。

-R <套件版本>

覆寫/定義用於封裝的 CPACK_PACKAGE_VERSION 變數的值。它會覆寫 CPackConfig.cmake 檔案中設定的值,或從 CPACK_PACKAGE_VERSION_MAJORCPACK_PACKAGE_VERSION_MINORCPACK_PACKAGE_VERSION_PATCH 自動計算的值。

-B <套件目錄>

覆寫/定義 CPACK_PACKAGE_DIRECTORY,它控制 CPack 執行封裝工作的目錄。預設情況下,產生的套件將在此位置建立,並且也會在此目錄下建立 _CPack_Packages 子目錄,以在建立套件期間用作工作區。

--vendor <供應商名稱>

覆寫/定義 CPACK_PACKAGE_VENDOR

--preset <預設名稱>

使用 cmake-presets(7) 中的預設。

--list-presets

列出 cmake-presets(7) 中的預設。

-version [<檔案>], --version [<檔案>], /V [<檔案>]

顯示程式名稱/版本標題並結束。如果指定,則輸出會列印到指定的 <檔案>

-h, -H, --help, -help, -usage, /?

列印使用資訊並結束。

用法描述了基本命令行介面及其選項。

--help <keyword> [<file>]

列印一個 CMake 關鍵字的說明。

<keyword> 可以是屬性、變數、命令、政策、產生器或模組。

會以人類可讀的文字格式列印出 <keyword> 的相關手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

在 3.28 版本變更: 在 CMake 3.28 之前,此選項僅支援命令名稱。

--help-full [<file>]

列印所有說明手冊並結束。

所有手冊都會以人類可讀的文字格式列印。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-manual <man> [<file>]

列印一本說明手冊並結束。

指定的手冊會以人類可讀的文字格式列印。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-manual-list [<file>]

列出可用的說明手冊並結束。

此清單包含所有可使用 --help-manual 選項以及手冊名稱來獲取說明的各手冊。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-command <cmd> [<file>]

列印一個命令的說明並結束。

會以人類可讀的文字格式列印出 <cmd>cmake-commands(7) 手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-command-list [<file>]

列出具有可用說明的命令並結束。

此清單包含所有可使用 --help-command 選項以及命令名稱來獲取說明的各命令。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-commands [<file>]

列印 cmake-commands 手冊並結束。

會以人類可讀的文字格式列印出 cmake-commands(7) 手冊。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-module <mod> [<file>]

列印一個模組的說明並結束。

會以人類可讀的文字格式列印出 <mod>cmake-modules(7) 手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-module-list [<file>]

列出具有可用說明的模組並結束。

此清單包含所有可使用 --help-module 選項以及模組名稱來獲取說明的各模組。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-modules [<file>]

列印 cmake-modules 手冊並結束。

會以人類可讀的文字格式列印出 cmake-modules(7) 手冊。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-policy <cmp> [<file>]

列印一個政策的說明並結束。

會以人類可讀的文字格式列印出 <cmp>cmake-policies(7) 手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-policy-list [<file>]

列出具有可用說明的政策並結束。

此清單包含所有可使用 --help-policy 選項以及政策名稱來獲取說明的各政策。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-policies [<file>]

列印 cmake-policies 手冊並結束。

會以人類可讀的文字格式列印出 cmake-policies(7) 手冊。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-property <prop> [<file>]

列印一個屬性的說明並結束。

會以人類可讀的文字格式列印出 <prop>cmake-properties(7) 手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-property-list [<file>]

列出具有可用說明的屬性並結束。

此清單包含所有可使用 --help-property 選項以及屬性名稱來獲取說明的各屬性。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-properties [<file>]

列印 cmake-properties 手冊並結束。

會以人類可讀的文字格式列印出 cmake-properties(7) 手冊。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-variable <var> [<file>]

列印一個變數的說明並結束。

會以人類可讀的文字格式列印出 <var>cmake-variables(7) 手冊條目。如果提供了 <file>,則會將輸出列印到指定的檔案。

--help-variable-list [<file>]

列出具有可用說明的變數並結束。

此列表包含所有可使用 --help-variable 選項並接續變數名稱來獲取幫助的變數。如果指定了 <file>,輸出會被列印至指定的檔案。

--help-variables [<file>]

列印 cmake 變數手冊並結束程式。

cmake-variables(7) 手冊會以人類可讀的文字格式列印。如果指定了 <file>,輸出會被列印至指定的檔案。

參見

以下資源可供您取得 CMake 的使用幫助

首頁

https://cmake.dev.org.tw

學習 CMake 的主要起點。

線上文件與社群資源

https://cmake.dev.org.tw/documentation

可在此網頁找到可用文件和社群資源的連結。

Discourse 論壇

https://discourse.cmake.org

Discourse 論壇提供關於 CMake 的討論和提問。