Commit f27f6f8f authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'wix-feature-patch'

c0bccc51 CPackWIX: Enabled patching of WIX <Feature> tags
parents 58e56607 c0bccc51
wix-feature-patch
-----------------
* The CPack WIX generator now supports
CPACK_WIX_PATCH_FILE fragments for Feature elements.
......@@ -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:
#
......
......@@ -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);
}
}
......
......@@ -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");
}
......
......@@ -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);
};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment