Mercurial > minori
comparison m4/m4_ax_have_qt.m4 @ 249:6b2441c776dd
*: merge
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Wed, 24 Jan 2024 20:18:59 -0500 |
| parents | 82470f83f0c2 |
| children |
comparison
equal
deleted
inserted
replaced
| 248:cf47a8f687c0 | 249:6b2441c776dd |
|---|---|
| 47 # | 47 # |
| 48 # LICENSE | 48 # LICENSE |
| 49 # | 49 # |
| 50 # Copyright (c) 2008 Bastiaan Veelo <Bastiaan@Veelo.net> | 50 # Copyright (c) 2008 Bastiaan Veelo <Bastiaan@Veelo.net> |
| 51 # Copyright (c) 2014 Alex Henrie <alexhenrie24@gmail.com> | 51 # Copyright (c) 2014 Alex Henrie <alexhenrie24@gmail.com> |
| 52 # Copyright (c) 2024 Paper <mrpapersonic@gmail.com> | |
| 52 # | 53 # |
| 53 # Copying and distribution of this file, with or without modification, are | 54 # Copying and distribution of this file, with or without modification, are |
| 54 # permitted in any medium without royalty provided the copyright notice | 55 # permitted in any medium without royalty provided the copyright notice |
| 55 # and this notice are preserved. This file is offered as-is, without any | 56 # and this notice are preserved. This file is offered as-is, without any |
| 56 # warranty. | 57 # warranty. |
| 58 #serial 25 | 59 #serial 25 |
| 59 | 60 |
| 60 AU_ALIAS([BNV_HAVE_QT], [AX_HAVE_QT]) | 61 AU_ALIAS([BNV_HAVE_QT], [AX_HAVE_QT]) |
| 61 AC_DEFUN([AX_HAVE_QT], | 62 AC_DEFUN([AX_HAVE_QT], |
| 62 [ | 63 [ |
| 63 AC_REQUIRE([AC_PROG_CXX]) | 64 AC_REQUIRE([AC_PROG_CXX]) |
| 64 AC_REQUIRE([AC_PATH_X]) | 65 AC_REQUIRE([AC_PATH_X]) |
| 65 AC_REQUIRE([AC_PATH_XTRA]) | 66 AC_REQUIRE([AC_PATH_XTRA]) |
| 66 # openSUSE leap 15.3 installs qmake-qt5, not qmake, for example. | 67 # openSUSE leap 15.3 installs qmake-qt5, not qmake, for example. |
| 67 # Store the full name (like qmake-qt5) into QMAKE | 68 # Store the full name (like qmake-qt5) into QMAKE |
| 68 # and the specifier (like -qt5 or empty) into am_have_qt_qmexe_suff. | 69 # and the specifier (like -qt5 or empty) into am_have_qt_qmexe_suff. |
| 69 AC_ARG_VAR([QMAKE],"Qt make tool") | 70 AC_ARG_VAR([QMAKE],"Qt make tool") |
| 70 AC_CHECK_TOOLS([QMAKE],[qmake qmake-qt6 qmake-qt5],[false]) | 71 AC_CHECK_TOOLS([QMAKE],[qmake qmake-qt6 qmake-qt5],[false]) |
| 71 | 72 |
| 72 AC_MSG_CHECKING(for Qt) | 73 AC_MSG_CHECKING(for Qt) |
| 73 am_have_qt_qmexe_suff=`echo $QMAKE | sed 's,^.*qmake,,'` | 74 am_have_qt_qmexe_suff=`echo $QMAKE | sed 's,^.*qmake,,'` |
| 74 # If we have Qt5 or later in the path, we're golden | 75 # If we have Qt5 or later in the path, we're golden |
| 75 ver=`$QMAKE --version | grep -o "Qt version ."` | 76 ver=`$QMAKE --version | grep -o "Qt version ."` |
| 76 | 77 |
| 77 if test "$ver" ">" "Qt version 4"; then | 78 if test "$ver" ">" "Qt version 4"; then |
| 78 have_qt=yes | 79 have_qt=yes |
| 79 # This pro file dumps qmake's variables, but it only works on Qt 5 or later | 80 # This pro file dumps qmake's variables, but it only works on Qt 5 or later |
| 80 am_have_qt_dir=`mktemp -d` | 81 am_have_qt_dir=`mktemp -d` |
| 81 am_have_qt_pro="$am_have_qt_dir/test.pro" | 82 am_have_qt_pro="$am_have_qt_dir/test.pro" |
| 82 am_have_qt_stash="$am_have_qt_dir/.qmake.stash" | 83 am_have_qt_stash="$am_have_qt_dir/.qmake.stash" |
| 83 am_have_qt_makefile="$am_have_qt_dir/Makefile" | 84 am_have_qt_makefile="$am_have_qt_dir/Makefile" |
| 84 # http://qt-project.org/doc/qt-5/qmake-variable-reference.html#qt | 85 # http://qt-project.org/doc/qt-5/qmake-variable-reference.html#qt |
| 85 cat > $am_have_qt_pro << EOF | 86 cat > $am_have_qt_pro << EOF |
| 86 win32 { | 87 win32 { |
| 87 CONFIG -= debug_and_release | 88 CONFIG -= debug_and_release |
| 88 CONFIG += release | 89 CONFIG += release |
| 89 } | 90 } |
| 90 qtHaveModule(axcontainer): QT += axcontainer | 91 |
| 91 qtHaveModule(axserver): QT += axserver | 92 CONFIG += sdk_no_version_check |
| 92 qtHaveModule(concurrent): QT += concurrent | 93 |
| 94 # use absolute paths, useful on windows | |
| 95 # where qmake really loves giving relative paths | |
| 96 QMAKE_PROJECT_DEPTH = 0 | |
| 97 | |
| 98 # commented out all the modules we don't use | |
| 99 #qtHaveModule(axcontainer): QT += axcontainer | |
| 100 #qtHaveModule(axserver): QT += axserver | |
| 101 #qtHaveModule(concurrent): QT += concurrent | |
| 93 qtHaveModule(core): QT += core | 102 qtHaveModule(core): QT += core |
| 94 qtHaveModule(dbus): QT += dbus | 103 #qtHaveModule(dbus): QT += dbus |
| 95 qtHaveModule(declarative): QT += declarative | 104 #qtHaveModule(declarative): QT += declarative |
| 96 qtHaveModule(designer): QT += designer | 105 #qtHaveModule(designer): QT += designer |
| 97 qtHaveModule(gui): QT += gui | 106 qtHaveModule(gui): QT += gui |
| 98 qtHaveModule(help): QT += help | 107 #qtHaveModule(help): QT += help |
| 99 qtHaveModule(multimedia): QT += multimedia | 108 #qtHaveModule(multimedia): QT += multimedia |
| 100 qtHaveModule(multimediawidgets): QT += multimediawidgets | 109 #qtHaveModule(multimediawidgets): QT += multimediawidgets |
| 101 qtHaveModule(network): QT += network | 110 #qtHaveModule(network): QT += network |
| 102 qtHaveModule(opengl): QT += opengl | 111 #qtHaveModule(opengl): QT += opengl |
| 103 qtHaveModule(printsupport): QT += printsupport | 112 #qtHaveModule(printsupport): QT += printsupport |
| 104 qtHaveModule(qml): QT += qml | 113 #qtHaveModule(qml): QT += qml |
| 105 qtHaveModule(qmltest): QT += qmltest | 114 #qtHaveModule(qmltest): QT += qmltest |
| 106 qtHaveModule(x11extras): QT += x11extras | 115 #qtHaveModule(x11extras): QT += x11extras |
| 107 qtHaveModule(script): QT += script | 116 #qtHaveModule(script): QT += script |
| 108 qtHaveModule(scripttools): QT += scripttools | 117 #qtHaveModule(scripttools): QT += scripttools |
| 109 qtHaveModule(sensors): QT += sensors | 118 #qtHaveModule(sensors): QT += sensors |
| 110 qtHaveModule(serialport): QT += serialport | 119 #qtHaveModule(serialport): QT += serialport |
| 111 qtHaveModule(sql): QT += sql | 120 #qtHaveModule(sql): QT += sql |
| 112 qtHaveModule(svg): QT += svg | 121 #qtHaveModule(svg): QT += svg |
| 113 qtHaveModule(testlib): QT += testlib | 122 #qtHaveModule(testlib): QT += testlib |
| 114 qtHaveModule(uitools): QT += uitools | 123 #qtHaveModule(uitools): QT += uitools |
| 115 qtHaveModule(webkit): QT += webkit | 124 #qtHaveModule(webkit): QT += webkit |
| 116 qtHaveModule(webkitwidgets): QT += webkitwidgets | 125 #qtHaveModule(webkitwidgets): QT += webkitwidgets |
| 117 qtHaveModule(xml): QT += xml | 126 #qtHaveModule(xml): QT += xml |
| 118 qtHaveModule(xmlpatterns): QT += xmlpatterns | 127 #qtHaveModule(xmlpatterns): QT += xmlpatterns |
| 128 qtHaveModule(widgets): QT += widgets | |
| 119 percent.target = % | 129 percent.target = % |
| 120 percent.commands = @echo -n "\$(\$(@))\ " | 130 percent.commands = @echo -n "\$(\$(@))\ " |
| 121 QMAKE_EXTRA_TARGETS += percent | 131 QMAKE_EXTRA_TARGETS += percent |
| 122 EOF | 132 EOF |
| 123 $QMAKE $am_have_qt_pro -o $am_have_qt_makefile | 133 am_have_qt_makefile_cxxflags=`cat << EOF |
| 124 QT_CXXFLAGS=`cd $am_have_qt_dir; make -s -f $am_have_qt_makefile CXXFLAGS INCPATH` | 134 include $am_have_qt_makefile |
| 125 QT_LIBS=`cd $am_have_qt_dir; make -s -f $am_have_qt_makefile LIBS` | 135 |
| 126 rm $am_have_qt_pro $am_have_qt_stash $am_have_qt_makefile | 136 VAR: |
| 127 rmdir $am_have_qt_dir | 137 @echo \\$(CXXFLAGS) \\$(INCPATH) |
| 128 | 138 EOF` |
| 129 # Look for specific tools in $PATH | 139 am_have_qt_makefile_libs=`cat << EOF |
| 130 QT_MOC=`which moc$am_have_qt_qmexe_suff` | 140 include $am_have_qt_makefile |
| 131 QT_UIC=`which uic$am_have_qt_qmexe_suff` | 141 |
| 132 QT_RCC=`which rcc$am_have_qt_qmexe_suff` | 142 VAR: |
| 133 QT_LRELEASE=`which lrelease$am_have_qt_qmexe_suff` | 143 @echo \\$(LIBS) |
| 134 QT_LUPDATE=`which lupdate$am_have_qt_qmexe_suff` | 144 EOF` |
| 135 | 145 $QMAKE "$am_have_qt_pro" -o "$am_have_qt_makefile" |
| 136 # Get Qt version from qmake | 146 QT_CXXFLAGS=`cd $am_have_qt_dir; echo "\$am_have_qt_makefile_cxxflags" | make -s -f - VAR` |
| 137 QT_DIR=`$QMAKE --version | grep -o -E /.+` | 147 QT_LIBS=`cd $am_have_qt_dir; echo "\$am_have_qt_makefile_libs" | make -s -f - VAR` |
| 138 | 148 rm $am_have_qt_pro $am_have_qt_stash $am_have_qt_makefile |
| 139 # All variables are defined, report the result | 149 rmdir $am_have_qt_dir |
| 140 AC_MSG_RESULT([$have_qt: | 150 |
| 141 QT_CXXFLAGS=$QT_CXXFLAGS | 151 # Look for specific tools in $PATH |
| 142 QT_DIR=$QT_DIR | 152 QT_MOC=`which moc$am_have_qt_qmexe_suff` |
| 143 QT_LIBS=$QT_LIBS | 153 QT_UIC=`which uic$am_have_qt_qmexe_suff` |
| 144 QT_UIC=$QT_UIC | 154 QT_RCC=`which rcc$am_have_qt_qmexe_suff` |
| 145 QT_MOC=$QT_MOC | 155 QT_LRELEASE=`which lrelease$am_have_qt_qmexe_suff` |
| 146 QT_RCC=$QT_RCC | 156 QT_LUPDATE=`which lupdate$am_have_qt_qmexe_suff` |
| 147 QT_LRELEASE=$QT_LRELEASE | 157 |
| 148 QT_LUPDATE=$QT_LUPDATE]) | 158 # Get Qt version from qmake |
| 149 else | 159 QT_DIR=`$QMAKE --version | grep -o -E /.+` |
| 150 # Qt was not found | 160 |
| 151 have_qt=no | 161 # All variables are defined, report the result |
| 152 QT_CXXFLAGS= | 162 AC_MSG_RESULT([$have_qt: |
| 153 QT_DIR= | 163 QT_CXXFLAGS=$QT_CXXFLAGS |
| 154 QT_LIBS= | 164 QT_DIR=$QT_DIR |
| 155 QT_UIC= | 165 QT_LIBS=$QT_LIBS |
| 156 QT_MOC= | 166 QT_UIC=$QT_UIC |
| 157 QT_RCC= | 167 QT_MOC=$QT_MOC |
| 158 QT_LRELEASE= | 168 QT_RCC=$QT_RCC |
| 159 QT_LUPDATE= | 169 QT_LRELEASE=$QT_LRELEASE |
| 160 AC_MSG_RESULT($have_qt) | 170 QT_LUPDATE=$QT_LUPDATE]) |
| 161 fi | 171 else |
| 162 AC_SUBST(QT_CXXFLAGS) | 172 # Qt was not found |
| 163 AC_SUBST(QT_DIR) | 173 have_qt=no |
| 164 AC_SUBST(QT_LIBS) | 174 QT_CXXFLAGS= |
| 165 AC_SUBST(QT_UIC) | 175 QT_DIR= |
| 166 AC_SUBST(QT_MOC) | 176 QT_LIBS= |
| 167 AC_SUBST(QT_RCC) | 177 QT_UIC= |
| 168 AC_SUBST(QT_LRELEASE) | 178 QT_MOC= |
| 169 AC_SUBST(QT_LUPDATE) | 179 QT_RCC= |
| 170 AC_SUBST(QMAKE) | 180 QT_LRELEASE= |
| 171 | 181 QT_LUPDATE= |
| 172 #### Being paranoid: | 182 AC_MSG_RESULT($have_qt) |
| 173 if test x"$have_qt" = xyes; then | 183 fi |
| 174 AC_MSG_CHECKING(correct functioning of Qt installation) | 184 AC_SUBST(QT_CXXFLAGS) |
| 175 AC_CACHE_VAL(ax_cv_qt_test_result, | 185 AC_SUBST(QT_DIR) |
| 176 [ | 186 AC_SUBST(QT_LIBS) |
| 177 cat > ax_qt_test.h << EOF | 187 AC_SUBST(QT_UIC) |
| 188 AC_SUBST(QT_MOC) | |
| 189 AC_SUBST(QT_RCC) | |
| 190 AC_SUBST(QT_LRELEASE) | |
| 191 AC_SUBST(QT_LUPDATE) | |
| 192 AC_SUBST(QMAKE) | |
| 193 | |
| 194 #### Being paranoid: | |
| 195 if test x"$have_qt" = xyes; then | |
| 196 AC_MSG_CHECKING(correct functioning of Qt installation) | |
| 197 AC_CACHE_VAL(ax_cv_qt_test_result, | |
| 198 [ | |
| 199 cat > ax_qt_test.h << EOF | |
| 178 #include <qobject.h> | 200 #include <qobject.h> |
| 179 class Test : public QObject | 201 class Test : public QObject |
| 180 { | 202 { |
| 181 Q_OBJECT | 203 Q_OBJECT |
| 182 public: | 204 public: |
| 183 Test() {} | 205 Test() {} |
| 184 ~Test() {} | 206 ~Test() {} |
| 185 public slots: | 207 public slots: |
| 186 void receive() {} | 208 void receive() {} |
| 187 signals: | 209 signals: |
| 188 void send(); | 210 void send(); |
| 189 }; | 211 }; |
| 190 EOF | 212 EOF |
| 191 | 213 |
| 192 cat > ax_qt_main.$ac_ext << EOF | 214 cat > ax_qt_main.$ac_ext << EOF |
| 193 #include "ax_qt_test.h" | 215 #include "ax_qt_test.h" |
| 194 #include <qapplication.h> | 216 #include <qapplication.h> |
| 195 int main( int argc, char **argv ) | 217 int main( int argc, char **argv ) |
| 196 { | 218 { |
| 197 QApplication app( argc, argv ); | 219 QApplication app( argc, argv ); |
| 198 Test t; | 220 Test t; |
| 199 QObject::connect( &t, SIGNAL(send()), &t, SLOT(receive()) ); | 221 QObject::connect( &t, SIGNAL(send()), &t, SLOT(receive()) ); |
| 200 } | 222 } |
| 201 EOF | 223 EOF |
| 202 | 224 |
| 203 ax_cv_qt_test_result="failure" | 225 ax_cv_qt_test_result="failure" |
| 204 ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null" | 226 ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null" |
| 205 AC_TRY_EVAL(ax_try_1) | 227 AC_TRY_EVAL(ax_try_1) |
| 206 if test x"$ac_status" != x0; then | 228 if test x"$ac_status" != x0; then |
| 207 echo "$ax_err_1" >&AS_MESSAGE_LOG_FD | 229 echo "$ax_err_1" >&AS_MESSAGE_LOG_FD |
| 208 echo "configure: could not run $QT_MOC on:" >&AS_MESSAGE_LOG_FD | 230 echo "configure: could not run $QT_MOC on:" >&AS_MESSAGE_LOG_FD |
| 209 cat ax_qt_test.h >&AS_MESSAGE_LOG_FD | 231 cat ax_qt_test.h >&AS_MESSAGE_LOG_FD |
| 210 else | 232 else |
| 211 ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null" | 233 ax_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_ax_qt_test.o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null" |
| 212 AC_TRY_EVAL(ax_try_2) | 234 AC_TRY_EVAL(ax_try_2) |
| 213 if test x"$ac_status" != x0; then | 235 if test x"$ac_status" != x0; then |
| 214 echo "$ax_err_2" >&AS_MESSAGE_LOG_FD | 236 echo "$ax_err_2" >&AS_MESSAGE_LOG_FD |
| 215 echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD | 237 echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD |
| 216 cat moc_ax_qt_test.$ac_ext >&AS_MESSAGE_LOG_FD | 238 cat moc_ax_qt_test.$ac_ext >&AS_MESSAGE_LOG_FD |
| 217 else | 239 else |
| 218 ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext >/dev/null 2>/dev/null" | 240 ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext >/dev/null 2>/dev/null" |
| 219 AC_TRY_EVAL(ax_try_3) | 241 AC_TRY_EVAL(ax_try_3) |
| 220 if test x"$ac_status" != x0; then | 242 if test x"$ac_status" != x0; then |
| 221 echo "$ax_err_3" >&AS_MESSAGE_LOG_FD | 243 echo "$ax_err_3" >&AS_MESSAGE_LOG_FD |
| 222 echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD | 244 echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD |
| 223 cat ax_qt_main.$ac_ext >&AS_MESSAGE_LOG_FD | 245 cat ax_qt_main.$ac_ext >&AS_MESSAGE_LOG_FD |
| 224 else | 246 else |
| 225 ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS >/dev/null 2>/dev/null" | 247 ax_try_4="$CXX -o ax_qt_main ax_qt_main.o moc_ax_qt_test.o $QT_LIBS $LIBS >/dev/null 2>/dev/null" |
| 226 AC_TRY_EVAL(ax_try_4) | 248 AC_TRY_EVAL(ax_try_4) |
| 227 if test x"$ac_status" != x0; then | 249 if test x"$ac_status" != x0; then |
| 228 echo "$ax_err_4" >&AS_MESSAGE_LOG_FD | 250 echo "$ax_err_4" >&AS_MESSAGE_LOG_FD |
| 229 else | 251 else |
| 230 ax_cv_qt_test_result="success" | 252 ax_cv_qt_test_result="success" |
| 231 fi | 253 fi |
| 232 fi | 254 fi |
| 233 fi | 255 fi |
| 234 fi | 256 fi |
| 235 ])dnl AC_CACHE_VAL ax_cv_qt_test_result | 257 ])dnl AC_CACHE_VAL ax_cv_qt_test_result |
| 236 AC_MSG_RESULT([$ax_cv_qt_test_result]) | 258 AC_MSG_RESULT([$ax_cv_qt_test_result]) |
| 237 if test x"$ax_cv_qt_test_result" = "xfailure"; then | 259 if test x"$ax_cv_qt_test_result" = "xfailure"; then |
| 238 AC_MSG_ERROR([Failed to find matching components of a complete | 260 AC_MSG_ERROR([Failed to find matching components of a complete |
| 239 Qt installation. Try using more options, | 261 Qt installation. Try using more options, |
| 240 see ./configure --help.]) | 262 see ./configure --help.]) |
| 241 fi | 263 fi |
| 242 | 264 |
| 243 rm -f ax_qt_test.h moc_ax_qt_test.$ac_ext moc_ax_qt_test.o \ | 265 rm -f ax_qt_test.h moc_ax_qt_test.$ac_ext moc_ax_qt_test.o \ |
| 244 ax_qt_main.$ac_ext ax_qt_main.o ax_qt_main | 266 ax_qt_main.$ac_ext ax_qt_main.o ax_qt_main |
| 245 fi | 267 fi |
| 246 ]) | 268 ]) |
