Spec-Zone.ru › CMake 3.11

CPackIFW

Этот модуль ищет расположение командных утилит, поставляемых с Qt Installer Framework (QtIFW).

Модуль также определяет несколько команд для управления поведением генератора CPack IFW.

Обзор

Генератор CPack IFW помогает создавать кроссплатформенные инсталляторы бинарных файлов онлайн и оффлайн с графическим интерфейсом пользователя.

Генератор CPack IFW готовит установку проекта и генерирует конфигурационную и метаинформацию для инструментов QtIFW.

QtIFW предоставляет набор инструментов и утилит для создания инсталляторов для поддерживаемых настольных платформ Qt: Linux, Microsoft Windows и Mac OS X.

Для использования генератора CPack IFW также необходимо установить QtIFW.

Подсказки

В целом, генератор CPack IFW автоматически находит инструменты QtIFW, но если вы не используете стандартный путь установки инструментов QtIFW, этот путь можно указать в переменной CMake или среде:

CPACK_IFW_ROOT

Переменная CMake, которая указывает расположение пакета инструментов QtIFW.

Переменная будет кэширована в файле CPackConfig.cmake и использоваться во время работы CPack.

QTIFWDIR

Переменная среды, которая указывает расположение пакета инструментов QtIFW.

Примечание

Указанный путь не должен содержать «bin» в конце (например: «D:\DevTools\QtIFW2.0.5»).

Переменная CPACK_IFW_ROOT имеет более высокий приоритет и переопределяет значение переменной QTIFWDIR.

Локализация

Некоторые переменные и аргументы команд поддерживают локализацию через скрипт CMake. Это необязательная функция.

Инсталляторы, созданные инструментами QtIFW, имеют встроенную поддержку локализации, и многие фразы локализованы на многих языках, но это не относится к описанию ваших компонентов и групп, которые будут распространяться.

Локализация описания ваших компонентов и групп полезна для пользователей ваших инсталляторов.

Локализованная переменная или аргумент может содержать одно значение по умолчанию и набор пар — имя локали и локализованное значение.

Например:

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

Переменные

Вы можете использовать следующие переменные для изменения поведения генератора CPack IFW.

Отладка

CPACK_IFW_VERBOSE

Установите в 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

Имя файла для пользовательской иконки инсталлятора. Файл — ‘.icns’ (Mac OS X), ‘.ico’ (Windows). Не имеет функциональности в Unix.

CPACK_IFW_PACKAGE_WINDOW_ICON

Имя файла для пользовательской иконки окна приложения инсталлятора в формате PNG.

CPACK_IFW_PACKAGE_LOGO

Имя файла логотипа, используемого как QWizard::LogoPixmap.

CPACK_IFW_PACKAGE_WATERMARK

Имя файла водяного знака, используемого как QWizard::WatermarkPixmap.

CPACK_IFW_PACKAGE_BANNER

Имя файла баннера, используемого как QWizard::BannerPixmap.

CPACK_IFW_PACKAGE_BACKGROUND

Имя файла изображения, используемого как QWizard::BackgroundPixmap (используется только стилем MacStyle).

CPACK_IFW_PACKAGE_WIZARD_STYLE

Стиль мастера («Современный», «Mac», «Aero» или «Классический»).

CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH

Стандартная ширина мастера в пикселях. Установка изображения баннера переопределит это значение.

CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT

Стандартная высота мастера в пикселях. Установка изображения водяного знака переопределит это значение.

CPACK_IFW_PACKAGE_TITLE_COLOR

