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¶
標誌圖片的檔案名稱,PNG 格式,用作
QWizard::LogoPixmap
。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_WATERMARK¶
在版本 3.8 中新增。
浮水印圖片的檔案名稱,PNG 格式,用作
QWizard::WatermarkPixmap
。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_BANNER¶
在版本 3.8 中新增。
橫幅圖片的檔案名稱,PNG 格式,用作
QWizard::BannerPixmap
。它必須是絕對路徑。
- CPACK_IFW_PACKAGE_BACKGROUND¶
在版本 3.8 中新增。
背景圖片的檔案名稱,PNG 格式,用作
QWizard::BackgroundPixmap
(僅由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 中新增。
如果精靈左側的安裝程式頁面清單 widget 不應顯示,則設定為
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
。對於 QtIFW 低於 2.0 的工具,預設為
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 將使用預設訊息,例如立即執行 <Name>
。此功能適用於 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 Installer Framework 工具在建置時沒有 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 工具建立的安裝程式具有對國際化的內建支援,並且許多詞組已本地化為多種語言,但這不適用於您的組件和群組的描述。
組件和群組描述的本地化對於您的安裝程式使用者很有用。
本地化的變數或引數可以包含單個預設值,然後包含一組locale名稱和本地化值的配對。
例如
set(LOCALIZABLE_VARIABLE "Default value"
en "English value"
en_US "American value"
en_GB "Great Britain value"
)
參見¶
Qt Installer Framework 手冊
預定義變數:https://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
推廣更新:https://doc.qt.io/qtinstallerframework/ifw-updates.html
- 從 Qt 網站下載適用於您平台的 Qt Installer Framework
https://download.qt.io/official_releases/qt-installer-framework