mirror of
https://github.com/reactos/CMake.git
synced 2024-12-12 13:56:00 +00:00
72ac7ad98d
Changes: - DISPLAY_NAME and DESCRIPTION in CPackIFW module now is MULTI_ARGS; - Added internationalization support for DisplayName and Description properties in cmCPackIFWPackage class; - Added documentation to CPackIFW module; - Added release note.
1034 lines
33 KiB
CMake
1034 lines
33 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||
|
||
#.rst:
|
||
# CPackIFW
|
||
# --------
|
||
#
|
||
# .. _QtIFW: http://doc.qt.io/qtinstallerframework/index.html
|
||
#
|
||
# This module looks for the location of the command line utilities supplied
|
||
# with the Qt Installer Framework (QtIFW_).
|
||
#
|
||
# The module also defines several commands to control the behavior of the
|
||
# CPack ``IFW`` generator.
|
||
#
|
||
#
|
||
# Overview
|
||
# ^^^^^^^^
|
||
#
|
||
# CPack ``IFW`` generator helps you to create online and offline
|
||
# binary cross-platform installers with a graphical user interface.
|
||
#
|
||
# CPack IFW generator prepares project installation and generates configuration
|
||
# and meta information for QtIFW_ tools.
|
||
#
|
||
# The QtIFW_ provides a set of tools and utilities to create
|
||
# installers for the supported desktop Qt platforms: Linux, Microsoft Windows,
|
||
# and Mac OS X.
|
||
#
|
||
# You should also install QtIFW_ to use CPack ``IFW`` generator.
|
||
#
|
||
# Hints
|
||
# ^^^^^
|
||
#
|
||
# Generally, the CPack ``IFW`` generator automatically finds QtIFW_ tools,
|
||
# but if you don't use a default path for installation of the QtIFW_ tools,
|
||
# the path may be specified in either a CMake or an environment variable:
|
||
#
|
||
# .. variable:: CPACK_IFW_ROOT
|
||
#
|
||
# An CMake variable which specifies the location of the QtIFW_ tool suite.
|
||
#
|
||
# The variable will be cached in the ``CPackConfig.cmake`` file and used at
|
||
# CPack runtime.
|
||
#
|
||
# .. variable:: QTIFWDIR
|
||
#
|
||
# An environment variable which specifies the location of the QtIFW_ tool
|
||
# suite.
|
||
#
|
||
# .. note::
|
||
# The specified path should not contain "bin" at the end
|
||
# (for example: "D:\\DevTools\\QtIFW2.0.5").
|
||
#
|
||
# The :variable:`CPACK_IFW_ROOT` variable has a higher priority and overrides
|
||
# the value of the :variable:`QTIFWDIR` variable.
|
||
#
|
||
# Internationalization
|
||
# ^^^^^^^^^^^^^^^^^^^^
|
||
#
|
||
# Some variables and command arguments support internationalization via
|
||
# CMake script. This is an optional feature.
|
||
#
|
||
# Installers created by QtIFW_ tools have built-in support for
|
||
# internationalization and many phrases are localized to many languages,
|
||
# but this does not apply to the description of the your components and groups
|
||
# that will be distributed.
|
||
#
|
||
# Localization of the description of your components and groups is useful for
|
||
# users of your installers.
|
||
#
|
||
# A localized variable or argument can contain a single default value, and a
|
||
# set of pairs the name of the locale and the localized value.
|
||
#
|
||
# For example:
|
||
#
|
||
# .. code-block:: cmake
|
||
#
|
||
# set(LOCALIZABLE_VARIABLE "Default value"
|
||
# en "English value"
|
||
# en_US "American value"
|
||
# en_GB "Great Britain value"
|
||
# )
|
||
#
|
||
# Variables
|
||
# ^^^^^^^^^
|
||
#
|
||
# You can use the following variables to change behavior of CPack ``IFW``
|
||
# generator.
|
||
#
|
||
# Debug
|
||
# """"""
|
||
#
|
||
# .. variable:: CPACK_IFW_VERBOSE
|
||
#
|
||
# Set to ``ON`` to enable addition debug output.
|
||
# By default is ``OFF``.
|
||
#
|
||
# Package
|
||
# """""""
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_TITLE
|
||
#
|
||
# Name of the installer as displayed on the title bar.
|
||
# By default used :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_PUBLISHER
|
||
#
|
||
# Publisher of the software (as shown in the Windows Control Panel).
|
||
# By default used :variable:`CPACK_PACKAGE_VENDOR`.
|
||
#
|
||
# .. variable:: CPACK_IFW_PRODUCT_URL
|
||
#
|
||
# URL to a page that contains product information on your web site.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_ICON
|
||
#
|
||
# Filename for a custom installer icon. The actual file is '.icns' (Mac OS X),
|
||
# '.ico' (Windows). No functionality on Unix.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_WINDOW_ICON
|
||
#
|
||
# Filename for a custom window icon in PNG format for the Installer
|
||
# application.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_LOGO
|
||
#
|
||
# Filename for a logo is used as QWizard::LogoPixmap.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_WATERMARK
|
||
#
|
||
# Filename for a watermark is used as QWizard::WatermarkPixmap.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_BANNER
|
||
#
|
||
# Filename for a banner is used as QWizard::BannerPixmap.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_BACKGROUND
|
||
#
|
||
# Filename for an image used as QWizard::BackgroundPixmap (only used by MacStyle).
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_WIZARD_STYLE
|
||
#
|
||
# Wizard style to be used ("Modern", "Mac", "Aero" or "Classic").
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH
|
||
#
|
||
# Default width of the wizard in pixels. Setting a banner image will override this.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT
|
||
#
|
||
# Default height of the wizard in pixels. Setting a watermark image will override this.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_TITLE_COLOR
|
||
#
|
||
# Color of the titles and subtitles (takes an HTML color code, such as "#88FF33").
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
|
||
#
|
||
# Name of the default program group for the product in the Windows Start menu.
|
||
#
|
||
# By default used :variable:`CPACK_IFW_PACKAGE_NAME`.
|
||
#
|
||
# .. variable:: CPACK_IFW_TARGET_DIRECTORY
|
||
#
|
||
# Default target directory for installation.
|
||
# By default used
|
||
# "@ApplicationsDir@/:variable:`CPACK_PACKAGE_INSTALL_DIRECTORY`"
|
||
#
|
||
# You can use predefined variables.
|
||
#
|
||
# .. variable:: CPACK_IFW_ADMIN_TARGET_DIRECTORY
|
||
#
|
||
# Default target directory for installation with administrator rights.
|
||
#
|
||
# You can use predefined variables.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_GROUP
|
||
#
|
||
# The group, which will be used to configure the root package
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_NAME
|
||
#
|
||
# The root package name, which will be used if configuration group is not
|
||
# specified
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
|
||
#
|
||
# Filename of the generated maintenance tool.
|
||
# The platform-specific executable file extension is appended.
|
||
#
|
||
# By default used QtIFW_ defaults (``maintenancetool``).
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
|
||
#
|
||
# Filename for the configuration of the generated maintenance tool.
|
||
#
|
||
# By default used QtIFW_ defaults (``maintenancetool.ini``).
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
|
||
#
|
||
# Set to ``ON`` if the installation path can contain non-ASCII characters.
|
||
#
|
||
# Is ``ON`` for QtIFW_ less 2.0 tools.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
|
||
#
|
||
# Set to ``OFF`` if the installation path cannot contain space characters.
|
||
#
|
||
# Is ``ON`` for QtIFW_ less 2.0 tools.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_CONTROL_SCRIPT
|
||
#
|
||
# Filename for a custom installer control script.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGE_RESOURCES
|
||
#
|
||
# List of additional resources ('.qrc' files) to include in the installer
|
||
# binary.
|
||
#
|
||
# You can use :command:`cpack_ifw_add_package_resources` command to resolve
|
||
# relative paths.
|
||
#
|
||
# .. variable:: CPACK_IFW_REPOSITORIES_ALL
|
||
#
|
||
# The list of remote repositories.
|
||
#
|
||
# The default value of this variable is computed by CPack and contains
|
||
# all repositories added with command :command:`cpack_ifw_add_repository`
|
||
# or updated with command :command:`cpack_ifw_update_repository`.
|
||
#
|
||
# .. variable:: CPACK_IFW_DOWNLOAD_ALL
|
||
#
|
||
# If this is ``ON`` all components will be downloaded.
|
||
# By default is ``OFF`` or used value
|
||
# from ``CPACK_DOWNLOAD_ALL`` if set
|
||
#
|
||
# Components
|
||
# """"""""""
|
||
#
|
||
# .. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
|
||
#
|
||
# Resolve duplicate names when installing components with groups.
|
||
#
|
||
# .. variable:: CPACK_IFW_PACKAGES_DIRECTORIES
|
||
#
|
||
# Additional prepared packages dirs that will be used to resolve
|
||
# dependent components.
|
||
#
|
||
# Tools
|
||
# """""
|
||
#
|
||
# .. variable:: CPACK_IFW_FRAMEWORK_VERSION
|
||
#
|
||
# The version of used QtIFW_ tools.
|
||
#
|
||
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
||
#
|
||
# The path to "binarycreator" command line client.
|
||
#
|
||
# This variable is cached and may be configured if needed.
|
||
#
|
||
# .. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
|
||
#
|
||
# The path to "repogen" command line client.
|
||
#
|
||
# This variable is cached and may be configured if needed.
|
||
#
|
||
# .. variable:: CPACK_IFW_INSTALLERBASE_EXECUTABLE
|
||
#
|
||
# The path to "installerbase" installer executable base.
|
||
#
|
||
# This variable is cached and may be configured if needed.
|
||
#
|
||
# .. variable:: CPACK_IFW_DEVTOOL_EXECUTABLE
|
||
#
|
||
# The path to "devtool" command line client.
|
||
#
|
||
# This variable is cached and may be configured if needed.
|
||
#
|
||
# Commands
|
||
# ^^^^^^^^^
|
||
#
|
||
# The module defines the following commands:
|
||
#
|
||
# .. command:: cpack_ifw_configure_component
|
||
#
|
||
# Sets the arguments specific to the CPack IFW generator.
|
||
#
|
||
# ::
|
||
#
|
||
# 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> ...])
|
||
#
|
||
# This command should be called after :command:`cpack_add_component` command.
|
||
#
|
||
# ``COMMON``
|
||
# if set, then the component will be packaged and installed as part
|
||
# of a group to which it belongs.
|
||
#
|
||
# ``ESSENTIAL``
|
||
# if set, then the package manager stays disabled until that
|
||
# component is updated.
|
||
#
|
||
# ``VIRTUAL``
|
||
# if set, then the component will be hidden from the installer.
|
||
# It is a equivalent of the ``HIDDEN`` option from the
|
||
# :command:`cpack_add_component` command.
|
||
#
|
||
# ``FORCED_INSTALLATION``
|
||
# if set, then the component must always be installed.
|
||
# It is a equivalent of the ``REQUARED`` option from the
|
||
# :command:`cpack_add_component` command.
|
||
#
|
||
# ``REQUIRES_ADMIN_RIGHTS``
|
||
# set it if the component needs to be installed with elevated permissions.
|
||
#
|
||
# ``NAME``
|
||
# is used to create domain-like identification for this component.
|
||
# By default used origin component name.
|
||
#
|
||
# ``DISPLAY_NAME``
|
||
# set to rewrite original name configured by
|
||
# :command:`cpack_add_component` command.
|
||
#
|
||
# ``DESCRIPTION``
|
||
# set to rewrite original description configured by
|
||
# :command:`cpack_add_component` command.
|
||
#
|
||
# ``UPDATE_TEXT``
|
||
# will be added to the component description if this is an update to
|
||
# the component.
|
||
#
|
||
# ``VERSION``
|
||
# is version of component.
|
||
# By default used :variable:`CPACK_PACKAGE_VERSION`.
|
||
#
|
||
# ``RELEASE_DATE``
|
||
# keep empty to auto generate.
|
||
#
|
||
# ``SCRIPT``
|
||
# is a relative or absolute path to operations script
|
||
# for this component.
|
||
#
|
||
# ``PRIORITY`` | ``SORTING_PRIORITY``
|
||
# is priority of the component in the tree.
|
||
# The ``PRIORITY`` option is deprecated and will be removed in a future
|
||
# version of CMake. Please use ``SORTING_PRIORITY`` option instead.
|
||
#
|
||
# ``DEPENDS`` | ``DEPENDENCIES``
|
||
# list of dependency component or component group identifiers in
|
||
# QtIFW_ style.
|
||
#
|
||
# ``AUTO_DEPEND_ON``
|
||
# list of identifiers of component or component group in QtIFW_ style
|
||
# that this component has an automatic dependency on.
|
||
#
|
||
# ``LICENSES``
|
||
# pair of <display_name> and <file_path> of license text for this
|
||
# component. You can specify more then one license.
|
||
#
|
||
# ``DEFAULT``
|
||
# Possible values are: TRUE, FALSE, and SCRIPT.
|
||
# Set to FALSE to disable the component in the installer or to SCRIPT
|
||
# to resolved during runtime (don't forget add the file of the script
|
||
# as a value of the ``SCRIPT`` option).
|
||
#
|
||
# ``USER_INTERFACES``
|
||
# is a list of <file_path> ('.ui' files) representing pages to load.
|
||
#
|
||
# ``TRANSLATIONS``
|
||
# is a list of <file_path> ('.qm' files) representing translations to load.
|
||
#
|
||
#
|
||
# .. command:: cpack_ifw_configure_component_group
|
||
#
|
||
# Sets the arguments specific to the CPack IFW generator.
|
||
#
|
||
# ::
|
||
#
|
||
# 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> ...])
|
||
#
|
||
# This command should be called after :command:`cpack_add_component_group`
|
||
# command.
|
||
#
|
||
# ``VIRTUAL``
|
||
# if set, then the group will be hidden from the installer.
|
||
# Note that setting this on a root component does not work.
|
||
#
|
||
# ``FORCED_INSTALLATION``
|
||
# if set, then the group must always be installed.
|
||
#
|
||
# ``REQUIRES_ADMIN_RIGHTS``
|
||
# set it if the component group needs to be installed with elevated
|
||
# permissions.
|
||
#
|
||
# ``NAME``
|
||
# is used to create domain-like identification for this component group.
|
||
# By default used origin component group name.
|
||
#
|
||
# ``DISPLAY_NAME``
|
||
# set to rewrite original name configured by
|
||
# :command:`cpack_add_component_group` command.
|
||
#
|
||
# ``DESCRIPTION``
|
||
# set to rewrite original description configured by
|
||
# :command:`cpack_add_component_group` command.
|
||
#
|
||
# ``UPDATE_TEXT``
|
||
# will be added to the component group description if this is an update to
|
||
# the component group.
|
||
#
|
||
# ``VERSION``
|
||
# is version of component group.
|
||
# By default used :variable:`CPACK_PACKAGE_VERSION`.
|
||
#
|
||
# ``RELEASE_DATE``
|
||
# keep empty to auto generate.
|
||
#
|
||
# ``SCRIPT``
|
||
# is a relative or absolute path to operations script
|
||
# for this component group.
|
||
#
|
||
# ``PRIORITY`` | ``SORTING_PRIORITY``
|
||
# is priority of the component group in the tree.
|
||
# The ``PRIORITY`` option is deprecated and will be removed in a future
|
||
# version of CMake. Please use ``SORTING_PRIORITY`` option instead.
|
||
#
|
||
# ``DEPENDS`` | ``DEPENDENCIES``
|
||
# list of dependency component or component group identifiers in
|
||
# QtIFW_ style.
|
||
#
|
||
# ``AUTO_DEPEND_ON``
|
||
# list of identifiers of component or component group in QtIFW_ style
|
||
# that this component group has an automatic dependency on.
|
||
#
|
||
# ``LICENSES``
|
||
# pair of <display_name> and <file_path> of license text for this
|
||
# component group. You can specify more then one license.
|
||
#
|
||
# ``DEFAULT``
|
||
# Possible values are: TRUE, FALSE, and SCRIPT.
|
||
# Set to TRUE to preselect the group in the installer
|
||
# (this takes effect only on groups that have no visible child components)
|
||
# or to SCRIPT to resolved during runtime (don't forget add the file of
|
||
# the script as a value of the ``SCRIPT`` option).
|
||
#
|
||
# ``USER_INTERFACES``
|
||
# is a list of <file_path> ('.ui' files) representing pages to load.
|
||
#
|
||
# ``TRANSLATIONS``
|
||
# is a list of <file_path> ('.qm' files) representing translations to load.
|
||
#
|
||
#
|
||
# .. command:: cpack_ifw_add_repository
|
||
#
|
||
# Add QtIFW_ specific remote repository to binary installer.
|
||
#
|
||
# ::
|
||
#
|
||
# cpack_ifw_add_repository(<reponame> [DISABLED]
|
||
# URL <url>
|
||
# [USERNAME <username>]
|
||
# [PASSWORD <password>]
|
||
# [DISPLAY_NAME <display_name>])
|
||
#
|
||
# This command will also add the <reponame> repository
|
||
# to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
|
||
#
|
||
# ``DISABLED``
|
||
# if set, then the repository will be disabled by default.
|
||
#
|
||
# ``URL``
|
||
# is points to a list of available components.
|
||
#
|
||
# ``USERNAME``
|
||
# is used as user on a protected repository.
|
||
#
|
||
# ``PASSWORD``
|
||
# is password to use on a protected repository.
|
||
#
|
||
# ``DISPLAY_NAME``
|
||
# is string to display instead of the URL.
|
||
#
|
||
#
|
||
# .. command:: cpack_ifw_update_repository
|
||
#
|
||
# Update QtIFW_ specific repository from remote repository.
|
||
#
|
||
# ::
|
||
#
|
||
# 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>])
|
||
#
|
||
# This command will also add the <reponame> repository
|
||
# to a variable :variable:`CPACK_IFW_REPOSITORIES_ALL`.
|
||
#
|
||
# ``URL``
|
||
# is points to a list of available components.
|
||
#
|
||
# ``OLD_URL``
|
||
# is points to a list that will replaced.
|
||
#
|
||
# ``NEW_URL``
|
||
# is points to a list that will replace to.
|
||
#
|
||
# ``USERNAME``
|
||
# is used as user on a protected repository.
|
||
#
|
||
# ``PASSWORD``
|
||
# is password to use on a protected repository.
|
||
#
|
||
# ``DISPLAY_NAME``
|
||
# is string to display instead of the URL.
|
||
#
|
||
#
|
||
# .. command:: cpack_ifw_add_package_resources
|
||
#
|
||
# Add additional resources in the installer binary.
|
||
#
|
||
# ::
|
||
#
|
||
# cpack_ifw_add_package_resources(<file_path> <file_path> ...)
|
||
#
|
||
# This command will also add the specified files
|
||
# to a variable :variable:`CPACK_IFW_PACKAGE_RESOURCES`.
|
||
#
|
||
#
|
||
# Example usage
|
||
# ^^^^^^^^^^^^^
|
||
#
|
||
# .. code-block:: cmake
|
||
#
|
||
# 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")
|
||
#
|
||
#
|
||
# Online installer
|
||
# ^^^^^^^^^^^^^^^^
|
||
#
|
||
# By default CPack IFW generator makes offline installer. This means that all
|
||
# components will be packaged into a binary file.
|
||
#
|
||
# To make a component downloaded, you must set the ``DOWNLOADED`` option in
|
||
# :command:`cpack_add_component`.
|
||
#
|
||
# Then you would use the command :command:`cpack_configure_downloads`.
|
||
# If you set ``ALL`` option all components will be downloaded.
|
||
#
|
||
# You also can use command :command:`cpack_ifw_add_repository` and
|
||
# variable :variable:`CPACK_IFW_DOWNLOAD_ALL` for more specific configuration.
|
||
#
|
||
# CPack IFW generator creates "repository" dir in current binary dir. You
|
||
# would copy content of this dir to specified ``site`` (``url``).
|
||
#
|
||
# See Also
|
||
# ^^^^^^^^
|
||
#
|
||
# Qt Installer Framework Manual:
|
||
#
|
||
# * Index page:
|
||
# http://doc.qt.io/qtinstallerframework/index.html
|
||
#
|
||
# * Component Scripting:
|
||
# http://doc.qt.io/qtinstallerframework/scripting.html
|
||
#
|
||
# * Predefined Variables:
|
||
# http://doc.qt.io/qtinstallerframework/scripting.html#predefined-variables
|
||
#
|
||
# * Promoting Updates:
|
||
# http://doc.qt.io/qtinstallerframework/ifw-updates.html
|
||
#
|
||
# Download Qt Installer Framework for you platform from Qt site:
|
||
# http://download.qt.io/official_releases/qt-installer-framework
|
||
#
|
||
|
||
#=============================================================================
|
||
# Search Qt Installer Framework tools
|
||
#=============================================================================
|
||
|
||
# Default path
|
||
|
||
foreach(_CPACK_IFW_PATH_VAR "CPACK_IFW_ROOT" "QTIFWDIR" "QTDIR")
|
||
if(DEFINED ${_CPACK_IFW_PATH_VAR}
|
||
AND NOT "${${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
|
||
list(APPEND _CPACK_IFW_PATHS "${${_CPACK_IFW_PATH_VAR}}")
|
||
endif()
|
||
if(NOT "$ENV{${_CPACK_IFW_PATH_VAR}}" STREQUAL "")
|
||
list(APPEND _CPACK_IFW_PATHS "$ENV{${_CPACK_IFW_PATH_VAR}}")
|
||
endif()
|
||
endforeach()
|
||
if(WIN32)
|
||
list(APPEND _CPACK_IFW_PATHS
|
||
"$ENV{HOMEDRIVE}/Qt"
|
||
"C:/Qt")
|
||
else()
|
||
list(APPEND _CPACK_IFW_PATHS
|
||
"$ENV{HOME}/Qt"
|
||
"/opt/Qt")
|
||
endif()
|
||
list(REMOVE_DUPLICATES _CPACK_IFW_PATHS)
|
||
|
||
set(_CPACK_IFW_PREFIXES
|
||
# QtSDK
|
||
"Tools/QtInstallerFramework/"
|
||
# Second branch
|
||
"QtIFW"
|
||
# First branch
|
||
"QtIFW-")
|
||
|
||
set(_CPACK_IFW_VERSIONS
|
||
"3.1"
|
||
"3.1.0"
|
||
"3.0"
|
||
"3.0.0"
|
||
"2.3"
|
||
"2.3.0"
|
||
"2.2"
|
||
"2.2.0"
|
||
"2.1"
|
||
"2.1.0"
|
||
"2.0"
|
||
"2.0.5"
|
||
"2.0.3"
|
||
"2.0.2"
|
||
"2.0.1"
|
||
"2.0.0"
|
||
"1.6"
|
||
"1.6.0"
|
||
"1.5"
|
||
"1.5.0"
|
||
"1.4"
|
||
"1.4.0"
|
||
"1.3"
|
||
"1.3.0")
|
||
|
||
set(_CPACK_IFW_SUFFIXES "bin")
|
||
foreach(_CPACK_IFW_PREFIX ${_CPACK_IFW_PREFIXES})
|
||
foreach(_CPACK_IFW_VERSION ${_CPACK_IFW_VERSIONS})
|
||
list(APPEND
|
||
_CPACK_IFW_SUFFIXES "${_CPACK_IFW_PREFIX}${_CPACK_IFW_VERSION}/bin")
|
||
endforeach()
|
||
endforeach()
|
||
|
||
# Look for 'binarycreator'
|
||
|
||
find_program(CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
||
NAMES binarycreator
|
||
PATHS ${_CPACK_IFW_PATHS}
|
||
PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
|
||
DOC "QtIFW binarycreator command line client")
|
||
|
||
mark_as_advanced(CPACK_IFW_BINARYCREATOR_EXECUTABLE)
|
||
|
||
# Look for 'repogen'
|
||
|
||
find_program(CPACK_IFW_REPOGEN_EXECUTABLE
|
||
NAMES repogen
|
||
PATHS ${_CPACK_IFW_PATHS}
|
||
PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
|
||
DOC "QtIFW repogen command line client"
|
||
)
|
||
mark_as_advanced(CPACK_IFW_REPOGEN_EXECUTABLE)
|
||
|
||
# Look for 'installerbase'
|
||
|
||
find_program(CPACK_IFW_INSTALLERBASE_EXECUTABLE
|
||
NAMES installerbase
|
||
PATHS ${_CPACK_IFW_PATHS}
|
||
PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
|
||
DOC "QtIFW installer executable base"
|
||
)
|
||
mark_as_advanced(CPACK_IFW_INSTALLERBASE_EXECUTABLE)
|
||
|
||
# Look for 'devtool' (appeared in the second branch)
|
||
|
||
find_program(CPACK_IFW_DEVTOOL_EXECUTABLE
|
||
NAMES devtool
|
||
PATHS ${_CPACK_IFW_PATHS}
|
||
PATH_SUFFIXES ${_CPACK_IFW_SUFFIXES}
|
||
DOC "QtIFW devtool command line client"
|
||
)
|
||
mark_as_advanced(CPACK_IFW_DEVTOOL_EXECUTABLE)
|
||
|
||
#
|
||
## Next code is included only once
|
||
#
|
||
|
||
if(NOT CPackIFW_CMake_INCLUDED)
|
||
set(CPackIFW_CMake_INCLUDED 1)
|
||
|
||
#=============================================================================
|
||
# Framework version
|
||
#=============================================================================
|
||
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_FORCED ""
|
||
CACHE STRING "The forced version of used QtIFW tools")
|
||
mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT 1
|
||
CACHE STRING "The timeout to return QtIFW framework version string from \"installerbase\" executable")
|
||
mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT)
|
||
if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||
set(CPACK_IFW_FRAMEWORK_VERSION)
|
||
# Invoke version from "installerbase" executable
|
||
foreach(_ifw_version_argument --framework-version --version)
|
||
if(NOT CPACK_IFW_FRAMEWORK_VERSION)
|
||
execute_process(COMMAND
|
||
"${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" ${_ifw_version_argument}
|
||
TIMEOUT ${CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT}
|
||
RESULT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_RESULT
|
||
OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_OUTPUT
|
||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||
ENCODING UTF8)
|
||
if(NOT CPACK_IFW_FRAMEWORK_VERSION_RESULT AND CPACK_IFW_FRAMEWORK_VERSION_OUTPUT)
|
||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
|
||
CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION_OUTPUT}")
|
||
if(CPACK_IFW_FRAMEWORK_VERSION)
|
||
if("${_ifw_version_argument}" STREQUAL "--framework-version")
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
|
||
elseif("${_ifw_version_argument}" STREQUAL "--version")
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
|
||
endif()
|
||
endif()
|
||
endif()
|
||
endif()
|
||
endforeach()
|
||
# Finaly try to get version from executable path
|
||
if(NOT CPACK_IFW_FRAMEWORK_VERSION)
|
||
string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
|
||
CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}")
|
||
if(CPACK_IFW_FRAMEWORK_VERSION)
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_PATH")
|
||
endif()
|
||
endif()
|
||
elseif(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||
set(CPACK_IFW_FRAMEWORK_VERSION ${CPACK_IFW_FRAMEWORK_VERSION_FORCED})
|
||
set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "FORCED")
|
||
endif()
|
||
if(CPACK_IFW_VERBOSE)
|
||
if(CPACK_IFW_FRAMEWORK_VERSION AND CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||
message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} (forced) version")
|
||
elseif(CPACK_IFW_FRAMEWORK_VERSION)
|
||
message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
|
||
endif()
|
||
endif()
|
||
if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION)
|
||
message(WARNING "Could not detect QtIFW tools version. Set used version to variable \"CPACK_IFW_FRAMEWORK_VERSION_FORCED\" manualy.")
|
||
endif()
|
||
|
||
#=============================================================================
|
||
# Macro definition
|
||
#=============================================================================
|
||
|
||
# Macro definition based on CPackComponent
|
||
|
||
if(NOT CPackComponent_CMake_INCLUDED)
|
||
include(CPackComponent)
|
||
endif()
|
||
|
||
# Resolve full filename for script file
|
||
macro(_cpack_ifw_resolve_script _variable)
|
||
set(_ifw_script_macro ${_variable})
|
||
set(_ifw_script_file ${${_ifw_script_macro}})
|
||
if(DEFINED ${_ifw_script_macro})
|
||
get_filename_component(${_ifw_script_macro} ${_ifw_script_file} ABSOLUTE)
|
||
set(_ifw_script_file ${${_ifw_script_macro}})
|
||
if(NOT EXISTS ${_ifw_script_file})
|
||
message(WARNING "CPack IFW: script file \"${_ifw_script_file}\" is not exists")
|
||
set(${_ifw_script_macro})
|
||
endif()
|
||
endif()
|
||
endmacro()
|
||
|
||
# Resolve full path to lisense file
|
||
macro(_cpack_ifw_resolve_lisenses _variable)
|
||
if(${_variable})
|
||
set(_ifw_license_file FALSE)
|
||
set(_ifw_licenses_fix)
|
||
foreach(_ifw_licenses_arg ${${_variable}})
|
||
if(_ifw_license_file)
|
||
get_filename_component(_ifw_licenses_arg "${_ifw_licenses_arg}" ABSOLUTE)
|
||
set(_ifw_license_file FALSE)
|
||
else()
|
||
set(_ifw_license_file TRUE)
|
||
endif()
|
||
list(APPEND _ifw_licenses_fix "${_ifw_licenses_arg}")
|
||
endforeach(_ifw_licenses_arg)
|
||
set(${_variable} "${_ifw_licenses_fix}")
|
||
endif()
|
||
endmacro()
|
||
|
||
# Resolve full path to a list of provided files
|
||
macro(_cpack_ifw_resolve_file_list _variable)
|
||
if(${_variable})
|
||
set(_ifw_list_fix)
|
||
foreach(_ifw_file_arg ${${_variable}})
|
||
get_filename_component(_ifw_file_arg "${_ifw_file_arg}" ABSOLUTE)
|
||
if(EXISTS ${_ifw_file_arg})
|
||
list(APPEND _ifw_list_fix "${_ifw_file_arg}")
|
||
else()
|
||
message(WARNING "CPack IFW: page file \"${_ifw_file_arg}\" does not exist. Skipping")
|
||
endif()
|
||
endforeach(_ifw_file_arg)
|
||
set(${_variable} "${_ifw_list_fix}")
|
||
endif()
|
||
endmacro()
|
||
|
||
# Macro for configure component
|
||
macro(cpack_ifw_configure_component compname)
|
||
|
||
string(TOUPPER ${compname} _CPACK_IFWCOMP_UNAME)
|
||
|
||
set(_IFW_OPT COMMON ESSENTIAL VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
|
||
set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
|
||
set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS)
|
||
cmake_parse_arguments(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||
|
||
_cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
|
||
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_LICENSES)
|
||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_USER_INTERFACES)
|
||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_TRANSLATIONS)
|
||
|
||
set(_CPACK_IFWCOMP_STR "\n# Configuration for IFW component \"${compname}\"\n")
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_OPT})
|
||
cpack_append_option_set_command(
|
||
CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWCOMP_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_ARGS})
|
||
cpack_append_string_variable_set_command(
|
||
CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWCOMP_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
|
||
cpack_append_list_variable_set_command(
|
||
CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWCOMP_STR)
|
||
endforeach()
|
||
|
||
if(CPack_CMake_INCLUDED)
|
||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWCOMP_STR}")
|
||
endif()
|
||
|
||
endmacro()
|
||
|
||
# Macro for configure group
|
||
macro(cpack_ifw_configure_component_group grpname)
|
||
|
||
string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
|
||
|
||
set(_IFW_OPT VIRTUAL FORCED_INSTALLATION REQUIRES_ADMIN_RIGHTS)
|
||
set(_IFW_ARGS NAME VERSION RELEASE_DATE SCRIPT PRIORITY SORTING_PRIORITY UPDATE_TEXT DEFAULT)
|
||
set(_IFW_MULTI_ARGS DISPLAY_NAME DESCRIPTION DEPENDS DEPENDENCIES AUTO_DEPEND_ON LICENSES USER_INTERFACES TRANSLATIONS)
|
||
cmake_parse_arguments(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||
|
||
_cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_SCRIPT)
|
||
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_LICENSES)
|
||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_USER_INTERFACES)
|
||
_cpack_ifw_resolve_file_list(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_TRANSLATIONS)
|
||
|
||
set(_CPACK_IFWGRP_STR "\n# Configuration for IFW component group \"${grpname}\"\n")
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_ARGS})
|
||
cpack_append_string_variable_set_command(
|
||
CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWGRP_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
|
||
cpack_append_list_variable_set_command(
|
||
CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWGRP_STR)
|
||
endforeach()
|
||
|
||
if(CPack_CMake_INCLUDED)
|
||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWGRP_STR}")
|
||
endif()
|
||
endmacro()
|
||
|
||
# Macro for adding repository
|
||
macro(cpack_ifw_add_repository reponame)
|
||
|
||
string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
|
||
|
||
set(_IFW_OPT DISABLED)
|
||
set(_IFW_ARGS URL USERNAME PASSWORD DISPLAY_NAME)
|
||
set(_IFW_MULTI_ARGS)
|
||
cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||
|
||
set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\"\n")
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_OPT})
|
||
cpack_append_option_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_ARGS})
|
||
cpack_append_string_variable_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
|
||
cpack_append_variable_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
|
||
string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
|
||
|
||
if(CPack_CMake_INCLUDED)
|
||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
|
||
endif()
|
||
|
||
endmacro()
|
||
|
||
# Macro for updating repository
|
||
macro(cpack_ifw_update_repository reponame)
|
||
|
||
string(TOUPPER ${reponame} _CPACK_IFWREPO_UNAME)
|
||
|
||
set(_IFW_OPT ADD REMOVE REPLACE DISABLED)
|
||
set(_IFW_ARGS URL OLD_URL NEW_URL USERNAME PASSWORD DISPLAY_NAME)
|
||
set(_IFW_MULTI_ARGS)
|
||
cmake_parse_arguments(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
|
||
|
||
set(_CPACK_IFWREPO_STR "\n# Configuration for IFW repository \"${reponame}\" update\n")
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_OPT})
|
||
cpack_append_option_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_ARGS})
|
||
cpack_append_string_variable_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
|
||
cpack_append_variable_set_command(
|
||
CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_${_IFW_ARG_NAME}
|
||
_CPACK_IFWREPO_STR)
|
||
endforeach()
|
||
|
||
if(CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_ADD
|
||
OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REMOVE
|
||
OR CPACK_IFW_REPOSITORY_${_CPACK_IFWREPO_UNAME}_REPLACE)
|
||
list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})
|
||
string(APPEND _CPACK_IFWREPO_STR "list(APPEND CPACK_IFW_REPOSITORIES_ALL ${reponame})\n")
|
||
else()
|
||
set(_CPACK_IFWREPO_STR)
|
||
endif()
|
||
|
||
if(CPack_CMake_INCLUDED AND _CPACK_IFWREPO_STR)
|
||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWREPO_STR}")
|
||
endif()
|
||
|
||
endmacro()
|
||
|
||
# Macro for adding resources
|
||
macro(cpack_ifw_add_package_resources)
|
||
set(_CPACK_IFW_PACKAGE_RESOURCES ${ARGV})
|
||
_cpack_ifw_resolve_file_list(_CPACK_IFW_PACKAGE_RESOURCES)
|
||
list(APPEND CPACK_IFW_PACKAGE_RESOURCES ${_CPACK_IFW_PACKAGE_RESOURCES})
|
||
set(_CPACK_IFWQRC_STR "list(APPEND CPACK_IFW_PACKAGE_RESOURCES \"${_CPACK_IFW_PACKAGE_RESOURCES}\")\n")
|
||
if(CPack_CMake_INCLUDED)
|
||
file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_IFWQRC_STR}")
|
||
endif()
|
||
endmacro()
|
||
|
||
# Resolve package control script
|
||
_cpack_ifw_resolve_script(CPACK_IFW_PACKAGE_CONTROL_SCRIPT)
|
||
|
||
endif() # NOT CPackIFW_CMake_INCLUDED
|