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