aboutsummaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-02-07 10:19:07 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-02-07 10:19:07 +0200
commit70569f2e39408d22910fe85699289f4444245f6b (patch)
tree8d8e963b06a30ee9afac35e7e1fa219c8b635c8d /m4
parent8dd90530ce9e6e5bb52fdb89e10d72bd885feda2 (diff)
Autotools support for Qt5
Diffstat (limited to 'm4')
-rw-r--r--m4/libqt.m4178
1 files changed, 65 insertions, 113 deletions
diff --git a/m4/libqt.m4 b/m4/libqt.m4
index 44cbd5c..0e96da8 100644
--- a/m4/libqt.m4
+++ b/m4/libqt.m4
@@ -2,22 +2,21 @@ dnl file : m4/libqt.m4
dnl copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC
dnl license : GNU GPL v2; see accompanying LICENSE file
dnl
-dnl LIBQTCORE([ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND]])
dnl
+dnl LIBQTCORE_COMPILE()
dnl
-AC_DEFUN([LIBQTCORE], [
-libqt_found=no
-
-AC_PATH_PROG([pkg_config],[pkg-config])
-
-AC_MSG_CHECKING([for QtCore])
-
-# 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.
-#
+AC_DEFUN([LIBQTCORE_COMPILE], [
CXX_LIBTOOL_LINK_IFELSE([
AC_LANG_SOURCE([
+// See libodb-qt/odb/qt/details/config.hxx for more information on
+// what's going on here.
+//
+# if defined(__ELF__) && !defined(__PIC__) && !defined(__PIE__)
+# include <QtCore/qconfig.h> // QT_REDUCE_RELOCATIONS
+# ifdef QT_REDUCE_RELOCATIONS
+# define __PIE__
+# endif
+# endif
#include <string>
#include <QtCore/QString>
@@ -29,91 +28,55 @@ main ()
return ss.size () != 0;
}
])],
-[
-libqt_found=yes
-])
+[libqt_found=yes])
+])dnl
+dnl
+dnl LIBQTCORE([ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND]])
+dnl
+dnl
+AC_DEFUN([LIBQTCORE], [
+libqt_found=no
-# Then check for QtCore using default CPPFLAGS/LDFLAGS.
+# QtCore libraries and pkg-config names in the order we should try
+# them.
#
-if test x"$libqt_found" = xno; then
-
- save_LIBS="$LIBS"
- LIBS="-lQtCore $LIBS"
+libqt_lib_names="Qt5Core QtCore5 QtCore Qt4Core QtCore4"
+libqt_pkg_names="Qt5Core QtCore"
- CXX_LIBTOOL_LINK_IFELSE([
-AC_LANG_SOURCE([
-#include <string>
-#include <QtCore/QString>
+AC_PATH_PROG([pkg_config],[pkg-config])
-int
-main ()
-{
- QString qs ("test");
- std::string ss (qs.toStdString ());
- return ss.size () != 0;
-}
-])],
-[
-libqt_found=yes
-])
+AC_MSG_CHECKING([for QtCore])
- if test x"$libqt_found" = xno; then
- LIBS="$save_LIBS"
- fi
-fi
+# First check for QtCore using default CPPFLAGS/LDFLAGS/LIBS. This
+# test allows the user to override the QtCore library name (e.g.,
+# QtCored4, Qt5Core) via the LIBS variable.
+#
+LIBQTCORE_COMPILE
-# Try framework in case we are on Mac OS X.
+# Then check for QtCore using default CPPFLAGS/LDFLAGS.
#
if test x"$libqt_found" = xno; then
+ for lib in $libqt_lib_names; do
+ save_LIBS="$LIBS"
+ LIBS="-l$lib $LIBS"
- save_LIBS="$LIBS"
- LIBS="-framework QtCore $LIBS"
+ LIBQTCORE_COMPILE
- CXX_LIBTOOL_LINK_IFELSE([
-AC_LANG_SOURCE([
-#include <string>
-#include <QtCore/QString>
-
-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
+ if test x"$libqt_found" = xno; then
+ LIBS="$save_LIBS"
+ else
+ break
+ fi
+ done
fi
-# If QtCore is not found, try its versioned variant, QtCore4.
+# Try framework in case we are on Mac OS X.
#
if test x"$libqt_found" = xno; then
-
save_LIBS="$LIBS"
- LIBS="-lQtCore4 $LIBS"
+ LIBS="-framework QtCore $LIBS"
- CXX_LIBTOOL_LINK_IFELSE([
-AC_LANG_SOURCE([
-#include <string>
-#include <QtCore/QString>
-
-int
-main ()
-{
- QString qs ("test");
- std::string ss (qs.toStdString ());
- return ss.size () != 0;
-}
-])],
-[
-libqt_found=yes
-])
+ LIBQTCORE_COMPILE
if test x"$libqt_found" = xno; then
LIBS="$save_LIBS"
@@ -124,39 +87,28 @@ fi
# them using pkg-config.
#
if test x"$libqt_found" = xno; then
-
if test x"$pkg_config" != x; then
- if $pkg_config --exists QtCore; then
- save_CPPFLAGS="$CPPFLAGS"
- save_LIBS="$LIBS"
-
- CPPFLAGS=`$pkg_config --cflags QtCore`
- LIBS=`$pkg_config --libs QtCore`
-
- CPPFLAGS="$CPPFLAGS $save_CPPFLAGS"
- LIBS="$LIBS $save_LIBS"
-
- CXX_LIBTOOL_LINK_IFELSE([
-AC_LANG_SOURCE([
-#include <string>
-#include <QtCore/QString>
-
-int
-main ()
-{
- QString qs ("test");
- std::string ss (qs.toStdString ());
- return ss.size () != 0;
-}
-])],
-[
-libqt_found=yes
-])
- if test x"$libqt_found" = xno; then
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
- fi
- fi
+ for pkg in $libqt_pkg_names; do
+ if $pkg_config --exists $pkg; then
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LIBS="$LIBS"
+
+ CPPFLAGS=`$pkg_config --cflags $pkg`
+ LIBS=`$pkg_config --libs $pkg`
+
+ CPPFLAGS="$CPPFLAGS $save_CPPFLAGS"
+ LIBS="$LIBS $save_LIBS"
+
+ LIBQTCORE_COMPILE
+
+ if test x"$libqt_found" = xno; then
+ CPPFLAGS="$save_CPPFLAGS"
+ LIBS="$save_LIBS"
+ else
+ break
+ fi
+ fi
+ done
fi
fi