From: Didier 'Ptitjes Date: Fri, 20 Mar 2009 14:47:03 +0000 (+0100) Subject: Generate tags X-Git-Tag: 0.6.0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40c913a452f3c95e8808f2715cb5680f42cbaebd;p=thirdparty%2Fvala.git Generate tags Signed-off-by: Didier 'Ptitjes --- diff --git a/gobject/valagirwriter.vala b/gobject/valagirwriter.vala index ad7582cd2..0c13c3e34 100644 --- a/gobject/valagirwriter.vala +++ b/gobject/valagirwriter.vala @@ -68,6 +68,29 @@ public class Vala.GIRWriter : CodeVisitor { stream = null; } + private void write_c_includes (Namespace ns) { + // Collect C header filenames + Gee.Set header_filenames = new Gee.HashSet (str_hash, str_equal); + foreach (string c_header_filename in ns.get_cheader_filenames ()) { + header_filenames.add (c_header_filename); + } + foreach (Symbol symbol in ns.scope.get_symbol_table ().get_values ()) { + foreach (string c_header_filename in symbol.get_cheader_filenames ()) { + header_filenames.add (c_header_filename); + } + } + + // Generate c:include tags + foreach (string c_header_filename in header_filenames) { + write_c_include (c_header_filename); + } + } + + private void write_c_include (string name) { + write_indent (); + stream.printf ("\n", name); + } + public override void visit_namespace (Namespace ns) { if (ns.external_package) { return; @@ -85,6 +108,8 @@ public class Vala.GIRWriter : CodeVisitor { return; } + write_c_includes (ns); + write_indent (); stream.printf ("\n", ns.name); indent++;