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 (используется только в стиле Mac).
-
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_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.10/module/CPackIFW.html