diff options
-rw-r--r-- | tools/wixl/builder.vala | 22 | ||||
-rw-r--r-- | tools/wixl/wix.vala | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/tools/wixl/builder.vala b/tools/wixl/builder.vala index b8c63c1..43a8542 100644 --- a/tools/wixl/builder.vala +++ b/tools/wixl/builder.vala @@ -919,7 +919,29 @@ namespace Wixl { db.table_service_install.add(service_install.Id, service_install.Name, service_install.DisplayName, ServiceType, StartType, ErrorControl, service_install.LoadOrderGroup, ServiceDependencies, service_install.Account, service_install.Password, service_install.Arguments, comp.Id, Description); } + + enum RegistryType { + DIRECTORY, + FILE, + RAW, + 64BIT = 0x10; + + public static RegistryType from_string (string s) throws GLib.Error { + return enum_from_string<RegistryType> (s); + } + } + public override void visit_registry_search (WixRegistrySearch search) throws GLib.Error { + var property = search.parent as WixProperty; + + var root = RegistryRoot.from_string (search.Root.down ()); + var type = RegistryType.from_string (search.Type.down ()); + if (parse_yesno (search.Win64)) + type |= RegistryType.64BIT; + + db.table_app_search.add (property.Id, search.Id); + db.table_reg_locator.add (search.Id, root, search.Key, search.Name, type); + } [Flags] enum CustomActionType { diff --git a/tools/wixl/wix.vala b/tools/wixl/wix.vala index 55f3574..dee6947 100644 --- a/tools/wixl/wix.vala +++ b/tools/wixl/wix.vala @@ -296,6 +296,7 @@ namespace Wixl { public string Key { get; set; } public string Type { get; set; } public string Name { get; set; } + public string Win64 { get; set; } public override void accept (WixNodeVisitor visitor) throws GLib.Error { visitor.visit_registry_search (this); |