]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
driver-0.13.x: Add basic gir support
authorFlorian Brosch <flo.brosch@gmail.com>
Wed, 7 Sep 2011 18:07:51 +0000 (20:07 +0200)
committerFlorian Brosch <flo.brosch@gmail.com>
Wed, 7 Sep 2011 18:07:51 +0000 (20:07 +0200)
src/driver/0.13.x/treebuilder.vala

index 74f42c5e690b13b860f9ccc1f6fb0d330c45b135..efb8d44a0a2a0edd726d5a9c7b45e8751fa4ef43 100644 (file)
@@ -698,9 +698,9 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                                        }
 
                                        context.add_source_file (source_file);
-                               } else if (source.has_suffix (".vapi")) {
+                               } else if (source.has_suffix (".vapi") || source.has_suffix (".gir")) {
                                        string file_name = Path.get_basename (source);
-                                       file_name = file_name.substring (0, file_name.length - ".vapi".length);
+                                       file_name = file_name.substring (0, file_name.last_index_of_char ('.'));
 
                                        var vfile = new Vala.SourceFile (context, Vala.SourceFileType.PACKAGE, rpath);
                                        context.add_source_file (vfile);
@@ -711,7 +711,6 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                                        register_source_file (source_package, vfile);
 
-
                                        add_deps (context, Path.build_filename (Path.get_dirname (source), "%s.deps".printf (file_name)), file_name);
                                } else if (source.has_suffix (".c")) {
                                        context.add_c_source_file (rpath);
@@ -809,6 +808,15 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                        return context;
                }
 
+               // parse gir:
+               Vala.GirParser gir_parser = new Vala.GirParser ();
+
+               gir_parser.parse (context);
+               if (context.report.get_errors () > 0) {
+                       return context;
+               }
+
+
 
                // check context:
                context.check ();