From 96c0d9b19a4c153f960bb094f971c15e912e54be Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sat, 27 Apr 2019 13:20:28 +0200 Subject: [PATCH] girwriter: Populate gir_namespace/version attributes of external namespaces --- codegen/valagirwriter.vala | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/codegen/valagirwriter.vala b/codegen/valagirwriter.vala index 355ef856b..441c7c587 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--; @@ -252,6 +257,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; -- 2.47.2