summaryrefslogtreecommitdiffstats
path: root/tools/wixl/builder.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tools/wixl/builder.vala')
-rw-r--r--tools/wixl/builder.vala17
1 files changed, 14 insertions, 3 deletions
diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala
index 50fbdd3..30a6b72 100644
--- a/tools/wixl/builder.vala
+++ b/tools/wixl/builder.vala
@@ -395,6 +395,17 @@ namespace Wixl {
db.table_feature_components.add (feature.Id, component.Id);
}
+ void feature_add_component_group (WixFeature feature, WixComponentGroup group) throws GLib.Error {
+ foreach (var node in group.children) {
+ var child = node as WixElement;
+ if (child is WixComponentGroupRef) {
+ feature_add_component_group (feature, resolve<WixComponentGroup> (child));
+ } else {
+ feature_add_component (feature, resolve<WixComponent> (child));
+ }
+ }
+ }
+
public override void visit_component_ref (WixComponentRef ref) throws GLib.Error {
var component = resolve<WixComponent> (@ref);
@@ -411,9 +422,9 @@ namespace Wixl {
if (ref.parent is WixFeature) {
var feature = ref.parent as WixFeature;
-
- foreach (var comp in group.children)
- feature_add_component (feature, resolve<WixComponent> (comp as WixElement));
+ feature_add_component_group (feature, group);
+ } else if (ref.parent is WixComponentGroup) {
+ // is added by parent group
} else
warning ("unhandled parent type %s", @ref.parent.name);
}