summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-12 13:31:35 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-09-12 13:31:35 (GMT)
commitf27f6f8f3fa571d656edba6f254bf47cea0bb6d8 (patch)
tree71f37b7aee19516cfe752f4bf97beaddb4a8be2e
parent58e56607c12789b41a722e03576c090584da4bf6 (diff)
parentc0bccc51df0eda22b4a7aa5833e1204412b39fc8 (diff)
downloadCMake-f27f6f8f3fa571d656edba6f254bf47cea0bb6d8.zip
CMake-f27f6f8f3fa571d656edba6f254bf47cea0bb6d8.tar.gz
CMake-f27f6f8f3fa571d656edba6f254bf47cea0bb6d8.tar.bz2
Merge topic 'wix-feature-patch'
c0bccc51 CPackWIX: Enabled patching of WIX <Feature> tags
-rw-r--r--Help/release/dev/wix-feature-patch.rst5
-rw-r--r--Modules/CPackWIX.cmake2
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx4
-rw-r--r--Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx12
-rw-r--r--Source/CPack/WiX/cmWIXFeaturesSourceWriter.h7
5 files changed, 21 insertions, 9 deletions
diff --git a/Help/release/dev/wix-feature-patch.rst b/Help/release/dev/wix-feature-patch.rst
new file mode 100644
index 0000000..0b1cbe3
--- /dev/null
+++ b/Help/release/dev/wix-feature-patch.rst
@@ -0,0 +1,5 @@
+wix-feature-patch
+-----------------
+
+* The CPack WIX generator now supports
+ CPACK_WIX_PATCH_FILE fragments for Feature elements.
diff --git a/Modules/CPackWIX.cmake b/Modules/CPackWIX.cmake
index 08ff0cb..d02df2d 100644
--- a/Modules/CPackWIX.cmake
+++ b/Modules/CPackWIX.cmake
@@ -147,7 +147,7 @@
# }
#
# Currently fragments can be injected into most
-# Component, File and Directory elements.
+# Component, File, Directory and Feature elements.
#
# The following additional special Ids can be used:
#
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
index 85e0ae3..ba5787e 100644
--- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx
+++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx
@@ -628,7 +628,7 @@ bool cmCPackWIXGenerator::CreateFeatureHierarchy(
i != ComponentGroups.end(); ++i) {
cmCPackComponentGroup const& group = i->second;
if (group.ParentGroup == 0) {
- featureDefinitions.EmitFeatureForComponentGroup(group);
+ featureDefinitions.EmitFeatureForComponentGroup(group, *this->Patch);
}
}
@@ -638,7 +638,7 @@ bool cmCPackWIXGenerator::CreateFeatureHierarchy(
cmCPackComponent const& component = i->second;
if (!component.Group) {
- featureDefinitions.EmitFeatureForComponent(component);
+ featureDefinitions.EmitFeatureForComponent(component, *this->Patch);
}
}
diff --git a/Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx b/Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx
index 7794935..c9f17cc 100644
--- a/Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx
+++ b/Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx
@@ -42,7 +42,7 @@ void cmWIXFeaturesSourceWriter::CreateCMakePackageRegistryEntry(
}
void cmWIXFeaturesSourceWriter::EmitFeatureForComponentGroup(
- cmCPackComponentGroup const& group)
+ cmCPackComponentGroup const& group, cmWIXPatch& patch)
{
BeginElement("Feature");
AddAttribute("Id", "CM_G_" + group.Name);
@@ -57,20 +57,22 @@ void cmWIXFeaturesSourceWriter::EmitFeatureForComponentGroup(
for (std::vector<cmCPackComponentGroup*>::const_iterator i =
group.Subgroups.begin();
i != group.Subgroups.end(); ++i) {
- EmitFeatureForComponentGroup(**i);
+ EmitFeatureForComponentGroup(**i, patch);
}
for (std::vector<cmCPackComponent*>::const_iterator i =
group.Components.begin();
i != group.Components.end(); ++i) {
- EmitFeatureForComponent(**i);
+ EmitFeatureForComponent(**i, patch);
}
+ patch.ApplyFragment("CM_G_" + group.Name, *this);
+
EndElement("Feature");
}
void cmWIXFeaturesSourceWriter::EmitFeatureForComponent(
- cmCPackComponent const& component)
+ cmCPackComponent const& component, cmWIXPatch& patch)
{
BeginElement("Feature");
AddAttribute("Id", "CM_C_" + component.Name);
@@ -90,6 +92,8 @@ void cmWIXFeaturesSourceWriter::EmitFeatureForComponent(
AddAttribute("Level", "2");
}
+ patch.ApplyFragment("CM_C_" + component.Name, *this);
+
EndElement("Feature");
}
diff --git a/Source/CPack/WiX/cmWIXFeaturesSourceWriter.h b/Source/CPack/WiX/cmWIXFeaturesSourceWriter.h
index 9974b63..124ed42 100644
--- a/Source/CPack/WiX/cmWIXFeaturesSourceWriter.h
+++ b/Source/CPack/WiX/cmWIXFeaturesSourceWriter.h
@@ -13,6 +13,7 @@
#ifndef cmWIXFeaturesSourceWriter_h
#define cmWIXFeaturesSourceWriter_h
+#include "cmWIXPatch.h"
#include "cmWIXSourceWriter.h"
#include <CPack/cmCPackGenerator.h>
@@ -29,9 +30,11 @@ public:
void CreateCMakePackageRegistryEntry(std::string const& package,
std::string const& upgradeGuid);
- void EmitFeatureForComponentGroup(const cmCPackComponentGroup& group);
+ void EmitFeatureForComponentGroup(const cmCPackComponentGroup& group,
+ cmWIXPatch& patch);
- void EmitFeatureForComponent(const cmCPackComponent& component);
+ void EmitFeatureForComponent(const cmCPackComponent& component,
+ cmWIXPatch& patch);
void EmitComponentRef(std::string const& id);
};