Mercurial > octave
changeset 32350:de6e2f546970
build: Improve detection of Qt6 tools.
* m4/acinclude.m4 (OCTAVE_CHECK_QT_VERSION): Don't fail if C++ compiler doesn't
support C++17. Build without GUI instead. Try different names for qtpaths6.
Try to use qmake6 if qtpaths6 is not in PATH. Reset QT_HOST_LIBEXECS to allow
fallback to Qt5 if Qt6 isn't usable.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Wed, 27 Sep 2023 13:00:18 +0200 |
parents | 16845da1ca42 |
children | 469b078fe75b |
files | m4/acinclude.m4 |
diffstat | 1 files changed, 38 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/m4/acinclude.m4 Wed Sep 27 00:08:04 2023 +0200 +++ b/m4/acinclude.m4 Wed Sep 27 13:00:18 2023 +0200 @@ -1860,6 +1860,9 @@ if test -n "$warn_qt_modules"; then OCTAVE_CONFIGURE_WARNING([warn_qt_modules]) fi + if test -n "$warn_qt_cxx17"; then + OCTAVE_CONFIGURE_WARNING([warn_qt_cxx17]) + fi if test -n "$warn_qt_libraries"; then OCTAVE_CONFIGURE_WARNING([warn_qt_libraries]) fi @@ -2021,30 +2024,36 @@ esac ## Ensure that the C++ compiler fully supports C++17. ## Preferably with GNU extensions if flags are required. - AX_CXX_COMPILE_STDCXX(17, [], mandatory) + AX_CXX_COMPILE_STDCXX(17, [], optional) + if test $HAVE_CXX17 -eq 0; then + build_qt_gui=no + warn_qt_cxx17="compiler doesn't support C++17; disabling Qt GUI" + fi ;; *) AC_MSG_ERROR([Unrecognized Qt version $qt_version]) ;; esac - ## Use this check to get info in the log file. - PKG_CHECK_MODULES(QT, [$QT_MODULES], - [], - [build_qt_gui=no - warn_qt_libraries="Qt libraries not found; disabling Qt GUI"]) + if test $build_qt_gui = yes; then + ## Use this check to get info in the log file. + PKG_CHECK_MODULES(QT, [$QT_MODULES], + [], + [build_qt_gui=no + warn_qt_libraries="Qt libraries not found; disabling Qt GUI"]) - ## Check the modules again individually to get lists of modules that - ## are available and/or missing - QT_MODULES_AVAILABLE= - QT_MODULES_MISSING= - for qt_mod in $QT_MODULES; do - if $PKG_CONFIG --exists $qt_mod; then - QT_MODULES_AVAILABLE="$QT_MODULES_AVAILABLE $qt_mod" - else - QT_MODULES_MISSING="$QT_MODULES_MISSING $qt_mod" - fi - done + ## Check the modules again individually to get lists of modules that + ## are available and/or missing + QT_MODULES_AVAILABLE= + QT_MODULES_MISSING= + for qt_mod in $QT_MODULES; do + if $PKG_CONFIG --exists $qt_mod; then + QT_MODULES_AVAILABLE="$QT_MODULES_AVAILABLE $qt_mod" + else + QT_MODULES_MISSING="$QT_MODULES_MISSING $qt_mod" + fi + done + fi if test $build_qt_gui = yes; then ## Retrieve Qt compilation and linker flags @@ -2078,9 +2087,18 @@ AC_CHECK_TOOLS(QTCHOOSER, [qtchooser]) ;; 6) + ac_octave_save_QT_HOST_LIBEXECS=QT_HOST_LIBEXECS if test -z "$QT_HOST_LIBEXECS"; then - AC_CHECK_TOOLS(QTPATHS6, [qtpaths6]) - QT_HOST_LIBEXECS=`$QTPATHS6 --query QT_HOST_LIBEXECS` + AC_CHECK_TOOLS(QTPATHS6, [qtpaths6 qtpaths-qt6]) + if test -n "$QTPATHS6"; then + QT_HOST_LIBEXECS=`$QTPATHS6 --query QT_HOST_LIBEXECS` + fi + fi + if test -z "$QT_HOST_LIBEXECS"; then + AC_CHECK_TOOLS(QMAKE6, [qmake6 qmake-qt6]) + if test -n "$QMAKE6"; then + QT_HOST_LIBEXECS=`$QMAKE6 -query QT_HOST_LIBEXECS` + fi fi ;; esac @@ -2114,6 +2132,7 @@ LRELEASEFLAGS= QCOLLECTIONGENERATORFLAGS= QHELPGENERATORFLAGS= + QT_HOST_LIBEXECS=ac_octave_save_QT_HOST_LIBEXECS $as_unset ac_cv_prog_MOC_QTVER $as_unset ac_cv_prog_ac_ct_MOC_QTVER $as_unset ac_cv_prog_UIC_QTVER