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

用作 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 版本新增。

要使用的精靈樣式(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 版本新增。

如果精靈左側列出安裝程式頁面的小工具不應顯示,則設定為 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 工具

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 工具建立的安裝程式內建支援國際化,並且許多詞組已本地化為多種語言,但這不適用於您元件和群組的描述。

本地化您的元件和群組的描述對於安裝程式的使用者來說很有用。

本地化的變數或參數可以包含一個預設值,然後是一組具有語言環境名稱和本地化值的配對。

例如

set(LOCALIZABLE_VARIABLE "Default value"
  en "English value"
  en_US "American value"
  en_GB "Great Britain value"
  )

參見

Qt 安裝程式框架手冊

從 Qt 網站下載適用於您平台的 Qt 安裝程式框架

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