summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2018-09-20 10:57:10 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2023-04-29 21:00:17 +0200
commit18d7595d0272a76397ddba3ad3b356178356b8d1 (patch)
tree542b2d953a1ed3ef9f8e4c820c993e3e2c4f6b18
parentee5de4438a3451eef7f40cab71a540a105cde4a5 (diff)
downloadvala-18d7595d0272a76397ddba3ad3b356178356b8d1.tar.gz
WIP dbusgen: Add namespace options
-rw-r--r--dbusgen/valadbusgen.vala14
-rw-r--r--dbusgen/valadbusnamespacestrategy.vala1
-rw-r--r--dbusgen/valadbusparser.vala2
-rw-r--r--dbusgen/valadbusvariantmodule.vala2
-rw-r--r--doc/valadbusgen.19
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