summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmCPackWIXGenerator.cxx
diff options
context:
space:
mode:
authorMichael Stürmer <michael.stuermer@schaeffler.com>2016-07-20 13:32:38 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2016-08-08 11:42:23 (GMT)
commit17bbf6af1ecca15194a693d31fdd8163aacfd994 (patch)
treec962a911d846f2cf6bf738315f80a9ba96ee22c5 /Source/CPack/WiX/cmCPackWIXGenerator.cxx
parent5a62e0c1721281503c8b4cd9d4d3d0de8abebf0f (diff)
downloadCMake-17bbf6af1ecca15194a693d31fdd8163aacfd994.zip
CMake-17bbf6af1ecca15194a693d31fdd8163aacfd994.tar.gz
CMake-17bbf6af1ecca15194a693d31fdd8163aacfd994.tar.bz2
CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
The new variable allows setting of a custom absolute installation prefix outside of the ProgramFiles folders.
Diffstat (limited to 'Source/CPack/WiX/cmCPackWIXGenerator.cxx')
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 3ecc14d..d7f69a1 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -18,6 +18,7 @@
#include <cmGeneratedFileStream.h>
#include <cmInstalledFile.h>
#include <cmSystemTools.h>
+#include <cmUuid.h>
#include "cmWIXDirectoriesSourceWriter.h"
#include "cmWIXFeaturesSourceWriter.h"
@@ -441,6 +442,11 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles()
cmWIXFilesSourceWriter fileDefinitions(this->Logger,
fileDefinitionsFilename);
+ // if install folder is supposed to be set absolutely, the default
+ // component guid "*" cannot be used
+ fileDefinitions.GenerateComponentGuids =
+ cmSystemTools::IsOn(GetOption("CPACK_WIX_SKIP_PROGRAM_FOLDER"));
+
fileDefinitions.BeginElement("Fragment");
std::string featureDefinitionsFilename =
@@ -566,6 +572,9 @@ bool cmCPackWIXGenerator::CreateWiXSourceFiles()
std::string cmCPackWIXGenerator::GetProgramFilesFolderId() const
{
+ if (cmSystemTools::IsOn(GetOption("CPACK_WIX_SKIP_PROGRAM_FOLDER"))) {
+ return "";
+ }
if (GetArchitecture() == "x86") {
return "ProgramFilesFolder";
} else {