gobject-introspection r448 - in trunk: . tests tools



Author: walters
Date: Fri Aug 22 14:43:41 2008
New Revision: 448
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=448&view=rev

Log:
2008-08-22  Colin Walters  <walters verbum org>

	* gobject-introspection-1.0.pc.in: Add g-ir-generate.
	* tests/Makefile.am: Support $(DEBUG)
	* tools/generate.c: Do immediate close tags if no
	sub-elements.


Modified:
   trunk/ChangeLog
   trunk/gobject-introspection-1.0.pc.in
   trunk/tests/Makefile.am
   trunk/tests/boxed.gir
   trunk/tools/generate.c

Modified: trunk/gobject-introspection-1.0.pc.in
==============================================================================
--- trunk/gobject-introspection-1.0.pc.in	(original)
+++ trunk/gobject-introspection-1.0.pc.in	Fri Aug 22 14:43:41 2008
@@ -6,12 +6,9 @@
 
 g_ir_scanner=${bindir}/g-ir-scanner
 g_ir_compiler=${bindir}/g-ir-compiler
+g_ir_generate=${bindir}/g-ir-generate
 girdir=${prefix}/share/gir
 
-# FIXME: These needs to be ported to the GIR format first
-# g_idl_generator=${bindir}/g-idl-generator
-# g_idl_compiler=${bindir}/g-idl-compiler
-
 Cflags: -I${includedir}/gobject-introspection-1.0
 Requires: glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0
 Libs: -L${libdir} -lgirepository

Modified: trunk/tests/Makefile.am
==============================================================================
--- trunk/tests/Makefile.am	(original)
+++ trunk/tests/Makefile.am	Fri Aug 22 14:43:41 2008
@@ -25,8 +25,8 @@
 
 %.gir.test: %.gir
 	@echo Testing $<:
-	$(top_builddir)/tools/g-ir-compiler --raw $< > $<.1; \
-	$(top_builddir)/tools/g-ir-generate --raw $<.1 > $<.2; \
+	$(DEBUG) $(top_builddir)/tools/g-ir-compiler --raw $< > $<.1; \
+	$(DEBUG) $(top_builddir)/tools/g-ir-generate --raw $<.1 > $<.2; \
 	diff -u $< $<.2; rm $<.1 $<.2
 
 check-local: $(GIRTESTS)

Modified: trunk/tests/boxed.gir
==============================================================================
--- trunk/tests/boxed.gir	(original)
+++ trunk/tests/boxed.gir	Fri Aug 22 14:43:41 2008
@@ -60,7 +60,6 @@
         </parameter>
       </parameters>
     </function>
-    <glib:boxed glib:name="boxed2" glib:type-name="BoxedType2" glib:get-type="boxed2_get_type" deprecated="1">
-    </glib:boxed>
+    <glib:boxed glib:name="boxed2" glib:type-name="BoxedType2" glib:get-type="boxed2_get_type" deprecated="1"/>
   </namespace>
 </repository>

Modified: trunk/tools/generate.c
==============================================================================
--- trunk/tools/generate.c	(original)
+++ trunk/tools/generate.c	Fri Aug 22 14:43:41 2008
@@ -422,6 +422,7 @@
   const gchar *type_init;
   gboolean deprecated;
   gint i;
+  int n_elts;
 
   name = g_base_info_get_name ((GIBaseInfo *)info);
   deprecated = g_base_info_is_deprecated ((GIBaseInfo *)info);
@@ -439,26 +440,34 @@
   if (deprecated)
     g_fprintf (file, " deprecated=\"1\"");
 	
-  g_fprintf (file, ">\n");
-
-  for (i = 0; i < g_struct_info_get_n_fields (info); i++)
+  n_elts = g_struct_info_get_n_fields (info) + g_struct_info_get_n_methods (info);
+  if (n_elts > 0)
     {
-      GIFieldInfo *field = g_struct_info_get_field (info, i);
-      write_field_info (namespace, field, NULL, file);
-      g_base_info_unref ((GIBaseInfo *)field);
-    }
-
-  for (i = 0; i < g_struct_info_get_n_methods (info); i++)
+      g_fprintf (file, ">\n");
+      
+      for (i = 0; i < g_struct_info_get_n_fields (info); i++)
+	{
+	  GIFieldInfo *field = g_struct_info_get_field (info, i);
+	  write_field_info (namespace, field, NULL, file);
+	  g_base_info_unref ((GIBaseInfo *)field);
+	}
+      
+      for (i = 0; i < g_struct_info_get_n_methods (info); i++)
+	{
+	  GIFunctionInfo *function = g_struct_info_get_method (info, i);
+	  write_function_info (namespace, function, file, 6);
+	  g_base_info_unref ((GIBaseInfo *)function);
+	}
+      
+      if (g_base_info_get_type ((GIBaseInfo *)info) == GI_INFO_TYPE_BOXED)
+	g_fprintf (file, "    </glib:boxed>\n");
+      else
+	g_fprintf (file, "    </record>\n");
+    } 
+  else
     {
-      GIFunctionInfo *function = g_struct_info_get_method (info, i);
-      write_function_info (namespace, function, file, 6);
-      g_base_info_unref ((GIBaseInfo *)function);
+      g_fprintf (file, "/>\n");
     }
-
-  if (g_base_info_get_type ((GIBaseInfo *)info) == GI_INFO_TYPE_BOXED)
-    g_fprintf (file, "    </glib:boxed>\n");
-  else
-    g_fprintf (file, "    </record>\n");
 }
 
 static void



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