Mercurial > minori
diff m4/m4_ax_have_qt.m4 @ 258:862d0d8619f6
*: HUUUGE changes
animia has been renamed to animone, so instead of thinking of a
health condition, you think of a beautiful flower :)
I've also edited some of the code for animone, but I have no idea
if it even works or not because I don't have a mac or windows
machine lying around. whoops!
... anyway, all of the changes divergent from Anisthesia are now
licensed under BSD. it's possible that I could even rewrite most
of the code to where I don't even have to keep the MIT license,
but that's thinking too far into the future
I've been slacking off on implementing the anime seasons page,
mostly out of laziness. I think I'd have to create another db file
specifically for the seasons
anyway, this code is being pushed *primarily* because the hard drive
it's on is failing! yay :)
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Mon, 01 Apr 2024 02:43:44 -0400 |
parents | |
children | 9a04802848c0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m4/m4_ax_have_qt.m4 Mon Apr 01 02:43:44 2024 -0400 @@ -0,0 +1,220 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_have_qt.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_HAVE_QT +# +# DESCRIPTION +# +# Searches $PATH and queries qmake for Qt include files, libraries and Qt +# binary utilities. The macro only supports Qt5 or later. +# +# The following shell variable is set to either "yes" or "no": +# +# have_qt +# +# Additionally, the following variables are exported: +# +# QT_CXXFLAGS +# QT_LIBS +# QT_MOC +# QT_UIC +# QT_RCC +# QT_LRELEASE +# QT_LUPDATE +# QT_DIR +# QMAKE +# +# which respectively contain an "-I" flag pointing to the Qt include +# directory, link flags necessary to link with Qt and X, the full path to +# the meta object compiler and the user interface compiler both, and +# finally the variable QTDIR as Qt likes to see it defined. +# +# Example lines for Makefile.in: +# +# CXXFLAGS = @QT_CXXFLAGS@ +# MOC = @QT_MOC@ +# +# After the variables have been set, a trial compile and link is performed +# to check the correct functioning of the meta object compiler. This test +# may fail when the different detected elements stem from different +# releases of the Qt framework. In that case, an error message is emitted +# and configure stops. +# +# No common variables such as $LIBS or $CFLAGS are polluted. +# +# LICENSE +# +# Copyright (c) 2008 Bastiaan Veelo <Bastiaan@Veelo.net> +# Copyright (c) 2014 Alex Henrie <alexhenrie24@gmail.com> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 25 + +AU_ALIAS([BNV_HAVE_QT], [AX_HAVE_QT]) +AC_DEFUN([AX_HAVE_QT], +[ + AC_REQUIRE([AC_PROG_CXX]) + AC_REQUIRE([AC_PATH_X]) + AC_REQUIRE([AC_PATH_XTRA]) + # openSUSE leap 15.3 installs qmake-qt5, not qmake, for example. + # Store the full name (like qmake-qt5) into QMAKE + # and the specifier (like -qt5 or empty) into am_have_qt_qmexe_suff. + AC_ARG_VAR([QMAKE],"Qt make tool") + AC_CHECK_TOOLS([QMAKE],[qmake qmake-qt6 qmake-qt5],[false]) + + AC_MSG_CHECKING(for Qt) + am_have_qt_qmexe_suff=`echo $QMAKE | sed 's,^.*qmake,,'` + # If we have Qt5 or later in the path, we're golden + ver=`$QMAKE --version | grep -o "Qt version ."` + + if test "$ver" ">" "Qt version 4"; then + have_qt=yes + # This pro file dumps qmake's variables, but it only works on Qt 5 or later + am_have_qt_dir=`mktemp -d` + am_have_qt_pro="$am_have_qt_dir/test.pro" + am_have_qt_stash="$am_have_qt_dir/.qmake.stash" + am_have_qt_makefile="$am_have_qt_dir/Makefile" + # http://qt-project.org/doc/qt-5/qmake-variable-reference.html#qt + cat > $am_have_qt_pro << EOF +win32 { + CONFIG -= debug_and_release + CONFIG += release +} +qtHaveModule(core): QT += core +qtHaveModule(gui): QT += gui +qtHaveModule(widgets): QT += widgets +percent.target = % +percent.commands = @echo -n "\$(\$(@))\ " +QMAKE_EXTRA_TARGETS += percent +EOF + $QMAKE $am_have_qt_pro -o $am_have_qt_makefile + QT_CXXFLAGS=`cd $am_have_qt_dir; make -s -f $am_have_qt_makefile CXXFLAGS INCPATH` + QT_LIBS=`cd $am_have_qt_dir; make -s -f $am_have_qt_makefile LIBS` + rm $am_have_qt_pro $am_have_qt_stash $am_have_qt_makefile + rmdir $am_have_qt_dir + + # Look for specific tools in $PATH + QT_MOC=`which moc$am_have_qt_qmexe_suff` + QT_UIC=`which uic$am_have_qt_qmexe_suff` + QT_RCC=`which rcc$am_have_qt_qmexe_suff` + QT_LRELEASE=`which lrelease$am_have_qt_qmexe_suff` + QT_LUPDATE=`which lupdate$am_have_qt_qmexe_suff` + + # Get Qt version from qmake + QT_DIR=`$QMAKE --version | grep -o -E /.+` + + # All variables are defined, report the result + AC_MSG_RESULT([$have_qt: + QT_CXXFLAGS=$QT_CXXFLAGS + QT_DIR=$QT_DIR + QT_LIBS=$QT_LIBS + QT_UIC=$QT_UIC + QT_MOC=$QT_MOC + QT_RCC=$QT_RCC + QT_LRELEASE=$QT_LRELEASE + QT_LUPDATE=$QT_LUPDATE]) + else + # Qt was not found + have_qt=no + QT_CXXFLAGS= + QT_DIR= + QT_LIBS= + QT_UIC= + QT_MOC= + QT_RCC= + QT_LRELEASE= + QT_LUPDATE= + AC_MSG_RESULT($have_qt) + fi + AC_SUBST(QT_CXXFLAGS) + AC_SUBST(QT_DIR) + AC_SUBST(QT_LIBS) + AC_SUBST(QT_UIC) + AC_SUBST(QT_MOC) + AC_SUBST(QT_RCC) + AC_SUBST(QT_LRELEASE) + AC_SUBST(QT_LUPDATE) + AC_SUBST(QMAKE) + + #### Being paranoid: + if test x"$have_qt" = xyes; then + AC_MSG_CHECKING(correct functioning of Qt installation) + AC_CACHE_VAL(ax_cv_qt_test_result, + [ + cat > ax_qt_test.h << EOF +#include <qobject.h> +class Test : public QObject +{ +Q_OBJECT +public: + Test() {} + ~Test() {} +public slots: + void receive() {} +signals: + void send(); +}; +EOF + + cat > ax_qt_main.$ac_ext << EOF +#include "ax_qt_test.h" +#include <qapplication.h> +int main( int argc, char **argv ) +{ + QApplication app( argc, argv ); + Test t; + QObject::connect( &t, SIGNAL(send()), &t, SLOT(receive()) ); +} +EOF + + ax_cv_qt_test_result="failure" + ax_try_1="$QT_MOC ax_qt_test.h -o moc_ax_qt_test.$ac_ext >/dev/null 2>/dev/null" + AC_TRY_EVAL(ax_try_1) + if test x"$ac_status" != x0; then + echo "$ax_err_1" >&AS_MESSAGE_LOG_FD + echo "configure: could not run $QT_MOC on:" >&AS_MESSAGE_LOG_FD + cat ax_qt_test.h >&AS_MESSAGE_LOG_FD + else + 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" + AC_TRY_EVAL(ax_try_2) + if test x"$ac_status" != x0; then + echo "$ax_err_2" >&AS_MESSAGE_LOG_FD + echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD + cat moc_ax_qt_test.$ac_ext >&AS_MESSAGE_LOG_FD + else + ax_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o ax_qt_main.o ax_qt_main.$ac_ext >/dev/null 2>/dev/null" + AC_TRY_EVAL(ax_try_3) + if test x"$ac_status" != x0; then + echo "$ax_err_3" >&AS_MESSAGE_LOG_FD + echo "configure: could not compile:" >&AS_MESSAGE_LOG_FD + cat ax_qt_main.$ac_ext >&AS_MESSAGE_LOG_FD + else + 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" + AC_TRY_EVAL(ax_try_4) + if test x"$ac_status" != x0; then + echo "$ax_err_4" >&AS_MESSAGE_LOG_FD + else + ax_cv_qt_test_result="success" + fi + fi + fi + fi + ])dnl AC_CACHE_VAL ax_cv_qt_test_result + AC_MSG_RESULT([$ax_cv_qt_test_result]) + if test x"$ax_cv_qt_test_result" = "xfailure"; then + AC_MSG_ERROR([Failed to find matching components of a complete + Qt installation. Try using more options, + see ./configure --help.]) + fi + + rm -f ax_qt_test.h moc_ax_qt_test.$ac_ext moc_ax_qt_test.o \ + ax_qt_main.$ac_ext ax_qt_main.o ax_qt_main + fi +])