Spec-Zone.ru › CMake 3.12

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

Стиль мастера (“Modern”, “Mac”, “Aero” или “Classic”).

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.12/module/CPackIFW.html

Spec-Zone.ru

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