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>
</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>
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
])