Цвет заголовков и подзаголовков (принимает HTML цвет, такой как «#88FF33»).

CPACK_IFW_PACKAGE_START_MENU_DIRECTORY

Название группы программ по умолчанию для продукта в меню «Пуск» Windows.

По умолчанию используется CPACK_IFW_PACKAGE_NAME.

CPACK_IFW_TARGET_DIRECTORY

Целевой каталог установки по умолчанию. По умолчанию используется «@ApplicationsDir@/CPACK_PACKAGE_INSTALL_DIRECTORY»

Можно использовать предопределенные переменные.

CPACK_IFW_ADMIN_TARGET_DIRECTORY

Целевой каталог установки с правами администратора.

Можно использовать предопределенные переменные.

CPACK_IFW_PACKAGE_GROUP

Группа, которая будет использоваться для настройки основного пакета.

CPACK_IFW_PACKAGE_NAME

Название основного пакета, которое будет использоваться, если группа конфигурации не указана.

CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME

Имя файла сгенерированного инструмента обслуживания. Добавляется платформа-специфическое расширение исполняемого файла.

По умолчанию используются значения по умолчанию QtIFW (maintenancetool).

CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR

Установите в OFF, если целевой каталог не должен удаляться при удалении.

По умолчанию ON.

CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE

Имя файла конфигурации сгенерированного инструмента обслуживания.

По умолчанию используются значения по умолчанию QtIFW (maintenancetool.ini).

CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS

Установите в ON, если путь установки может содержать не-ASCII символы.

По умолчанию ON для инструментов QtIFW версии ниже 2.0.

CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH

Установите в OFF, если путь установки не может содержать пробелы.

По умолчанию ON для инструментов QtIFW версии ниже 2.0.

CPACK_IFW_PACKAGE_CONTROL_SCRIPT

Имя файла пользовательского скрипта управления инсталлятором.

CPACK_IFW_PACKAGE_RESOURCES

Список дополнительных ресурсов (файлы ‘.qrc’) для включения в исполняемый файл инсталлятора.

Вы можете использовать команду cpack_ifw_add_package_resources() для разрешения относительных путей.

CPACK_IFW_PACKAGE_FILE_EXTENSION

Расширение целевого бинарного файла.

В 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 , будут загружены все компоненты. По умолчанию значение OFF или используется значение из CPACK_DOWNLOAD_ALL , если задано

Компоненты

CPACK_IFW_RESOLVE_DUPLICATE_NAMES

Разрешение дублирующих имён при установке компонентов с группами.

CPACK_IFW_PACKAGES_DIRECTORIES

Дополнительные подготовленные директории пакетов, которые будут использоваться для разрешения зависимых компонентов.

CPACK_IFW_REPOSITORIES_DIRECTORIES

Дополнительные подготовленные директории репозиториев, которые будут использоваться для разрешения и переупаковки зависимых компонентов. Эта функция доступна только начиная с QtIFW 3.1.

Инструменты

CPACK_IFW_FRAMEWORK_VERSION

Версия используемых инструментов QtIFW.

CPACK_IFW_BINARYCREATOR_EXECUTABLE

Путь к командной строке «binarycreator».

Эта переменная кэшируется и может быть настроена при необходимости.

CPACK_IFW_REPOGEN_EXECUTABLE

Путь к командной строке «repogen».

Эта переменная кэшируется и может быть настроена при необходимости.

CPACK_IFW_INSTALLERBASE_EXECUTABLE

Путь к исполняемому файлу установщика «installerbase».

Эта переменная кэшируется и может быть настроена при необходимости.

CPACK_IFW_DEVTOOL_EXECUTABLE

Путь к командной строке «devtool».

Эта переменная кэшируется и может быть настроена при необходимости.

Команды

Модуль определяет следующие команды:

cpack_ifw_configure_component

Устанавливает аргументы, специфичные для генератора CPack IFW.

cpack_ifw_configure_component(<compname> [COMMON] [ESSENTIAL] [VIRTUAL]
                    [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
                    [NAME <name>]
                    [DISPLAY_NAME <display_name>] # Note: Internationalization supported
                    [DESCRIPTION <description>] # Note: Internationalization supported
                    [UPDATE_TEXT <update_text>]
                    [VERSION <version>]
                    [RELEASE_DATE <release_date>]
                    [SCRIPT <script>]
                    [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
                    [DEPENDS|DEPENDENCIES <com_id> ...]
                    [AUTO_DEPEND_ON <comp_id> ...]
                    [LICENSES <display_name> <file_path> ...]
                    [DEFAULT <value>]
                    [USER_INTERFACES <file_path> <file_path> ...]
                    [TRANSLATIONS <file_path> <file_path> ...]
                    [REPLACES <comp_id> ...]
                    [CHECKABLE <value>])

Эта команда должна вызываться после команды cpack_add_component().

COMMON
если задано, компонент будет упакован и установлен как часть группы, к которой он принадлежит.
ESSENTIAL
если задано, менеджер пакетов остаётся отключённым до обновления этого компонента.
VIRTUAL
если задано, компонент будет скрыт из установщика. Это эквивалентно опции HIDDEN из команды cpack_add_component().
FORCED_INSTALLATION
если задано, компонент всегда должен быть установлен. Это эквивалентно опции REQUARED из команды cpack_add_component().
REQUIRES_ADMIN_RIGHTS
установите, если компонент необходимо установить с повышенными правами.
NAME
используется для создания идентификации, подобной домену, для данного компонента. По умолчанию используется имя исходного компонента.
DISPLAY_NAME
устанавливает, чтобы перезаписать исходное имя, настроенное командой cpack_add_component().
DESCRIPTION
устанавливает, чтобы перезаписать исходное описание, настроенное командой cpack_add_component().
UPDATE_TEXT
будет добавлено к описанию компонента, если это обновление компонента.
VERSION
это версия компонента. По умолчанию используется CPACK_PACKAGE_VERSION.
RELEASE_DATE
оставьте пустым для автоматического генерирования.
SCRIPT
это относительный или абсолютный путь к скрипту операций для этого компонента.
PRIORITY | SORTING_PRIORITY
это приоритет компонента в дереве. Опция PRIORITY устарела и будет удалена в будущих версиях CMake. Используйте вместо неё опцию SORTING_PRIORITY.
DEPENDS | DEPENDENCIES
список идентификаторов зависимых компонентов или групп компонентов в стиле QtIFW.
AUTO_DEPEND_ON
список идентификаторов компонентов или групп компонентов в стиле QtIFW, на которые у этого компонента есть автоматическая зависимость.
LICENSES
пара <название_для_отображения> и <путь_к_файлу> текста лицензии для этого компонента. Вы можете указать более одной лицензии.
DEFAULT
Возможные значения: TRUE, FALSE и SCRIPT. Установите FALSE, чтобы отключить компонент в установщике, или SCRIPT, чтобы разрешить во время выполнения (не забудьте добавить файл скрипта как значение опции SCRIPT).
USER_INTERFACES
это список <путей_к_файлам> (файлы '.ui'), представляющие страницы для загрузки.
TRANSLATIONS
это список <путей_к_файлам> (файлы '.qm'), представляющие загружаемые переводы.
REPLACES
список идентификаторов компонентов или групп компонентов для замены.
CHECKABLE
Возможные значения: TRUE, FALSE. Установите FALSE, если хотите скрыть флажок для элемента. Это полезно, когда необходимо выбрать только несколько подкомпонентов, а не все.
cpack_ifw_configure_component_group

Устанавливает аргументы, специфичные для генератора CPack IFW.

cpack_ifw_configure_component_group(<groupname> [VIRTUAL]
                    [FORCED_INSTALLATION] [REQUIRES_ADMIN_RIGHTS]
                    [NAME <name>]
                    [DISPLAY_NAME <display_name>] # Note: Internationalization supported
                    [DESCRIPTION <description>] # Note: Internationalization supported
                    [UPDATE_TEXT <update_text>]
                    [VERSION <version>]
                    [RELEASE_DATE <release_date>]
                    [SCRIPT <script>]
                    [PRIORITY|SORTING_PRIORITY <sorting_priority>] # Note: PRIORITY is deprecated
                    [DEPENDS|DEPENDENCIES <com_id> ...]
                    [AUTO_DEPEND_ON <comp_id> ...]
                    [LICENSES <display_name> <file_path> ...]
                    [DEFAULT <value>]
                    [USER_INTERFACES <file_path> <file_path> ...]
                    [TRANSLATIONS <file_path> <file_path> ...]
                    [REPLACES <comp_id> ...]
                    [CHECKABLE <value>])

Эта команда должна вызываться после команды cpack_add_component_group().

VIRTUAL
если задано, группа будет скрыта из установщика. Обратите внимание, что установка этого параметра для корневого компонента не работает.
FORCED_INSTALLATION
если задано, группа всегда должна быть установлена.
REQUIRES_ADMIN_RIGHTS
установите, если группе компонентов необходимо установить с повышенными правами.
NAME
используется для создания идентификации, подобной домену, для этой группы компонентов. По умолчанию используется имя исходной группы компонентов.
DISPLAY_NAME
установите, чтобы перезаписать исходное имя, настроенное командой cpack_add_component_group().
DESCRIPTION
установите, чтобы перезаписать исходное описание, настроенное командой cpack_add_component_group().
UPDATE_TEXT
будет добавлено к описанию группы компонентов, если это обновление группы компонентов.
VERSION
это версия группы компонентов. По умолчанию используется CPACK_PACKAGE_VERSION.
RELEASE_DATE
оставьте пустым для автоматического генерирования.
SCRIPT
это относительный или абсолютный путь к скрипту операций для этой группы компонентов.
PRIORITY | SORTING_PRIORITY
это приоритет группы компонентов в дереве. Опция PRIORITY устарела и будет удалена в будущих версиях CMake. Используйте вместо неё опцию SORTING_PRIORITY.
DEPENDS | DEPENDENCIES
список идентификаторов зависимых компонентов или групп компонентов в стиле QtIFW.
AUTO_DEPEND_ON
список идентификаторов компонентов или групп компонентов в стиле QtIFW, на которые у этой группы компонентов есть автоматическая зависимость.
LICENSES
пара <название_для_отображения> и <путь_к_файлу> текста лицензии для этой группы компонентов. Вы можете указать более одной лицензии.
DEFAULT
Возможные значения: TRUE, FALSE и SCRIPT. Установите TRUE, чтобы предварительно выбрать группу в установщике (это имеет эффект только для групп без видимых дочерних компонентов), или SCRIPT, чтобы разрешить во время выполнения (не забудьте добавить файл скрипта как значение опции SCRIPT).
USER_INTERFACES
это список <путей_к_файлам> (файлы '.ui'), представляющие страницы для загрузки.
TRANSLATIONS
это список <путей_к_файлам> (файлы '.qm'), представляющие загружаемые переводы.
REPLACES
список идентификаторов компонентов или групп компонентов для замены.
CHECKABLE
Возможные значения: TRUE, FALSE. Установите FALSE, если хотите скрыть флажок для элемента. Это полезно, когда необходимо выбрать только несколько подкомпонентов, а не все.
cpack_ifw_add_repository

Добавление удалённого репозитория, специфичного для QtIFW, в установщик.

cpack_ifw_add_repository(<reponame> [DISABLED]
                    URL <url>
                    [USERNAME <username>]
                    [PASSWORD <password>]
                    [DISPLAY_NAME <display_name>])

Эта команда также добавит репозиторий <reponame> в переменную CPACK_IFW_REPOSITORIES_ALL.

DISABLED
если задано, репозиторий будет по умолчанию отключён.
URL
указывает на список доступных компонентов.
USERNAME
используется как пользователь в защищённом репозитории.
PASSWORD
пароль для использования в защищённом репозитории.
DISPLAY_NAME
строка для отображения вместо URL.
cpack_ifw_update_repository

Обновить репозиторий QtIFW из удалённого репозитория.

cpack_ifw_update_repository(<reponame>
                    [[ADD|REMOVE] URL <url>]|
                     [REPLACE OLD_URL <old_url> NEW_URL <new_url>]]
                    [USERNAME <username>]
                    [PASSWORD <password>]
                    [DISPLAY_NAME <display_name>])

Эта команда также добавит репозиторий <reponame> в переменную CPACK_IFW_REPOSITORIES_ALL.

URL
указывает на список доступных компонентов.
OLD_URL
указывает на список, который будет заменён.
NEW_URL
указывает на список, который будет использоваться для замены.
USERNAME
используется как имя пользователя для защищённого репозитория.
PASSWORD
является паролем для использования в защищённом репозитории.
DISPLAY_NAME
является строкой, отображаемой вместо URL.
cpack_ifw_add_package_resources

Добавить дополнительные ресурсы в установочный бинарный файл.

cpack_ifw_add_package_resources(<file_path> <file_path> ...)

Эта команда также добавит указанные файлы в переменную CPACK_IFW_PACKAGE_RESOURCES.

Пример использования

set(CPACK_PACKAGE_NAME "MyPackage")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyPackage Installation Example")
set(CPACK_PACKAGE_VERSION "1.0.0") # Version of installer

include(CPack)
include(CPackIFW)

cpack_add_component(myapp
    DISPLAY_NAME "MyApp"
    DESCRIPTION "My Application") # Default description
cpack_ifw_configure_component(myapp
    DESCRIPTION ru_RU "Мое Приложение" # Localized description
    VERSION "1.2.3" # Version of component
    SCRIPT "operations.qs")
cpack_add_component(mybigplugin
    DISPLAY_NAME "MyBigPlugin"
    DESCRIPTION "My Big Downloadable Plugin"
    DOWNLOADED)
cpack_ifw_add_repository(myrepo
    URL "http://example.com/ifw/repo/myapp"
    DISPLAY_NAME "My Application Repository")

Онлайн-установщик

По умолчанию генератор CPack IFW создаёт автономный установщик. Это означает, что все компоненты будут упакованы в один бинарный файл.

Чтобы компонент загружался, необходимо установить опцию DOWNLOADED в cpack_add_component().

Затем вы будете использовать команду cpack_configure_downloads(). Если вы установите опцию ALL, все компоненты будут загружены.

Вы также можете использовать команду cpack_ifw_add_repository() и переменную CPACK_IFW_DOWNLOAD_ALL для более подробной настройки.

Генератор CPack IFW создаёт директорию “repository” в текущей директории бинарного файла. Вы скопируете содержимое этой директории в указанную site (url).

См. также

Руководство Qt Installer Framework:

  • Главная страница: http://doc.qt.io/qtinstallerframework/index.html
  • Сценарии компонентов: http://doc.qt.io/qtinstallerframework/scripting.html
  • Предопределённые переменные: http://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
  • Продвижение обновлений: http://doc.qt.io/qtinstallerframework/ifw-updates.html
Скачать Qt Installer Framework для вашей платформы с сайта Qt:
http://download.qt.io/official_releases/qt-installer-framework

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.11/module/CPackIFW.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API