diff options
author | Krzesimir Nowak <krnowak@openismus.com> | 2012-12-04 12:51:23 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2012-12-05 13:40:02 +0100 |
commit | 2e1b32df3c2b5aec1a05f357d58e3ce10d8e2db8 (patch) | |
tree | a7351c576fb5a3ecc6347ce4652c4bc214418066 /configure.ac | |
parent | c623f828fe5eb94c0f64b20ebea527167c607b98 (diff) | |
download | gupnp-dlna-2e1b32df3c2b5aec1a05f357d58e3ce10d8e2db8.tar.gz |
Lower the GLib version dependency to 2.32.
If GLib does not have g_clear_pointer then we provide our own naive
implementation for it in config.h.
https://bugzilla.gnome.org/show_bug.cgi?id=689612
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 6ce354e..b1e4877 100644 --- a/configure.ac +++ b/configure.ac @@ -119,7 +119,7 @@ GUPNP_DLNA_METADATA_BACKEND_CFLAGS="$GUPNP_DLNA_METADATA_BACKEND_CFLAGS -DGUPNP_ AC_SUBST(GUPNP_DLNA_METADATA_BACKEND_CFLAGS) -PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.34]) +PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32]) PKG_CHECK_MODULES([GOBJECT], [gobject-2.0]) PKG_CHECK_MODULES([GMODULE], [gmodule-2.0]) @@ -130,6 +130,40 @@ AC_SUBST(GOBJECT_LIBS) AC_SUBST(GMODULE_CFLAGS) AC_SUBST(GMODULE_LIBS) +# Check for g_clear_pointer +have_g_clear_pointer='no' +PKG_CHECK_EXISTS([glib-2.0 >= 2.34], + [have_g_clear_pointer='yes']) +AS_VAR_IF([have_g_clear_pointer], [no], + [GUPNP_DLNA_TEMP_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + GUPNP_DLNA_TEMP_LIBS="$LIBS" + LIBS="$LIBS $GLIB_LIBS" + AC_LANG([C]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include <glib.h> + ]], + [[ + gchar *test = g_malloc (2); + g_clear_pointer (&test, g_free); + return (test == NULL) + ]])], + [have_g_clear_pointer='yes']) + LIBS="$GUPNP_DLNA_TEMP_LIBS" + CFLAGS="$GUPNP_DLNA_TEMP_CFLAGS"]) + +AS_VAR_IF([have_g_clear_pointer], [no], + [AC_DEFINE([g_clear_pointer(ptr, func)], + [\ + G_STMT_START { \ + if (ptr != NULL && func != NULL) { \ + gpointer g_clear_pointer_tmp_var = *ptr; \ + *ptr = NULL; \ + func (g_clear_pointer_tmp_var); \ + } \ + } G_STMT_END], + [Naive g_clear_pointer implementation.])]) + # Debugging AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=no@:>@]), |