[LyX/master] Improve Qt6 detection

Enrico Forestieri forenr at lyx.org
Sun Mar 21 10:30:56 UTC 2021


commit 4b20ae9d591eb9a472cfe7fa7729c0e95a326206
Author: Enrico Forestieri <forenr at lyx.org>
Date:   Sun Mar 21 11:28:11 2021 +0100

    Improve Qt6 detection
    
    There is still no clear pattern of how distributions will install Qt6.
    The old scheme of adding a -qtN suffix is not followed by OpenSuse,
    and qmake and the ancillary programs are installed with 6 as a suffix.
---
 config/qt.m4 |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/config/qt.m4 b/config/qt.m4
index 4b1bfc4..70b232b 100644
--- a/config/qt.m4
+++ b/config/qt.m4
@@ -72,12 +72,13 @@ AC_DEFUN([QT_CHECK_COMPILE],
 AC_DEFUN([QT_FIND_TOOL],
 [
 	$1=
-	qt_ext=qt4
+	qt_major=4
 	if test "x$USE_QT6" != "xno" ; then
-		qt_ext=qt6
+		qt_major=6
 	elif test "x$USE_QT5" != "xno" ; then
-		qt_ext=qt5
+		qt_major=5
 	fi
+	qt_ext="qt$qt_major"
 
 	if test -n "$qt_cv_bin" ; then
 		AC_PATH_PROGS($1, [$2], [], $qt_cv_bin)
@@ -91,7 +92,7 @@ AC_DEFUN([QT_FIND_TOOL],
 		fi
 	fi
 	if test -z "$$1"; then
-		AC_CHECK_PROGS($1, [$2-$qt_ext $2],[],$PATH)
+		AC_CHECK_PROGS($1, [$2-$qt_ext $2$qt_major $2],[],$PATH)
 	fi
 	if test -z "$$1"; then
 		AC_MSG_ERROR([cannot find $2 binary.])
@@ -401,7 +402,16 @@ AC_DEFUN([QT6_QMAKE_CONFIG],
 	AC_MSG_CHECKING([for Qt6])
 	dnl Use first qmake in PATH
 	ver=`qmake -v | grep -o "Qt version ."`
+	qmake6=""
 	if test "$ver" = "Qt version 6"; then
+	    qmake6="qmake"
+	else
+	    ver=`qmake6 -v | grep -o "Qt version ."`
+	    if test "$ver" = "Qt version 6"; then
+		qmake6="qmake6"
+	    fi
+	fi
+	if test -n "$qmake6" ; then
 	    dnl Use a .pro file for getting qmake's variables
 	    lyx_test_qt_dir=`mktemp -d`
 	    lyx_test_qt_pro="$lyx_test_qt_dir/test.pro"
@@ -413,12 +423,12 @@ percent.target = %
 percent.commands = @echo -n "\$(\$(@))\ "
 QMAKE_EXTRA_TARGETS += percent
 EOF1
-	    qmake $lyx_test_qt_pro -o $lyx_test_qt_mak 1>/dev/null 2>&1
+	    $qmake6 $lyx_test_qt_pro -o $lyx_test_qt_mak 1>/dev/null 2>&1
 	    QT_CORE_INCLUDES=`cd $lyx_test_qt_dir; make -s -f $lyx_test_qt_mak INCPATH | sed 's/-I\. //g'`
 	    qt_corelibs=`cd $lyx_test_qt_dir; make -s -f $lyx_test_qt_mak LIBS`
 	    QT_CORE_LDFLAGS=`echo $qt_corelibs | tr ' ' '\n' | grep -e "^-L" | tr '\n' ' '`
 	    if test -z "$QT_CORE_LDFLAGS"; then
-		QT_CORE_LDFLAGS="-L`qmake -query QT_INSTALL_LIBS`"
+		QT_CORE_LDFLAGS="-L`$qmake6 -query QT_INSTALL_LIBS`"
 		QT_CORE_LIB="$qt_corelibs"
 	    else
 		QT_CORE_LIB=`echo $qt_corelibs | tr ' ' '\n' | grep -e "^-l" | tr '\n' ' '`
@@ -440,17 +450,17 @@ percent.target = %
 percent.commands = @echo -n "\$(\$(@))\ "
 QMAKE_EXTRA_TARGETS += percent
 EOF2
-		qmake $lyx_test_qt_pro -o $lyx_test_qt_mak 1>/dev/null 2>&1
+		$qmake6 $lyx_test_qt_pro -o $lyx_test_qt_mak 1>/dev/null 2>&1
 		QT_INCLUDES=`cd $lyx_test_qt_dir; make -s -f $lyx_test_qt_mak INCPATH | sed 's/-I\. //g'`
 		qt_guilibs=`cd $lyx_test_qt_dir; make -s -f $lyx_test_qt_mak LIBS`
 		QT_LDFLAGS=`echo $qt_guilibs | tr ' ' '\n' | grep -e "^-L" | tr '\n' ' '`
 		if test -z "$QT_LDFLAGS"; then
-		    QT_LDFLAGS="-L`qmake -query QT_INSTALL_LIBS`"
+		    QT_LDFLAGS="-L`$qmake6 -query QT_INSTALL_LIBS`"
 		    QT_LIB="$qt_guilibs"
 		else
 		    QT_LIB=`echo $qt_guilibs | tr ' ' '\n' | grep -e "^-l" | tr '\n' ' '`
 		fi
-		QTLIB_VERSION=`qmake -v | grep "Qt version" | sed -e 's/.*\([[0-9]]\.[[0-9]]*\.[[0-9]]\).*/\1/'`
+		QTLIB_VERSION=`$qmake6 -v | grep "Qt version" | sed -e 's/.*\([[0-9]]\.[[0-9]]*\.[[0-9]]\).*/\1/'`
 		if test -z "$QT_LIB"; then
 		    AC_MSG_RESULT(no)
 		else


More information about the lyx-cvs mailing list