2008-11-13 Colin Walters <walters@verbum.org>
+ * configure.ac: Depend on Gio, we use it in gdump.c.
+ * girepository/gdump.c: Code to dump GType data to XML.
+ * girepository/girepository.c: Add option group for dumping.
+ * girepository/girepository.h: Define API for the above.
+
+2008-11-13 Colin Walters <walters@verbum.org>
+
* common.mk: Add a file to include with Makefile fragments
useful for scanner invocation.
AC_SUBST(GOBJECT_INTROSPECTION_LIBDIR)
AC_DEFINE_UNQUOTED(GOBJECT_INTROSPECTION_LIBDIR,"$GOBJECT_INTROSPECTION_LIBDIR", [Directory prefix for typelib installation])
-PKG_CHECK_MODULES(GOBJECT, [gobject-2.0])
+PKG_CHECK_MODULES(GOBJECT, [gobject-2.0 gio-2.0])
+PKG_CHECK_MODULES(GTHREAD, [gthread-2.0])
-PKG_CHECK_MODULES(SCANNER, [gobject-2.0 gthread-2.0])
+PKG_CHECK_MODULES(SCANNER, [gobject-2.0 gthread-2.0 gio-2.0])
dnl libffi
PKG_CHECK_MODULES(FFI, libffi, have_ffi_pkgconfig=yes, have_ffi_pkgconfig=no)
AC_CHECK_SIZEOF(time_t, [], [#include <time.h>])
-PKG_CHECK_MODULES(GIREPO, [glib-2.0 gobject-2.0 gmodule-2.0])
+PKG_CHECK_MODULES(GIREPO, [glib-2.0 gobject-2.0 gmodule-2.0 gio-2.0])
# if we ever remove manual check for ffi and require .pc file, then
# just put libffi in the PKG_CHECK_MODULES(GIREPO) deps
gtypelib.h \
gtypelib.c \
ginfo.c \
- ginvoke.c \
girffi.c \
- girffi.h
+ girffi.h \
+ gdump.c \
+ ginvoke.c
+
libgirepository_la_CPPFLAGS = $(GIREPO_CFLAGS)
libgirepository_la_LIBADD = $(GIREPO_LIBS)
libgirepository_la_LDFLAGS = -no-undefined
return ret;
}
+static gboolean
+g_irepository_introspect_cb (const char *option_name,
+ const char *value,
+ gpointer data,
+ GError **error)
+{
+ return g_irepository_dump (value, error);
+}
+
+static const GOptionEntry introspection_args[] = {
+ { "introspect-dump", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK,
+ g_irepository_introspect_cb, "Dump introspection information",
+ "infile.txt,outfile.xml" },
+ { NULL }
+};
+
+GOptionGroup *
+g_irepository_get_option_group (void)
+{
+ GOptionGroup *group;
+ group = g_option_group_new ("girepository", "Introspection Options", "Show Introspection Options", NULL, NULL);
+
+ g_option_group_add_entries (group, introspection_args);
+ return group;
+}
GQuark
g_irepository_error_quark (void)
const gchar * g_irepository_get_version (GIRepository *repository,
const gchar *namespace);
+GOptionGroup * g_irepository_get_option_group (void);
+
+gboolean g_irepository_dump (const char *arg, GError **error);
+
/* Typelib */
GTypelib * g_typelib_new_from_memory (guchar *memory,