Merge topic 'wix-feature-patch'
c0bccc51
CPackWIX: Enabled patching of WIX <Feature> tags
This commit is contained in:
commit
f27f6f8f3f
|
@ -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
|
# 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:
|
# The following additional special Ids can be used:
|
||||||
#
|
#
|
||||||
|
|
|
@ -628,7 +628,7 @@ bool cmCPackWIXGenerator::CreateFeatureHierarchy(
|
||||||
i != ComponentGroups.end(); ++i) {
|
i != ComponentGroups.end(); ++i) {
|
||||||
cmCPackComponentGroup const& group = i->second;
|
cmCPackComponentGroup const& group = i->second;
|
||||||
if (group.ParentGroup == 0) {
|
if (group.ParentGroup == 0) {
|
||||||
featureDefinitions.EmitFeatureForComponentGroup(group);
|
featureDefinitions.EmitFeatureForComponentGroup(group, *this->Patch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -638,7 +638,7 @@ bool cmCPackWIXGenerator::CreateFeatureHierarchy(
|
||||||
cmCPackComponent const& component = i->second;
|
cmCPackComponent const& component = i->second;
|
||||||
|
|
||||||
if (!component.Group) {
|
if (!component.Group) {
|
||||||
featureDefinitions.EmitFeatureForComponent(component);
|
featureDefinitions.EmitFeatureForComponent(component, *this->Patch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ void cmWIXFeaturesSourceWriter::CreateCMakePackageRegistryEntry(
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmWIXFeaturesSourceWriter::EmitFeatureForComponentGroup(
|
void cmWIXFeaturesSourceWriter::EmitFeatureForComponentGroup(
|
||||||
cmCPackComponentGroup const& group)
|
cmCPackComponentGroup const& group, cmWIXPatch& patch)
|
||||||
{
|
{
|
||||||
BeginElement("Feature");
|
BeginElement("Feature");
|
||||||
AddAttribute("Id", "CM_G_" + group.Name);
|
AddAttribute("Id", "CM_G_" + group.Name);
|
||||||
|
@ -57,20 +57,22 @@ void cmWIXFeaturesSourceWriter::EmitFeatureForComponentGroup(
|
||||||
for (std::vector<cmCPackComponentGroup*>::const_iterator i =
|
for (std::vector<cmCPackComponentGroup*>::const_iterator i =
|
||||||
group.Subgroups.begin();
|
group.Subgroups.begin();
|
||||||
i != group.Subgroups.end(); ++i) {
|
i != group.Subgroups.end(); ++i) {
|
||||||
EmitFeatureForComponentGroup(**i);
|
EmitFeatureForComponentGroup(**i, patch);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::vector<cmCPackComponent*>::const_iterator i =
|
for (std::vector<cmCPackComponent*>::const_iterator i =
|
||||||
group.Components.begin();
|
group.Components.begin();
|
||||||
i != group.Components.end(); ++i) {
|
i != group.Components.end(); ++i) {
|
||||||
EmitFeatureForComponent(**i);
|
EmitFeatureForComponent(**i, patch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
patch.ApplyFragment("CM_G_" + group.Name, *this);
|
||||||
|
|
||||||
EndElement("Feature");
|
EndElement("Feature");
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmWIXFeaturesSourceWriter::EmitFeatureForComponent(
|
void cmWIXFeaturesSourceWriter::EmitFeatureForComponent(
|
||||||
cmCPackComponent const& component)
|
cmCPackComponent const& component, cmWIXPatch& patch)
|
||||||
{
|
{
|
||||||
BeginElement("Feature");
|
BeginElement("Feature");
|
||||||
AddAttribute("Id", "CM_C_" + component.Name);
|
AddAttribute("Id", "CM_C_" + component.Name);
|
||||||
|
@ -90,6 +92,8 @@ void cmWIXFeaturesSourceWriter::EmitFeatureForComponent(
|
||||||
AddAttribute("Level", "2");
|
AddAttribute("Level", "2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
patch.ApplyFragment("CM_C_" + component.Name, *this);
|
||||||
|
|
||||||
EndElement("Feature");
|
EndElement("Feature");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#ifndef cmWIXFeaturesSourceWriter_h
|
#ifndef cmWIXFeaturesSourceWriter_h
|
||||||
#define cmWIXFeaturesSourceWriter_h
|
#define cmWIXFeaturesSourceWriter_h
|
||||||
|
|
||||||
|
#include "cmWIXPatch.h"
|
||||||
#include "cmWIXSourceWriter.h"
|
#include "cmWIXSourceWriter.h"
|
||||||
|
|
||||||
#include <CPack/cmCPackGenerator.h>
|
#include <CPack/cmCPackGenerator.h>
|
||||||
|
@ -29,9 +30,11 @@ public:
|
||||||
void CreateCMakePackageRegistryEntry(std::string const& package,
|
void CreateCMakePackageRegistryEntry(std::string const& package,
|
||||||
std::string const& upgradeGuid);
|
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);
|
void EmitComponentRef(std::string const& id);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue