From: Rico Tzschichholz Date: Sat, 27 Apr 2019 11:20:28 +0000 (+0200) Subject: girwriter: Populate gir_namespace/version attributes of external namespaces X-Git-Tag: 0.36.20~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24b4dfa8fe1a8c07131b447fcfd719e607bf7090;p=thirdparty%2Fvala.git girwriter: Populate gir_namespace/version attributes of external namespaces --- diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index df8ee5c82..138d3593b 100644 --- a/codegen/valagirwriter.vala +++ b/codegen/valagirwriter.vala @@ -162,6 +162,11 @@ public class Vala.GIRWriter : CodeVisitor { write_package (package); + // Make sure to initialize external files with their gir_namespace/version + foreach (var file in context.get_source_files ()) { + file.accept (this); + } + context.accept (this); indent--; @@ -249,6 +254,26 @@ public class Vala.GIRWriter : CodeVisitor { buffer.append_printf ("\n", name); } + public override void visit_source_file (SourceFile source_file) { + if (source_file.file_type != SourceFileType.PACKAGE) { + return; + } + + // Populate gir_namespace/version of source-file like in Namespace.check() + foreach (var node in source_file.get_nodes ()) { + if (node is Namespace && ((Namespace) node).parent_symbol == context.root) { + var a = node.get_attribute ("CCode"); + if (a != null && a.has_argument ("gir_namespace")) { + source_file.gir_namespace = a.get_string ("gir_namespace"); + } + if (a != null && a.has_argument ("gir_version")) { + source_file.gir_version = a.get_string ("gir_version"); + } + break; + } + } + } + public override void visit_namespace (Namespace ns) { if (ns.external_package) { return;