summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2014-05-16 20:43:56 (GMT)
committerBrad King <brad.king@kitware.com>2014-05-28 16:30:44 (GMT)
commitd0b1d2a65be658663ce7314961e13036974f62e7 (patch)
tree7323abad2bea4da8e21ba2bee5601da30ed8ca74 /Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
parent15a8af21e8bd8354dfff2063e01f695f85efdeb8 (diff)
downloadCMake-d0b1d2a65be658663ce7314961e13036974f62e7.zip
CMake-d0b1d2a65be658663ce7314961e13036974f62e7.tar.gz
CMake-d0b1d2a65be658663ce7314961e13036974f62e7.tar.bz2
CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties
Diffstat (limited to 'Source/CPack/WiX/cmWIXFilesSourceWriter.cxx')
-rw-r--r--Source/CPack/WiX/cmWIXFilesSourceWriter.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
index 3fd959e..451188e 100644
--- a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
+++ b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx
@@ -12,6 +12,8 @@
#include "cmWIXFilesSourceWriter.h"
+#include <cmInstalledFile.h>
+
#include <sys/types.h>
#include <sys/stat.h>
@@ -135,7 +137,8 @@ std::string cmWIXFilesSourceWriter::EmitComponentFile(
std::string const& directoryId,
std::string const& id,
std::string const& filePath,
- cmWIXPatch &patch)
+ cmWIXPatch &patch,
+ cmInstalledFile const* installedFile)
{
std::string componentId = std::string("CM_C") + id;
std::string fileId = std::string("CM_F") + id;
@@ -147,6 +150,18 @@ std::string cmWIXFilesSourceWriter::EmitComponentFile(
AddAttribute("Id", componentId);
AddAttribute("Guid", "*");
+ if(installedFile)
+ {
+ if(installedFile->GetPropertyAsBool("CPACK_NEVER_OVERWRITE"))
+ {
+ AddAttribute("NeverOverwrite", "yes");
+ }
+ if(installedFile->GetPropertyAsBool("CPACK_PERMANENT"))
+ {
+ AddAttribute("Permanent", "yes");
+ }
+ }
+
BeginElement("File");
AddAttribute("Id", fileId);
AddAttribute("Source", filePath);