summaryrefslogtreecommitdiff
path: root/m4/qt6.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/qt6.m4')
-rw-r--r--m4/qt6.m481
1 files changed, 81 insertions, 0 deletions
diff --git a/m4/qt6.m4 b/m4/qt6.m4
new file mode 100644
index 0000000..e87fc24
--- /dev/null
+++ b/m4/qt6.m4
@@ -0,0 +1,81 @@
+dnl qt6.m4
+dnl Copyright (C) 2016 Intevation GmbH
+dnl
+dnl This file is part of gpgme and is provided under the same license as gpgme
+
+dnl Autoconf macro to find Qt6
+dnl
+dnl sets GPGME_QT6_LIBS and GPGME_QT6_CFLAGS
+dnl
+dnl if QT6 was found have_qt6_libs is set to yes
+
+AC_DEFUN([FIND_QT6],
+[
+ have_qt6_libs="no";
+
+ PKG_CHECK_MODULES(GPGME_QT6,
+ Qt6Core >= 6.4.0,
+ [have_qt6_libs="yes"],
+ [have_qt6_libs="no"])
+
+ PKG_CHECK_MODULES(GPGME_QT6TEST,
+ Qt6Test >= 6.4.0,
+ [have_qt6test_libs="yes"],
+ [have_qt6test_libs="no"])
+
+ if test "$have_qt6_libs" = "yes"; then
+ # Qt6 moved moc to libexec
+ qt6libexecdir=$($PKG_CONFIG --variable=libexecdir 'Qt6Core >= 6.4.0')
+ AC_PATH_TOOL(MOC, moc, [], [$qt6libexecdir])
+ if test -z "$MOC"; then
+ AC_MSG_WARN([moc not found - Qt 6 binding will not be built.])
+ have_qt6_libs="no";
+ fi
+ fi
+
+ if test "$have_qt6_libs" = "yes"; then
+ if test "$have_no_direct_extern_access" = yes; then
+ if test -z "$use_no_direct_extern_access" && test "$have_w32_system" != yes; then
+ mkspecsdir=$($PKG_CONFIG --variable mkspecsdir Qt6Platform)
+ if test -n "$mkspecsdir"; then
+ AC_MSG_CHECKING([whether Qt was built with -mno-direct-extern-access])
+ if grep -q "QT_CONFIG .* no_direct_extern_access" $mkspecsdir/qconfig.pri; then
+ use_no_direct_extern_access="yes"
+ else
+ use_no_direct_extern_access="no"
+ fi
+ AC_MSG_RESULT([$use_no_direct_extern_access])
+ else
+ AC_MSG_WARN([Failed to determine Qt's mkspecs directory. Cannot check its build configuration.])
+ fi
+ fi
+ if test "$use_no_direct_extern_access" = yes; then
+ GPGME_QT6_CFLAGS="$GPGME_QT6_CFLAGS -mno-direct-extern-access"
+ fi
+ fi
+
+ dnl Check that a binary can actually be build with this qt.
+ dnl pkg-config may be set up in a way that it looks also for libraries
+ dnl of the build system and not only for the host system. In that case
+ dnl we check here that we can actually compile / link a qt application
+ dnl for host.
+ OLDCPPFLAGS=$CPPFLAGS
+ OLDLIBS=$LIBS
+
+ CPPFLAGS=$GPGME_QT6_CFLAGS
+ LIBS=$GPGME_QT6_LIBS
+ AC_LANG_PUSH(C++)
+ AC_MSG_CHECKING([whether a simple Qt program can be built])
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
+ #include <QCoreApplication>
+ int main (int argc, char **argv) {
+ QCoreApplication app(argc, argv);
+ app.exec();
+ }])], [have_qt6_libs='yes'], [have_qt6_libs='no'])
+ AC_MSG_RESULT([$have_qt6_libs])
+ AC_LANG_POP()
+
+ CPPFLAGS=$OLDCPPFLAGS
+ LIBS=$OLDLIBS
+ fi
+])