[vala/switch-to-gir: 8/34] girparser: Parse included GIR files



commit e782e115e98e16dcb60cb9a430d91c9236362cec
Author: Luca Bruno <lethalman88 gmail com>
Date:   Mon Aug 23 22:05:33 2010 +0200

    girparser: Parse included GIR files

 vala/valagirparser.vala  |    7 +++++++
 vapigen/valavapigen.vala |    6 ++++--
 2 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index a258d84..2a232d9 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -162,6 +162,13 @@ public class Vala.GirParser : CodeVisitor {
 
 	void parse_include () {
 		start_element ("include");
+		var pkg = reader.get_attribute ("name");
+		var version = reader.get_attribute ("version");
+		if (version != null) {
+			pkg = "%s-%s".printf (pkg, version);
+		}
+		// add the package to the queue
+		context.add_external_package (pkg);
 		next ();
 		end_element ("include");
 	}
diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala
index 8dc9d0a..e339192 100644
--- a/vapigen/valavapigen.vala
+++ b/vapigen/valavapigen.vala
@@ -122,7 +122,6 @@ class Vala.VAPIGen : Object {
 				Report.error (null, "%s not found".printf (source));
 			}
 		}
-		sources = null;
 		
 		if (context.report.get_errors () > 0) {
 			return quit ();
@@ -165,7 +164,10 @@ class Vala.VAPIGen : Object {
 		
 		// interface writer ignores external packages
 		foreach (SourceFile file in context.get_source_files ()) {
-			if (!file.filename.has_suffix (".vapi")) {
+			if (file.filename.has_suffix (".vapi")) {
+				continue;
+			}
+			if (file.filename in sources) {
 				file.external_package = false;
 			}
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]