diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-08-19 17:01:51 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2017-08-19 17:01:51 +0200 |
commit | f1278166d5801f660a495df5ca11246bf68b691f (patch) | |
tree | 81f65b37d423d9d96d96166f053c6a0f75f3b787 | |
parent | c89c305ceb63c9b4ba017eec4a3daf734e822651 (diff) | |
download | vala-f1278166d5801f660a495df5ca11246bf68b691f.tar.gz |
vapigen: Mark given source-files as such and force girparser to handle them
E.g. gtk+-4.0 is *one* library with multiple namespaces and gir files. So
we need to handle this case and allow all explicitly given GIR files to be
parsed.
-rw-r--r-- | vala/valagirparser.vala | 5 | ||||
-rw-r--r-- | vala/valasourcefile.vala | 5 | ||||
-rw-r--r-- | vapigen/valavapigen.vala | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 8a1353b26..219728c1e 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -1882,7 +1882,10 @@ public class Vala.GirParser : CodeVisitor { this.current_source_file.package_name = pkg; if (context.has_package (pkg)) { // package already provided elsewhere, stop parsing this GIR - return; + // if it was not passed explicitly + if (!this.current_source_file.explicit) { + return; + } } else { context.add_package (pkg); } diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 04dfeff4c..621281dc5 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -142,6 +142,11 @@ public class Vala.SourceFile { */ public bool used { get; set; } + /** + * Whether this source-file was explicitly passed on the commandline. + */ + public bool explicit { get; set; } + private ArrayList<Comment> comments = new ArrayList<Comment> (); public List<UsingDirective> current_using_directives { get; set; default = new ArrayList<UsingDirective> (); } diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index ba29e489d..3453afd48 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -131,7 +131,9 @@ class Vala.VAPIGen { foreach (string source in sources) { if (FileUtils.test (source, FileTest.EXISTS)) { - context.add_source_file (new SourceFile (context, SourceFileType.PACKAGE, source)); + var source_file = new SourceFile (context, SourceFileType.PACKAGE, source); + source_file.explicit = true; + context.add_source_file (source_file); } else { Report.error (null, "%s not found".printf (source)); } |