CPackWIX: Enabled patching of WIX <Feature> tags
This commit is contained in:
parent
d62a5dfc86
commit
c0bccc51df
|
@ -0,0 +1,5 @@
|
|||
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);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue