Add ffi cflags/libs/requires to exported .pc
authorJohan Dahlin <johan@gnome.org>
Fri, 4 Dec 2009 15:13:55 +0000 (13:13 -0200)
committerJohan Dahlin <johan@gnome.org>
Fri, 4 Dec 2009 15:18:08 +0000 (13:18 -0200)
This is required as external projects such as gjs
are now using girffi and thus need the ffi cflags
to be able to link.

https://bugzilla.gnome.org/show_bug.cgi?id=603653

configure.ac
gobject-introspection-1.0.pc.in
gobject-introspection-no-export-1.0.pc.in

index fccc076..48ac25b 100644 (file)
@@ -129,8 +129,12 @@ 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)
-
-if test x"$have_ffi_pkgconfig" = xno ; then
+FFI_PC_CFLAGS=""
+FFI_PC_LIBS=""
+FFI_PC_PACKAGES=""
+if test x"$have_ffi_pkgconfig" = xyes ; then
+    FFI_PC_PACKAGES="libffi"
+else
   AC_MSG_CHECKING(for ffi.h)
 
   AC_TRY_CPP([#include <ffi.h>], have_ffi_h=yes, have_ffi_h=no)
@@ -156,12 +160,16 @@ if test x"$have_ffi_pkgconfig" = xno ; then
     AC_MSG_ERROR([ffi.h not found])
   fi
 
+  FFI_PC_LIBS=$FFI_LIBS
+  FFI_PC_CFLAGS=$FFI_CFLAGS
   FFI_CFLAGS=
-
   AC_MSG_RESULT([$have_ffi_h])
   AC_SUBST(FFI_LIBS)
   AC_SUBST(FFI_CFLAGS)
 fi
+AC_SUBST(FFI_PC_CFLAGS)
+AC_SUBST(FFI_PC_LIBS)
+AC_SUBST(FFI_PC_PACKAGES)
 
 AC_CHECK_SIZEOF(time_t, [], [#include <time.h>])
 
index f9c85f7..e4bf234 100644 (file)
@@ -12,9 +12,9 @@ g_ir_generate=${bindir}/g-ir-generate
 girdir=${datadir}/gir-1.0
 typelibdir=${libdir}/girepository-1.0
 
-Cflags: -I${includedir}/gobject-introspection-1.0
-Requires: glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0
-Libs: -L${libdir} -lgirepository-1.0
+Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
+Requires: glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
 
 Name: gobject-introspection
 Description: GObject Introspection
index 54deae0..110cb75 100644 (file)
@@ -12,9 +12,9 @@ g_ir_generate=${bindir}/g-ir-generate
 girdir=${datadir}/gir-1.0
 typelibdir=${libdir}/girepository-1.0
 
-Cflags: -I${includedir}/gobject-introspection-1.0
-Requires: glib-2.0 gobject-2.0 gmodule-no-export-2.0 gthread-2.0
-Libs: -L${libdir} -lgirepository-1.0
+Cflags: -I${includedir}/gobject-introspection-1.0 @FFI_PC_CFLAGS@
+Requires: glib-2.0 gobject-2.0 gmodule-no-export-2.0 gthread-2.0 @FFI_PC_PACKAGES@
+Libs: -L${libdir} -lgirepository-1.0 @FFI_PC_LIBS@
 
 Name: gobject-introspection
 Description: GObject Introspection