From dbedc68c9c3390f4f8c749daa85f685923f20e17 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Sun, 8 Feb 2009 13:11:18 +0000 Subject: [PATCH] Add experimental introspection support. Disabled by default; use * configure.ac: * libdocument/Makefile.am: * libview/Makefile.am: Add experimental introspection support. Disabled by default; use --enable-introspection to enable it. Bug #569083. svn path=/trunk/; revision=3422 --- ChangeLog | 8 +++++++ configure.ac | 36 +++++++++++++++++++++++++++++++ libdocument/Makefile.am | 43 +++++++++++++++++++++++++++++++++++++ libview/Makefile.am | 47 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 134 insertions(+) diff --git a/ChangeLog b/ChangeLog index f6a1829b..05cdf414 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-02-08 Christian Persch + + * configure.ac: + * libdocument/Makefile.am: + * libview/Makefile.am: Add experimental introspection support. + Disabled by default; use --enable-introspection to enable it. + Bug #569083. + 2009-02-08 Christian Persch * libview/Makefile.am: Link libevdocument.la to libevview.la. diff --git a/configure.ac b/configure.ac index e66b1251..435e0c0a 100644 --- a/configure.ac +++ b/configure.ac @@ -267,6 +267,41 @@ if test "x$GCONFTOOL" = "xno"; then AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf]) fi +# *** +# GIR +# *** + +AC_MSG_CHECKING([whether GObject introspection is requested]) +AC_ARG_ENABLE([introspection], + AS_HELP_STRING([--enable-introspection],[Enable GObject introspection]), + [],[enable_introspection=no]) +AC_MSG_RESULT([$enable_introspection]) + +G_IR_SCANNER= +G_IR_COMPILER= +G_IR_GENERATE= +GIRDIR= +GIRTYPELIBDIR= + +if test "$enable_introspection" = "yes"; then + GOBJECT_INTROSPECTION_REQUIRED=0.6 + PKG_CHECK_MODULES([GOBJECT_INTROSPECTION],[gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_REQUIRED]) + + G_IR_SCANNER="$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)" + G_IR_COMPILER="$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)" + G_IR_GENERATE="$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)" + GIRDIR="$($PKG_CONFIG --variable=girdir gobject-introspection-1.0)" + GIRTYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" +fi + +AC_SUBST([G_IR_SCANNER]) +AC_SUBST([G_IR_COMPILER]) +AC_SUBST([G_IR_GENERATE]) +AC_SUBST([GIRDIR]) +AC_SUBST([GIRTYPELIBDIR]) + +AM_CONDITIONAL([ENABLE_INTROSPECTION],[test "$enable_introspection" = "yes"]) + dnl ================== portability checks =========================================== dnl for backtrace() @@ -574,6 +609,7 @@ Configure summary: Thumbnailer........: $ENABLE_THUMBNAILER Gtk-Doc Support....: $enable_gtk_doc Debug mode.........: $enable_debug + GObj. Introspection: $enable_introspection PDF Backend........: $enable_pdf PostScript Backend.: $enable_ps diff --git a/libdocument/Makefile.am b/libdocument/Makefile.am index 6eab5854..ffbe19d4 100644 --- a/libdocument/Makefile.am +++ b/libdocument/Makefile.am @@ -119,3 +119,46 @@ ev-document-type-builtins.c: ev-document-type-builtins.c.template $(INST_H_FILES EXTRA_DIST = \ ev-document-type-builtins.c.template \ ev-document-type-builtins.h.template + +# GObject Introspection + +if ENABLE_INTROSPECTION + +EvDocument-$(EV_API_VERSION).gir: libevdocument.la Makefile $(INST_H_FILES) + PKG_CONFIG_PATH=$(top_builddir):$$PKG_CONFIG_PATH \ + $(G_IR_SCANNER) -v --namespace EvDocument \ + --add-include-path=$(srcdir) \ + --add-include-path=. \ + --strip-prefix=Ev \ + --nsversion=$(EV_API_VERSION) \ + --include=Gio-2.0 \ + --include=Gtk-2.0 \ + --library=evdocument \ + --libtool="$(LIBTOOL)" \ + --output $@ \ + --pkg gobject-2.0 \ + --pkg gio-2.0 \ + --pkg gtk+-2.0 \ + --pkg evince-document-$(EV_API_VERSION) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DEVINCE_COMPILATION \ + $(INST_H_FILES) + +girdir = $(GIRDIR) +gir_DATA = EvDocument-$(EV_API_VERSION).gir + +typelibsdir = $(GIRTYPELIBDIR) +typelibs_DATA = EvDocument-$(EV_API_VERSION).typelib + +EXTRA_DIST += $(gir_DATA) +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +%.typelib: %.gir + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=. \ + $(G_IR_COMPILER_OPTS) \ + $< -o $@ + +endif # ENABLE_INTROSPECTION diff --git a/libview/Makefile.am b/libview/Makefile.am index d11818f4..9da49278 100644 --- a/libview/Makefile.am +++ b/libview/Makefile.am @@ -89,3 +89,50 @@ EXTRA_DIST = \ ev-view-type-builtins.c.template \ ev-view-type-builtins.h.template \ ev-view-marshal.list + +# GObject Introspection + +if ENABLE_INTROSPECTION + +EvView-$(EV_API_VERSION).gir: libevview.la Makefile $(INST_H_FILES) + PKG_CONFIG_PATH=$(top_builddir):$$PKG_CONFIG_PATH \ + $(G_IR_SCANNER) -v --namespace EvView \ + --add-include-path=$(srcdir) \ + --add-include-path=. \ + --add-include-path=$(top_srcdir) \ + --add-include-path=$(top_builddir) \ + --add-include-path=$(top_builddir)/libdocument \ + --strip-prefix=Ev \ + --nsversion=$(EV_API_VERSION) \ + --include=Gio-2.0 \ + --include=Gtk-2.0 \ + --include=EvDocument-$(EV_API_VERSION) \ + --library=evview \ + --libtool="$(LIBTOOL)" \ + --output $@ \ + --pkg gobject-2.0 \ + --pkg gio-2.0 \ + --pkg gtk+-2.0 \ + --pkg evince-view-$(EV_API_VERSION) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DEVINCE_COMPILATION \ + $(INST_H_FILES) + +girdir = $(GIRDIR) +gir_DATA = EvView-$(EV_API_VERSION).gir + +typelibsdir = $(GIRTYPELIBDIR) +typelibs_DATA = EvView-$(EV_API_VERSION).typelib + +EXTRA_DIST += $(gir_DATA) +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +%.typelib: %.gir + LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) \ + --includedir=$(srcdir) \ + --includedir=$(top_builddir)/libdocument \ + $(G_IR_COMPILER_OPTS) \ + $< -o $@ + +endif # ENABLE_INTROSPECTION -- 2.43.5