Commit 2a2829cc authored by Kyle Edwards's avatar Kyle Edwards

Help: Add new section for CPack generators

The documentation for CPack generators previously lived in their
respective internal CMake modules. This setup was misleading,
because it implied that you should include the modules in your own
code, which is not the case. Moving the documentation into a
separate section does a better job of hiding the internal modules,
which are just an implementation detail. The generator documentation
has also been modified to remove any references to the module name.

The CPackIFW module is a special exception: since it has user-facing
macros, the documentation for these macros has been kept in the module
page, while all other documentation related to the IFW generator has
been moved into the new section.

To make it easier to find the new documentation, the old help pages
for the CPack*.cmake modules have not been deleted, but have been
replaced with a link to their respective help page in the new
documentation section.
parent be626780
CPack Archive Generator
-----------------------
Archive CPack generator that supports packaging of sources and binaries in
different formats:
- 7Z - 7zip - (.7z)
- TBZ2 (.tar.bz2)
- TGZ (.tar.gz)
- TXZ (.tar.xz)
- TZ (.tar.Z)
- ZIP (.zip)
Variables specific to CPack Archive generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. variable:: CPACK_ARCHIVE_FILE_NAME
CPACK_ARCHIVE_<component>_FILE_NAME
Package file name without extension which is added automatically depending
on the archive format.
* Mandatory : YES
* Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].<extension>`` with
spaces replaced by '-'
.. variable:: CPACK_ARCHIVE_COMPONENT_INSTALL
Enable component packaging for CPackArchive
* Mandatory : NO
* Default : OFF
If enabled (ON) multiple packages are generated. By default a single package
containing files of all components is generated.
CPack Bundle Generator
----------------------
CPack Bundle generator (Mac OS X) specific options
Variables specific to CPack Bundle generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Installers built on Mac OS X using the Bundle generator use the
aforementioned DragNDrop (CPACK_DMG_xxx) variables, plus the following
Bundle-specific parameters (CPACK_BUNDLE_xxx).
.. variable:: CPACK_BUNDLE_NAME
The name of the generated bundle. This appears in the OSX finder as the
bundle name. Required.
.. variable:: CPACK_BUNDLE_PLIST
Path to an OSX plist file that will be used for the generated bundle. This
assumes that the caller has generated or specified their own Info.plist
file. Required.
.. variable:: CPACK_BUNDLE_ICON
Path to an OSX icon file that will be used as the icon for the generated
bundle. This is the icon that appears in the OSX finder for the bundle, and
in the OSX dock when the bundle is opened. Required.
.. variable:: CPACK_BUNDLE_STARTUP_COMMAND
Path to a startup script. This is a path to an executable or script that
will be run whenever an end-user double-clicks the generated bundle in the
OSX Finder. Optional.
.. variable:: CPACK_BUNDLE_APPLE_CERT_APP
The name of your Apple supplied code signing certificate for the application.
The name usually takes the form "Developer ID Application: [Name]" or
"3rd Party Mac Developer Application: [Name]". If this variable is not set
the application will not be signed.
.. variable:: CPACK_BUNDLE_APPLE_ENTITLEMENTS
The name of the plist file that contains your apple entitlements for sandboxing
your application. This file is required for submission to the Mac App Store.
.. variable:: CPACK_BUNDLE_APPLE_CODESIGN_FILES
A list of additional files that you wish to be signed. You do not need to
list the main application folder, or the main executable. You should
list any frameworks and plugins that are included in your app bundle.
.. variable:: CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER
Additional parameter that will passed to codesign.
Default value: "--deep -f"
.. variable:: CPACK_COMMAND_CODESIGN
Path to the codesign(1) command used to sign applications with an
Apple cert. This variable can be used to override the automatically
detected command (or specify its location if the auto-detection fails
to find it.)
CPack Cygwin Generator
----------------------
Cygwin CPack generator (Cygwin).
Variables specific to CPack Cygwin generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The
following variable is specific to installers build on and/or for
Cygwin:
.. variable:: CPACK_CYGWIN_PATCH_NUMBER
The Cygwin patch number. FIXME: This documentation is incomplete.
.. variable:: CPACK_CYGWIN_PATCH_FILE
The Cygwin patch file. FIXME: This documentation is incomplete.
.. variable:: CPACK_CYGWIN_BUILD_SCRIPT
The Cygwin build script. FIXME: This documentation is incomplete.
This diff is collapsed.
CPack DMG Generator
-------------------
DragNDrop CPack generator (Mac OS X).
Variables specific to CPack DragNDrop generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following variables are specific to the DragNDrop installers built
on Mac OS X:
.. variable:: CPACK_DMG_VOLUME_NAME
The volume name of the generated disk image. Defaults to
CPACK_PACKAGE_FILE_NAME.
.. variable:: CPACK_DMG_FORMAT
The disk image format. Common values are UDRO (UDIF read-only), UDZO (UDIF
zlib-compressed) or UDBZ (UDIF bzip2-compressed). Refer to hdiutil(1) for
more information on other available formats. Defaults to UDZO.
.. variable:: CPACK_DMG_DS_STORE
Path to a custom DS_Store file. This .DS_Store file e.g. can be used to
specify the Finder window position/geometry and layout (such as hidden
toolbars, placement of the icons etc.). This file has to be generated by
the Finder (either manually or through AppleScript) using a normal folder
from which the .DS_Store file can then be extracted.
.. variable:: CPACK_DMG_DS_STORE_SETUP_SCRIPT
Path to a custom AppleScript file. This AppleScript is used to generate
a .DS_Store file which specifies the Finder window position/geometry and
layout (such as hidden toolbars, placement of the icons etc.).
By specifying a custom AppleScript there is no need to use
CPACK_DMG_DS_STORE, as the .DS_Store that is generated by the AppleScript
will be packaged.
.. variable:: CPACK_DMG_BACKGROUND_IMAGE
Path to an image file to be used as the background. This file will be
copied to .background/background.<ext>, where ext is the original image file
extension. The background image is installed into the image before
CPACK_DMG_DS_STORE_SETUP_SCRIPT is executed or CPACK_DMG_DS_STORE is
installed. By default no background image is set.
.. variable:: CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK
Default behaviour is to include a symlink to ``/Applications`` in the DMG.
Set this option to ``ON`` to avoid adding the symlink.
.. variable:: CPACK_DMG_SLA_DIR
Directory where license and menu files for different languages are stored.
Setting this causes CPack to look for a ``<language>.menu.txt`` and
``<language>.license.txt`` file for every language defined in
``CPACK_DMG_SLA_LANGUAGES``. If both this variable and
``CPACK_RESOURCE_FILE_LICENSE`` are set, CPack will only look for the menu
files and use the same license file for all languages.
.. variable:: CPACK_DMG_SLA_LANGUAGES
Languages for which a license agreement is provided when mounting the
generated DMG. A menu file consists of 9 lines of text. The first line is
is the name of the language itself, uppercase, in English (e.g. German).
The other lines are translations of the following strings:
- Agree
- Disagree
- Print
- Save...
- You agree to the terms of the License Agreement when you click the
"Agree" button.
- Software License Agreement
- This text cannot be saved. The disk may be full or locked, or the file
may be locked.
- Unable to print. Make sure you have selected a printer.
For every language in this list, CPack will try to find files
``<language>.menu.txt`` and ``<language>.license.txt`` in the directory
specified by the :variable:`CPACK_DMG_SLA_DIR` variable.
.. variable:: CPACK_COMMAND_HDIUTIL
Path to the hdiutil(1) command used to operate on disk image files on Mac
OS X. This variable can be used to override the automatically detected
command (or specify its location if the auto-detection fails to find it.)
.. variable:: CPACK_COMMAND_SETFILE
Path to the SetFile(1) command used to set extended attributes on files and
directories on Mac OS X. This variable can be used to override the
automatically detected command (or specify its location if the
auto-detection fails to find it.)
.. variable:: CPACK_COMMAND_REZ
Path to the Rez(1) command used to compile resources on Mac OS X. This
variable can be used to override the automatically detected command (or
specify its location if the auto-detection fails to find it.)
CPack FreeBSD Generator
-----------------------
The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
Variables specific to CPack FreeBSD (pkg) generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The CPack FreeBSD generator may be used to create pkg(8) packages -- these may
be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD, but also on Linux or OSX,
depending on the installed package-management tools -- using :module:`CPack`.
The CPack FreeBSD generator is a :module:`CPack` generator and uses the
``CPACK_XXX`` variables used by :module:`CPack`. It tries to re-use packaging
information that may already be specified for Debian packages for the
:cpack_gen:`CPack Deb Generator`. It also tries to re-use RPM packaging
information when Debian does not specify.
The CPack FreeBSD generator should work on any host with libpkg installed. The
packages it produces are specific to the host architecture and ABI.
The CPack FreeBSD generator sets package-metadata through
:code:`CPACK_FREEBSD_XXX` variables. The CPack FreeBSD generator, unlike the
CPack Deb generator, does not specially support componentized packages; a
single package is created from all the software artifacts created through
CMake.
All of the variables can be set specifically for FreeBSD packaging in
the CPackConfig file or in CMakeLists.txt, but most of them have defaults
that use general settings (e.g. CMAKE_PROJECT_NAME) or Debian-specific
variables when those make sense (e.g. the homepage of an upstream project
is usually unchanged by the flavor of packaging). When there is no Debian
information to fall back on, but the RPM packaging has it, fall back to
the RPM information (e.g. package license).
.. variable:: CPACK_FREEBSD_PACKAGE_NAME
Sets the package name (in the package manifest, but also affects the
output filename).
* Mandatory: YES
* Default:
- :variable:`CPACK_PACKAGE_NAME` (this is always set by CPack itself,
based on CMAKE_PROJECT_NAME).
.. variable:: CPACK_FREEBSD_PACKAGE_COMMENT
Sets the package comment. This is the short description displayed by
pkg(8) in standard "pkg info" output.
* Mandatory: YES
* Default:
- :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` (this is always set
by CPack itself, if nothing else sets it explicitly).
- :variable:`PROJECT_DESCRIPTION` (this can be set with the DESCRIPTION
parameter for :command:`project`).
.. variable:: CPACK_FREEBSD_PACKAGE_DESCRIPTION
Sets the package description. This is the long description of the package,
given by "pkg info" with a specific package as argument.
* Mandatory: YES
* Default:
- :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` (this may be set already
for Debian packaging, so we may as well re-use it).
.. variable:: CPACK_FREEBSD_PACKAGE_WWW
The URL of the web site for this package, preferably (when applicable) the
site from which the original source can be obtained and any additional
upstream documentation or information may be found.
* Mandatory: YES
* Default:
- :variable:`CMAKE_PROJECT_HOMEPAGE_URL`, or if that is not set,
:variable:`CPACK_DEBIAN_PACKAGE_HOMEPAGE` (this may be set already
for Debian packaging, so we may as well re-use it).
.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE
The license, or licenses, which apply to this software package. This must
be one or more license-identifiers that pkg recognizes as acceptable license
identifiers (e.g. "GPLv2").
* Mandatory: YES
* Default:
- :variable:`CPACK_RPM_PACKAGE_LICENSE`
.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
This variable is only of importance if there is more than one license.
The default is "single", which is only applicable to a single license.
Other acceptable values are determined by pkg -- those are "dual" or "multi" --
meaning choice (OR) or simultaneous (AND) application of the licenses.
* Mandatory: NO
* Default: single
.. variable:: CPACK_FREEBSD_PACKAGE_MAINTAINER
The FreeBSD maintainer (e.g. kde@freebsd.org) of this package.
* Mandatory: YES
* Default: none
.. variable:: CPACK_FREEBSD_PACKAGE_ORIGIN
The origin (ports label) of this package; for packages built by CPack
outside of the ports system this is of less importance. The default
puts the package somewhere under misc/, as a stopgap.
* Mandatory: YES
* Default: misc/<package name>
.. variable:: CPACK_FREEBSD_PACKAGE_CATEGORIES
The ports categories where this package lives (if it were to be built
from ports). If none is set a single category is determined based on
the package origin.
* Mandatory: YES
* Default: derived from ORIGIN
.. variable:: CPACK_FREEBSD_PACKAGE_DEPS
A list of package origins that should be added as package dependencies.
These are in the form <category>/<packagename>, e.g. x11/libkonq.
No version information needs to be provided (this is not included
in the manifest).
* Mandatory: NO
* Default: empty
CPack IFW Generator
-------------------
See :module:`CPackIFW` for details on the CPackIFW module.
.. _QtIFW: http://doc.qt.io/qtinstallerframework/index.html
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_REMOVE_TARGET_DIR
Set to ``OFF`` if the target directory should not be deleted when uninstalling.
Is ``ON`` by default
.. 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_PACKAGE_FILE_EXTENSION
The target binary extension.
On Linux, the name of the target binary is automatically extended with
'.run', if you do not specify the extension.
On Windows, the target is created as an application with the extension
'.exe', which is automatically added, if not supplied.
On Mac, the target is created as an DMG disk image with the extension
'.dmg', which is automatically added, if not supplied.
.. 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.
.. variable:: CPACK_IFW_REPOSITORIES_DIRECTORIES
Additional prepared repository dirs that will be used to resolve and
repack dependent components. This feature available only
since QtIFW_ 3.1.
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.
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
CPack NSIS Generator
--------------------
CPack NSIS generator specific options
Variables specific to CPack NSIS generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following variables are specific to the graphical installers built
on Windows using the Nullsoft Installation System.
.. variable:: CPACK_NSIS_INSTALL_ROOT
The default installation directory presented to the end user by the NSIS
installer is under this root dir. The full directory presented to the end
user is: ${CPACK_NSIS_INSTALL_ROOT}/${CPACK_PACKAGE_INSTALL_DIRECTORY}
.. variable:: CPACK_NSIS_MUI_ICON
An icon filename. The name of a ``*.ico`` file used as the main icon for the
generated install program.
.. variable:: CPACK_NSIS_MUI_UNIICON
An icon filename. The name of a ``*.ico`` file used as the main icon for the
generated uninstall program.
.. variable:: CPACK_NSIS_INSTALLER_MUI_ICON_CODE
undocumented.
.. variable:: CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP
The filename of a bitmap to use as the NSIS MUI_WELCOMEFINISHPAGE_BITMAP.
.. variable:: CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP
The filename of a bitmap to use as the NSIS MUI_UNWELCOMEFINISHPAGE_BITMAP.
.. variable:: CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS
Extra NSIS commands that will be added to the beginning of the install
Section, before your install tree is available on the target system.
.. variable:: CPACK_NSIS_EXTRA_INSTALL_COMMANDS
Extra NSIS commands that will be added to the end of the install Section,
after your install tree is available on the target system.
.. variable:: CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
Extra NSIS commands that will be added to the uninstall Section, before
your install tree is removed from the target system.
.. variable:: CPACK_NSIS_COMPRESSOR
The arguments that will be passed to the NSIS SetCompressor command.
.. variable:: CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL
Ask about uninstalling previous versions first. If this is set to "ON",
then an installer will look for previous installed versions and if one is
found, ask the user whether to uninstall it before proceeding with the
install.
.. variable:: CPACK_NSIS_MODIFY_PATH
Modify PATH toggle. If this is set to "ON", then an extra page will appear