CPack IFW 產生器¶
於 3.1 版本新增。
設定並執行 Qt Installer Framework 以產生 Qt 安裝程式。
概觀¶
此 cpack 產生器
為 Qt Installer Framework (QtIFW) 產生組態和中繼資訊,並執行 QtIFW 工具以產生 Qt 安裝程式。
QtIFW 提供工具和實用程式,為 Qt 支援的平台建立安裝程式:Linux、Microsoft Windows 和 macOS。
要使用此產生器,需要安裝 QtIFW。CPackIFW
模組會尋找 QtIFW 命令列工具的位置,並定義數個命令來控制此產生器的行為。請參閱尋找 QtIFW 的提示。
變數¶
您可以使用以下變數來變更 CPack IFW
產生器的行為。
除錯¶
- CPACK_IFW_VERBOSE¶
於 3.3 版本新增。
設定為
ON
以啟用額外的除錯輸出。預設為OFF
。
套件¶
- CPACK_IFW_PACKAGE_TITLE¶
顯示在標題列上的安裝程式名稱。如果未指定,則預設為
CPACK_PACKAGE_DESCRIPTION_SUMMARY
。
- CPACK_IFW_PACKAGE_PUBLISHER¶
軟體的發行者(如 Windows 控制台中所示)。如果未指定,則預設為
CPACK_PACKAGE_VENDOR
。
- CPACK_IFW_PRODUCT_URL¶
指向您網站上包含產品資訊的頁面的 URL。
- CPACK_IFW_PACKAGE_ICON¶
自訂安裝程式圖示的檔案名稱。它必須是絕對路徑。在 macOS 上應該是
.icns
檔案,而在 Windows 上應該是.ico
檔案。在其他平台上會被忽略。
- CPACK_IFW_PACKAGE_WINDOW_ICON¶
安裝程式應用程式中自訂視窗圖示的檔案名稱(PNG 格式)。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_LOGO¶
用作
QWizard::LogoPixmap
的標誌影像檔案名稱(PNG 格式)。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_WATERMARK¶
於 3.8 版本新增。
用作
QWizard::WatermarkPixmap
的浮水印影像檔案名稱(PNG 格式)。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_BANNER¶
於 3.8 版本新增。
用作
QWizard::BannerPixmap
的橫幅影像檔案名稱(PNG 格式)。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_BACKGROUND¶
於 3.8 版本新增。
用作
QWizard::BackgroundPixmap
的背景影像檔案名稱(PNG 格式)(僅由MacStyle
使用)。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_WIZARD_STYLE¶
於 3.8 版本新增。
要使用的精靈樣式(
Modern
、Mac
、Aero
或Classic
)。
- CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH¶
於 3.8 版本新增。
精靈的預設寬度(像素)。設定橫幅影像會覆寫此設定。
- CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT¶
於 3.8 版本新增。
精靈的預設高度(像素)。設定浮水印影像會覆寫此設定。
- CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST¶
於 3.20 版本新增。
如果精靈左側列出安裝程式頁面的小工具不應顯示,則設定為
OFF
。預設為
ON
,但僅在使用 QtIFW 4.0 或更新版本時才會生效。
- CPACK_IFW_PACKAGE_TITLE_COLOR¶
於 3.8 版本新增。
標題和副標題的顏色(採用 HTML 色碼,例如
#88FF33
)。
- CPACK_IFW_PACKAGE_STYLE_SHEET¶
於 3.15 版本新增。
樣式表的檔案名稱。它必須是絕對路徑。
- CPACK_IFW_TARGET_DIRECTORY¶
安裝的預設目標目錄。如果已設定
CPACK_PACKAGE_INSTALL_DIRECTORY
,則預設為@ApplicationsDir@/${CPACK_PACKAGE_INSTALL_DIRECTORY}
。如果也未設定該變數,則使用的預設值為@RootDir@/usr/local
。表單為@...@
的預先定義變數會由 QtIFW 指令碼引擎展開。
- CPACK_IFW_ADMIN_TARGET_DIRECTORY¶
具有管理員權限的安裝預設目標目錄。
您可以使用預先定義的變數。
- CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR¶
於 3.11 版本新增。
如果解除安裝時不應刪除目標目錄,則設定為
OFF
。預設為
ON
。
- CPACK_IFW_PACKAGE_GROUP¶
將用於設定根套件的群組。
- CPACK_IFW_PACKAGE_NAME¶
如果未指定組態群組,則會使用的根套件名稱。
- CPACK_IFW_PACKAGE_START_MENU_DIRECTORY¶
於 3.3 版本新增。
Windows 開始功能表中產品的預設程式群組名稱。如果未指定,則預設為
CPACK_IFW_PACKAGE_NAME
。
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME¶
於 3.3 版本新增。
產生維護工具的檔案名稱。將會附加平台特定的可執行檔副檔名。
如果未指定,則 QtIFW 會提供預設名稱(
maintenancetool
)。
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE¶
於 3.3 版本新增。
產生維護工具的組態檔案名稱。
如果未指定,則 QtIFW 會使用預設檔案名稱(
maintenancetool.ini
)。
- CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS¶
於 3.3 版本新增。
如果安裝路徑可以包含非 ASCII 字元,則設定為
ON
。僅支援 QtIFW 2.0 和更新版本。較舊的 QtIFW 版本將始終允許非 ASCII 字元。
- CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH¶
於 3.3 版本新增。
如果安裝路徑不能包含空格字元,則設定為
OFF
。對於低於 2.0 的 QtIFW 工具,為
ON
。
- CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE¶
於 3.23 版本新增。
若要停用命令列介面功能,請設為
ON
。預設為OFF
,且僅在使用 QtIFW 4.0 或更新版本時才會生效。
- CPACK_IFW_PACKAGE_CONTROL_SCRIPT¶
於 3.3 版本新增。
自訂安裝程式控制腳本的檔案名稱。
- CPACK_IFW_PACKAGE_RESOURCES¶
於 3.7 版本新增。
要包含在安裝程式二進位檔案中的額外資源列表(
.qrc
檔案)。應指定為絕對路徑,且任何兩個資源檔案的檔案名稱不得相同。您可以使用
cpack_ifw_add_package_resources()
命令來解析相對路徑。
- CPACK_IFW_PACKAGE_FILE_EXTENSION¶
於 3.10 版本新增。
目標二進位檔案的副檔名。
在 Linux 上,如果未指定副檔名,目標二進位檔案的名稱會自動附加
.run
。在 Windows 上,目標會建立為副檔名為
.exe
的應用程式,如果沒有提供,則會自動新增。在 Mac 上,目標會建立為副檔名為
.dmg
的 DMG 磁碟映像,如果沒有提供,則會自動新增。
- CPACK_IFW_REPOSITORIES_ALL¶
遠端儲存庫的列表。
此變數的預設值由 CPack 計算,並包含所有使用
cpack_ifw_add_repository()
新增或使用cpack_ifw_update_repository()
更新的所有儲存庫。
- CPACK_IFW_DOWNLOAD_ALL¶
如果此值為
ON
,則會下載所有元件。如果未設定,則行為取決於是否已使用ALL
選項呼叫cpack_configure_downloads()
。
- CPACK_IFW_PACKAGE_PRODUCT_IMAGES¶
於 3.23 版本新增。
要在
PerformInstallationPage
上顯示的影像列表。這些必須是絕對路徑,且影像必須為 PNG 格式。此功能適用於 QtIFW 4.0.0 及更新版本。
- CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS¶
於 3.31 版本新增。
與 ProductImages 相關聯的 URL 列表。僅當定義
CPACK_IFW_PACKAGE_PRODUCT_IMAGES
且大小相同時才使用。此功能適用於 QtIFW 4.0.0 及更新版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM¶
於 3.23 版本新增。
如果使用者接受此動作,則在安裝程式完成後執行的命令。提供已安裝時找到的應用程式完整路徑。這通常表示路徑應以 QtIFW 預定義變數
@TargetDir@
開頭。此功能適用於 QtIFW 4.0.0 及更新版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS¶
於 3.23 版本新增。
傳遞給
CPACK_IFW_PACKAGE_RUN_PROGRAM
中指定程式的引數列表。此功能適用於 QtIFW 4.0.0 及更新版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION¶
於 3.23 版本新增。
在安裝後執行程式的核取方塊旁邊顯示的文字。如果設定了
CPACK_IFW_PACKAGE_RUN_PROGRAM
但未提供描述,QtIFW 將使用預設訊息,例如立即執行 <名稱>
。此功能適用於 QtIFW 4.0.0 及更新版本。
- CPACK_IFW_PACKAGE_SIGNING_IDENTITY¶
於 3.23 版本新增。
允許指定程式碼簽署身分,以用於簽署產生的應用程式套件。僅適用於 macOS,在其他平台上會被忽略。
- CPACK_IFW_ARCHIVE_FORMAT¶
於 3.23 版本新增。
設定封裝新元件資料封存時使用的格式。如果省略此選項,將預設使用
7z
格式。支援的格式有:7z
zip
tar.gz
tar.bz2
tar.xz
注意
如果 Qt 安裝程式框架工具在建置時未支援 libarchive,則僅支援
7z
格式。此功能適用於 QtIFW 4.2.0 及更新版本。
- CPACK_IFW_ARCHIVE_COMPRESSION¶
於 3.23 版本新增。
封存壓縮層級。允許的值為:
0(不壓縮)
1(最快壓縮)
3(快速壓縮)
5(正常壓縮)
7(最大壓縮)
9(超壓縮)
如果未設定此變數,QtIFW 將使用預設壓縮層級,通常為 5(正常壓縮)。
注意
某些格式不支援所有可能的值。例如,
zip
壓縮僅支援 1 到 7 的值。此功能適用於 QtIFW 4.2.0 及更新版本。
元件¶
- CPACK_IFW_RESOLVE_DUPLICATE_NAMES¶
在安裝具有群組的元件時,解析重複名稱。
- CPACK_IFW_PACKAGES_DIRECTORIES¶
將用於解析相依元件的其他預先準備的套件目錄。
- CPACK_IFW_REPOSITORIES_DIRECTORIES¶
於 3.10 版本新增。
將用於解析和重新封裝相依元件的其他預先準備的儲存庫目錄。
此功能適用於 QtIFW 3.1 及更新版本。
QtIFW 工具¶
以下變數提供 CPackIFW
模組探索到的 QtIFW 命令列工具位置。這些變數會被快取,並且可以在需要時設定。
- CPACK_IFW_ARCHIVEGEN_EXECUTABLE¶
於 3.19 版本新增。
archivegen
的路徑。
- CPACK_IFW_BINARYCREATOR_EXECUTABLE¶
binarycreator
的路徑。
- CPACK_IFW_REPOGEN_EXECUTABLE¶
repogen
的路徑。
- CPACK_IFW_INSTALLERBASE_EXECUTABLE¶
installerbase
的路徑。
- CPACK_IFW_DEVTOOL_EXECUTABLE¶
devtool
的路徑。
尋找 QtIFW 的提示¶
一般來說,CPack IFW
產生器會自動尋找 QtIFW 工具。以下(依優先順序排列)也可以設定以擴充 find_program()
常規搜尋的位置。
- CPACK_IFW_ROOT¶
在 3.9 版本中新增。
CMake 變數
- CPACK_IFW_ROOT¶
在 3.9 版本中新增。
環境變數
- QTIFWDIR¶
CMake 變數
- QTIFWDIR¶
環境變數
注意
指定的路徑不應在結尾包含 bin
(例如:D:\\DevTools\\QtIFW2.0.5
)。
其他設定¶
線上安裝程式¶
預設情況下,此產生器會產生一個離線安裝程式。這表示所有封裝的檔案都完全包含在安裝程式的可執行檔中。
相反地,線上安裝程式將從遠端伺服器下載部分或所有元件。
cpack_add_component()
命令中的 DOWNLOADED
選項指定要下載的元件。或者,cpack_configure_downloads()
命令中的 ALL
選項指定要下載所有元件。
cpack_ifw_add_repository()
命令和 CPACK_IFW_DOWNLOAD_ALL
變數允許更具體的配置。
當存在線上元件時,CPack 會將它們寫入封存檔。 CPackComponent
模組的說明頁面,特別是關於 cpack_configure_downloads()
函數的部分,說明如何從下載 URL 存取這些檔案。
國際化¶
在 3.9 版本中新增。
某些變數和命令參數透過 CMake 腳本支援國際化。這是一個可選的功能。
由 QtIFW 工具建立的安裝程式內建支援國際化,並且許多詞組已本地化為多種語言,但這不適用於您元件和群組的描述。
本地化您的元件和群組的描述對於安裝程式的使用者來說很有用。
本地化的變數或參數可以包含一個預設值,然後是一組具有語言環境名稱和本地化值的配對。
例如
set(LOCALIZABLE_VARIABLE "Default value"
en "English value"
en_US "American value"
en_GB "Great Britain value"
)
參見¶
Qt 安裝程式框架手冊
預定義變數:https://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
促進更新:https://doc.qt.io/qtinstallerframework/ifw-updates.html
- 從 Qt 網站下載適用於您平台的 Qt 安裝程式框架
https://download.qt.io/official_releases/qt-installer-framework