From 9e3271419d502a2ae3e1718f04fe2b790b679280 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 24 Apr 2011 14:02:03 +0200 Subject: Improve autoconf test for Qt --- m4/libqt.m4 | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 5 deletions(-) diff --git a/m4/libqt.m4 b/m4/libqt.m4 index b79e0a8..2ab8272 100644 --- a/m4/libqt.m4 +++ b/m4/libqt.m4 @@ -13,11 +13,10 @@ AC_PATH_PROG([pkg_config],[pkg-config]) AC_MSG_CHECKING([for QtCore]) -# First check for QtCore using default CPPFLAGS/LDFLAGS. +# First check for QtCore using default CPPFLAGS/LDFLAGS/LIBS. This +# test allows the user to override the QtCore library name (e.g., +# QtCored4) via the LIBS variable. # -save_LIBS="$LIBS" -LIBS="-lQtCore $LIBS" - CXX_LIBTOOL_LINK_IFELSE( AC_LANG_SOURCE([[ #include @@ -35,11 +34,68 @@ main () libqt_found=yes ]) +# Then check for QtCore using default CPPFLAGS/LDFLAGS. +# +if test x"$libqt_found" = xno; then + + save_LIBS="$LIBS" + LIBS="-lQtCore $LIBS" + + CXX_LIBTOOL_LINK_IFELSE( +AC_LANG_SOURCE([[ +#include +#include + +int +main () +{ + QString qs ("test"); + std::string ss (qs.toStdString ()); + return ss.size () != 0; +} +]]), +[ +libqt_found=yes +]) + + if test x"$libqt_found" = xno; then + LIBS="$save_LIBS" + fi +fi + +# If QtCore is not found, try its versioned variant, QtCore4. +# +if test x"$libqt_found" = xno; then + + save_LIBS="$LIBS" + LIBS="-lQtCore4 $LIBS" + + CXX_LIBTOOL_LINK_IFELSE( +AC_LANG_SOURCE([[ +#include +#include + +int +main () +{ + QString qs ("test"); + std::string ss (qs.toStdString ()); + return ss.size () != 0; +} +]]), +[ +libqt_found=yes +]) + + if test x"$libqt_found" = xno; then + LIBS="$save_LIBS" + fi +fi + # If default CPPFLAGS/LDFLAGS didn't work, try to discover # them using pkg-config. # if test x"$libqt_found" = xno; then - LIBS="$save_LIBS" if test x"$pkg_config" != x; then if $pkg_config --exists QtCore; then -- cgit v1.1