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.vala18
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala
index 0855fe5..0ed8abc 100644
--- a/tools/wixl/builder.vala
+++ b/tools/wixl/builder.vala
@@ -1020,12 +1020,23 @@ namespace Wixl {
public override void visit_custom_action (WixCustomAction action) throws GLib.Error {
CustomActionType type;
+ string source, target;
// FIXME: so many missing things here...
- if (action.DllEntry != null)
+ if (action.DllEntry != null) {
type = CustomActionType.DLL_BINARY;
- else
+ source = action.BinaryKey;
+ target = action.DllEntry;
+ } else if (action.JScriptCall != null) {
+ type = CustomActionType.JSCRIPT_BINARY;
+ source = action.BinaryKey;
+ target = action.JScriptCall;
+ } else if (action.ExeCommand != null) {
type = CustomActionType.EXE_PROPERTY;
+ source = action.Property;
+ target = action.ExeCommand;
+ } else
+ throw new Wixl.Error.FAILED ("Unsupported CustomAction");
if (action.Return == "ignore")
type |= CustomActionType.CONTINUE;
@@ -1034,9 +1045,6 @@ namespace Wixl {
if (!parse_yesno (action.Impersonate))
type |= CustomActionType.NO_IMPERSONATE;
- string source = action.Property ?? action.BinaryKey;
- string target = action.ExeCommand ?? action.DllEntry;
-
db.table_custom_action.add (action.Id, type, source, target);
}