diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-09-20 10:57:10 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2023-04-29 21:00:17 +0200 |
commit | 18d7595d0272a76397ddba3ad3b356178356b8d1 (patch) | |
tree | 542b2d953a1ed3ef9f8e4c820c993e3e2c4f6b18 | |
parent | ee5de4438a3451eef7f40cab71a540a105cde4a5 (diff) | |
download | vala-18d7595d0272a76397ddba3ad3b356178356b8d1.tar.gz |
WIP dbusgen: Add namespace options
-rw-r--r-- | dbusgen/valadbusgen.vala | 14 | ||||
-rw-r--r-- | dbusgen/valadbusnamespacestrategy.vala | 1 | ||||
-rw-r--r-- | dbusgen/valadbusparser.vala | 2 | ||||
-rw-r--r-- | dbusgen/valadbusvariantmodule.vala | 2 | ||||
-rw-r--r-- | doc/valadbusgen.1 | 9 |
5 files changed, 25 insertions, 3 deletions
diff --git a/dbusgen/valadbusgen.vala b/dbusgen/valadbusgen.vala index f0ceb2bc1..e659e0189 100644 --- a/dbusgen/valadbusgen.vala +++ b/dbusgen/valadbusgen.vala @@ -29,7 +29,7 @@ public class Vala.DBusGen { public class ConcatenationStrategy : NamespaceStrategy { public override string? get_namespace (string ns) { - return null; + return root_name; } public override string get_name (string ns) { @@ -58,6 +58,11 @@ public class Vala.DBusGen { [CCode (array_length = false, array_null_terminated = true)] static string[] packages; static int dbus_timeout = 120000; + static string root_namespace; + [CCode (array_length = false, array_null_terminated = true)] + static string[] rename_namespaces; + [CCode (array_length = false, array_null_terminated = true)] + static string[] strip_namespaces; CodeContext context; @@ -66,6 +71,9 @@ public class Vala.DBusGen { { "pkg", 0, 0, OptionArg.STRING_ARRAY, ref packages, "Include binding for PACKAGE", "PACKAGE..." }, { "directory", 'd', 0, OptionArg.FILENAME, ref directory, "Output directory", "DIRECTORY" }, { "disable-warnings", 0, 0, OptionArg.NONE, ref disable_warnings, "Disable warnings", null }, + { "namespace", 'n', 0, OptionArg.STRING, ref root_namespace, "Name of the parent namespace", null }, + { "rename-namespace", 0, 0, OptionArg.STRING_ARRAY, ref rename_namespaces, "Namespace to rename to", "SOURCE_NS:TARGET_NS..." }, + { "strip-namespace", 0, 0, OptionArg.STRING_ARRAY, ref strip_namespaces, "Namespace to strip", "NAMESPACE..." }, { "dbus-timeout", 0, 0, OptionArg.INT, ref dbus_timeout, "DBus timeout", null }, { "version", 0, 0, OptionArg.NONE, ref version, "Display version number", null }, { "quiet", 'q', 0, OptionArg.NONE, ref quiet_mode, "Do not print messages to the console", null }, @@ -152,7 +160,9 @@ public class Vala.DBusGen { var parser = new DBusParser (); parser.dbus_timeout = dbus_timeout; - parser.namespace_strategy = new ConcatenationStrategy (); + parser.namespace_strategy = new ConcatenationStrategy () { + root_name = root_namespace + }; parser.parse (context); if (context.report.get_errors () > 0) { diff --git a/dbusgen/valadbusnamespacestrategy.vala b/dbusgen/valadbusnamespacestrategy.vala index 3c95f1b6e..fc85d9ec9 100644 --- a/dbusgen/valadbusnamespacestrategy.vala +++ b/dbusgen/valadbusnamespacestrategy.vala @@ -21,6 +21,7 @@ */ public abstract class Vala.NamespaceStrategy { + public string root_name { get; set; } public abstract string? get_namespace (string ns); diff --git a/dbusgen/valadbusparser.vala b/dbusgen/valadbusparser.vala index 816913fbe..9b9287aab 100644 --- a/dbusgen/valadbusparser.vala +++ b/dbusgen/valadbusparser.vala @@ -127,7 +127,7 @@ public class Vala.DBusParser : CodeVisitor { } string? ns_name = namespace_strategy.get_namespace (name); - if (ns_name != null) { + if (ns_name != null && current_ns.name != ns_name) { var ns = new Namespace (ns_name, get_current_src ()); current_ns.add_namespace (ns); current_ns = ns; diff --git a/dbusgen/valadbusvariantmodule.vala b/dbusgen/valadbusvariantmodule.vala index 42b08780a..38d1a4a8a 100644 --- a/dbusgen/valadbusvariantmodule.vala +++ b/dbusgen/valadbusvariantmodule.vala @@ -188,6 +188,8 @@ public class Vala.DBusVariantModule { return array; } } + } else if (type.equal (VariantType.TUPLE)) { + } Report.warning (null, "Unresolved type: %s".printf ((string) type.peek_string ())); diff --git a/doc/valadbusgen.1 b/doc/valadbusgen.1 index a0404f7ef..07d8e82ea 100644 --- a/doc/valadbusgen.1 +++ b/doc/valadbusgen.1 @@ -29,6 +29,15 @@ Output directory \fB\-\-disable\-warnings\fR Disable warnings .TP +\fB\-n\fR, \fB\-\-namespace\fR +Name of the parent namespace +.TP +\fB\-\-rename\-namespace\fR=\fI\,SOURCE_NS\/\fR:TARGET_NS... +Namespace to rename to +.TP +\fB\-\-strip\-namespace\fR=\fI\,NAMESPACE\/\fR... +Namespace to strip +.TP \fB\-\-dbus\-timeout\fR DBus timeout .TP |