From f014a5c6d7dd4835b4e773605809b7ca44496a48 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Thu, 24 Jan 2013 23:47:10 +0100 Subject: wixl: visit RegistrySearch and populate db --- tools/wixl/builder.vala | 22 ++++++++++++++++++++++ tools/wixl/wix.vala | 1 + 2 files changed, 23 insertions(+) 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 (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); -- cgit