diff options
author | Michael Stürmer <michael.stuermer@schaeffler.com> | 2016-09-09 08:53:26 (GMT) |
---|---|---|
committer | Nils Gladitz <nilsgladitz@gmail.com> | 2016-09-09 11:03:57 (GMT) |
commit | c0bccc51df0eda22b4a7aa5833e1204412b39fc8 (patch) | |
tree | f687044a9018819b05b2989e1844f56275c6e6d0 /Source | |
parent | d62a5dfc86a4d0f48f93494065f7a835c9140bb6 (diff) | |
download | CMake-c0bccc51df0eda22b4a7aa5833e1204412b39fc8.zip CMake-c0bccc51df0eda22b4a7aa5833e1204412b39fc8.tar.gz CMake-c0bccc51df0eda22b4a7aa5833e1204412b39fc8.tar.bz2 |
CPackWIX: Enabled patching of WIX <Feature> tags
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CPack/WiX/cmCPackWIXGenerator.cxx | 4 | ||||
-rw-r--r-- | Source/CPack/WiX/cmWIXFeaturesSourceWriter.cxx | 12 | ||||
-rw-r--r-- | Source/CPack/WiX/cmWIXFeaturesSourceWriter.h | 7 |
3 files changed, 15 insertions, 8 deletions
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); }; |