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 格式。它必須是絕對路徑。

標誌圖片的檔案名稱,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 中新增。

要使用的精靈樣式 (ModernMacAeroClassic)。

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 工具

CPACK_IFW_FRAMEWORK_VERSION

在版本 3.3 中新增。

將使用的 QtIFW 工具版本。此變數由 CPackIFW 模組設定。

以下變數提供了 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 手冊

從 Qt 網站下載適用於您平台的 Qt Installer Framework

https://download.qt.io/official_releases/qt-installer-framework