Merge topic 'cpackifw-package-remove-target-dir'

739ae1d0 CPack/IFW: Add option to control deletion of the install directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1591
This commit is contained in:
Brad King 2017-12-21 13:01:27 +00:00 committed by Kitware Robot
commit 4148435993
4 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,6 @@
cpackifw-package-remove-target-dir
----------------------------------
* The :module:`CPackIFW` module gained new
:variable:`CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR` variable to control
if the target directory should not be deleted when uninstalling.

View File

@ -191,6 +191,12 @@
#
# 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.

View File

@ -93,6 +93,15 @@ void cmCPackIFWInstaller::ConfigureFromOptions()
}
}
// RemoveTargetDir
if (this->IsSetToOff("CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR")) {
this->RemoveTargetDir = "false";
} else if (this->IsOn("CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR")) {
this->RemoveTargetDir = "true";
} else {
this->RemoveTargetDir.clear();
}
// Logo
if (const char* option = this->GetOption("CPACK_IFW_PACKAGE_LOGO")) {
if (cmSystemTools::FileExists(option)) {
@ -422,6 +431,10 @@ void cmCPackIFWInstaller::GenerateInstallerFile()
xout.Element("MaintenanceToolIniFile", this->MaintenanceToolIniFile);
}
if (!this->RemoveTargetDir.empty()) {
xout.Element("RemoveTargetDir", this->RemoveTargetDir);
}
// Different allows
if (this->IsVersionLess("2.0")) {
// CPack IFW default policy

View File

@ -99,6 +99,10 @@ public:
/// Set to true if the installation path can contain non-ASCII characters
std::string AllowNonAsciiCharacters;
/// Set to false if the target directory should not be deleted when
/// uninstalling
std::string RemoveTargetDir;
/// Set to false if the installation path cannot contain space characters
std::string AllowSpaceInPath;