[gtk+] m4: Fix GTK_CHECK_BACKEND() to also check for a minimum version



commit 64934a762311630e2a9146ee1c8ddab3c040d24d
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Thu Feb 17 09:33:07 2011 +0000

    m4: Fix GTK_CHECK_BACKEND() to also check for a minimum version
    
    This should make the macro slightly more useful.
    
    Update the documentation mentioning the macro as well.

 docs/reference/gtk/compiling.sgml     |    7 ++++---
 docs/reference/gtk/migrating-2to3.xml |    2 +-
 m4macros/gtk-3.0.m4                   |   29 ++++++++++-------------------
 3 files changed, 15 insertions(+), 23 deletions(-)
---
diff --git a/docs/reference/gtk/compiling.sgml b/docs/reference/gtk/compiling.sgml
index 6f593a0..b8a080d 100644
--- a/docs/reference/gtk/compiling.sgml
+++ b/docs/reference/gtk/compiling.sgml
@@ -88,10 +88,11 @@ line option <literal>-DGTK_MULTIDEVICE_SAFE=1</literal>.
           list of modules to be checked along with GTK+.</listitem>
         </varlistentry>
         <varlistentry>
-          <term>GTK_CHECK_BACKEND([backend-name], [if-found], [if-not-found])</term>
+          <term>GTK_CHECK_BACKEND([backend-name], [minimum-version], [if-found], [if-not-found])</term>
           <listitem>This macro should be used to check if a specific backend
-          is supported by GTK+. The <emphasis>if-found</emphasis> and the
-          <emphasis>if-not-found</emphasis> arguments are optional.</listitem>
+          is supported by GTK+. The <emphasis>minimum-version</emphasis>,
+          <emphasis>if-found</emphasis> and <emphasis>if-not-found</emphasis>
+          arguments are optional.</listitem>
         </varlistentry>
       </variablelist>
     </para>
diff --git a/docs/reference/gtk/migrating-2to3.xml b/docs/reference/gtk/migrating-2to3.xml
index 8be3996..0c3a2e4 100644
--- a/docs/reference/gtk/migrating-2to3.xml
+++ b/docs/reference/gtk/migrating-2to3.xml
@@ -900,7 +900,7 @@ AM_CONDITIONAL(BUILD_X11, test `$PKG_CONFIG --variable=target gtk+-2.0` = "x11")
       </programlisting></informalexample>
       then you should now use the M4 macro provided by GTK+ itself:
       <informalexample><programlisting>
-GTK_CHECK_BACKEND([x11], [have_x11=yes], [have_x11=no])
+GTK_CHECK_BACKEND([x11], [3.0.2], [have_x11=yes], [have_x11=no])
 AM_CONDITIONAL(BUILD_x11, [test "x$have_x11" = "xyes"])
       </programlisting></informalexample>
     </para>
diff --git a/m4macros/gtk-3.0.m4 b/m4macros/gtk-3.0.m4
index 3147a76..5238b43 100644
--- a/m4macros/gtk-3.0.m4
+++ b/m4macros/gtk-3.0.m4
@@ -195,34 +195,25 @@ main ()
   rm -f conf.gtktest
 ])
 
-dnl GTK_CHECK_BACKEND(BACKEND-NAME [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
 dnl   Tests for BACKEND-NAME in the GTK targets list
 dnl
 AC_DEFUN([GTK_CHECK_BACKEND],
 [
-  backend=$1
-  if test "x$backend" = "x"; then
-    AC_MSG_ERROR([A backend must be specified])
-  fi
+  pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0)
+  min_gtk_version=ifelse([$2],,3.0.0,$2)
+
+  AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])])
 
-  PKG_PROG_PKG_CONFIG([0.16])
-  GDK_TARGETS=`$PKG_CONFIG --variable=targets gdk-3.0`
-  if test "x$GDK_TARGETS" = "x"; then
-    ifelse([$3],,[AC_MSG_ERROR([GDK targets not found.])],[$3])
+  if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args ; then
+    target_found=yes
   else
-    ifelse([$2],,[:],[$2])
+    target_found=no
   fi
 
-  target_found=no
-  for target in $GDK_TARGETS; do
-    if test "x$target" = "x$backend"; then
-      target_found=yes
-    fi
-  done
-
   if test "x$target_found" = "xno"; then
-    ifelse([$3],,[AC_MSG_ERROR([Backend $backend not found.])],[$3])
+    ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4])
   else
-    ifelse([$2],,[:],[$2])
+    ifelse([$3],,[:],[$3])
   fi
 ])



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