X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=config%2Fqt4.m4;h=2ac6d70f7d9c1e526f351349d22bea83bab1617f;hb=8e23cfdbdc8fb06999ba2c964c86704d15131ecc;hp=aa44d0cd9bce02c5b2bb66647971dc81fde0bb60;hpb=3942d5eac121540f1176e6e4b5c6944ea8667ccc;p=lyx.git diff --git a/config/qt4.m4 b/config/qt4.m4 index aa44d0cd9b..2ac6d70f7d 100644 --- a/config/qt4.m4 +++ b/config/qt4.m4 @@ -1,67 +1,3 @@ -dnl find a binary in the path -AC_DEFUN([QT4_FIND_PATH], -[ - AC_MSG_CHECKING([for $1]) - AC_CACHE_VAL(qt4_cv_path_$1, - [ - qt4_cv_path_$1="NONE" - if test -n "$$2"; then - qt4_cv_path_$1="$$2"; - else - dirs="$3" - qt_save_IFS=$IFS - IFS=':' - for dir in $PATH; do - dirs="$dirs $dir" - done - IFS=$qt_save_IFS - - for dir in $dirs; do - if test -x "$dir/$1"; then - if test -n "$5"; then - evalstr="$dir/$1 $5 2>&1 " - if eval $evalstr; then - qt4_cv_path_$1="$dir/$1" - break - fi - else - qt4_cv_path_$1="$dir/$1" - break - fi - fi - done - fi - ]) - - if test -z "$qt4_cv_path_$1" || test "$qt4_cv_path_$1" = "NONE"; then - AC_MSG_RESULT(not found) - $4 - else - AC_MSG_RESULT($qt4_cv_path_$1) - $2=$qt4_cv_path_$1 - fi -]) - -dnl Find the uic compiler on the path or in qt_cv_dir -AC_DEFUN([QT_FIND_UIC4], -[ - QT4_FIND_PATH(uic, ac_uic4, $qt4_cv_dir/bin) - - if test -z "$ac_uic4" -a "$FATAL" = 1; then - AC_MSG_ERROR([uic 4 binary not found in \$PATH or $qt4_cv_dir/bin !]) - fi -]) - -dnl Find the right moc in path/qt_cv_dir -AC_DEFUN([QT_FIND_MOC4], -[ - QT4_FIND_PATH(moc, ac_moc4, $qt4_cv_dir/bin) - - if test -z "$ac_moc4" -a "$FATAL" = 1; then - AC_MSG_ERROR([moc 4 binary not found in \$PATH or $qt4_cv_dir/bin !]) - fi -]) - dnl check a particular libname AC_DEFUN([QT4_TRY_LINK], [ @@ -92,8 +28,19 @@ AC_DEFUN([QT4_CHECK_COMPILE], AC_LANG_CPLUSPLUS SAVE_CXXFLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $QT4_INCLUDES $QT4_LDFLAGS" + for libname in -lQtCore -lQtCore4 '-framework QtCore' + do + QT4_TRY_LINK($libname) + if test -n "$qt4_cv_libname"; then + QT4_CORE_LIB="$qt4_cv_libname" + break; + fi + done + qt4_cv_libname= for libname in '-lQtCore -lQtGui' \ - '-lQtCore4 -lQtGui4' + '-lQtCore4 -lQtGui4' \ + '-framework QtCore -framework QtConcurrent -framework QtWidgets -framework QtGui'\ + '-framework QtCore -framework QtGui' do QT4_TRY_LINK($libname) if test -n "$qt4_cv_libname"; then @@ -105,9 +52,7 @@ AC_DEFUN([QT4_CHECK_COMPILE], if test -z "$qt4_cv_libname"; then AC_MSG_RESULT([failed]) - if test "$FATAL" = 1 ; then - AC_MSG_ERROR([Cannot compile a simple Qt 4 executable. Check you have the right \$QT4DIR !]) - fi + AC_MSG_ERROR([cannot compile a simple Qt 4 executable. Check you have the right \$QT4DIR.]) else AC_MSG_RESULT([$qt4_cv_libname]) fi @@ -141,57 +86,17 @@ EOF dnl start here AC_DEFUN([QT4_DO_IT_ALL], -[ - dnl Check if it possible to do a pgk-config - PKG_PROG_PKG_CONFIG - if test -n "$PKG_CONFIG" ; then - QT4_DO_PKG_CONFIG - else - QT4_DO_MANUAL_CONFIG - fi -]) - -AC_DEFUN([QT4_DO_PKG_CONFIG], -[ - PKG_CHECK_MODULES(QT4_FRONTEND, QtCore QtGui) - if test "$pkg_failed" == "no" ; then - QT4_INCLUDES=$QT4_FRONTEND_CFLAGS - dnl QT4_LDFLAGS=$QT4_FRONTEND_LIBS - QT4_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore QtGui` - AC_SUBST(QT4_INCLUDES) - AC_SUBST(QT4_LDFLAGS) - QT4_VERSION=`$PKG_CONFIG --modversion QtCore` - AC_SUBST(QT4_VERSION) - QT4_LIB=`$PKG_CONFIG --libs-only-l QtCore QtGui` - AC_SUBST(QT4_LIB) - QT4_CPPFLAGS="-DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR -DQT_NO_STL -DQT_NO_KEYWORDS" - case ${host} in - *mingw*) QT4_CPPFLAGS="-DQT_DLL $QT4_CPPFLAGS";; - esac - AC_SUBST(QT4_CPPFLAGS) - AC_CHECK_PROGS(MOC4, moc-qt4 moc) - AC_CHECK_PROGS(UIC4, uic-qt4 uic) - else - QT4_DO_MANUAL_CONFIG - fi -]) - -AC_DEFUN([QT4_DO_MANUAL_CONFIG], [ dnl this variable is precious AC_ARG_VAR(QT4DIR, [the place where the Qt 4 files are, e.g. /usr/lib/qt4]) - dnl Please leave this alone. I use this file in - dnl oprofile. - FATAL=0 - - AC_ARG_WITH(qt4-dir, [ --with-qt4-dir where the root of Qt 4 is installed ], + AC_ARG_WITH(qt4-dir, [AC_HELP_STRING([--with-qt4-dir], [where the root of Qt 4 is installed])], [ qt4_cv_dir=`eval echo "$withval"/` ]) - AC_ARG_WITH(qt4-includes, [ --with-qt4-includes where the Qt 4 includes are. ], + AC_ARG_WITH(qt4-includes, [AC_HELP_STRING([--with-qt4-includes], [where the Qt 4 includes are])], [ qt4_cv_includes=`eval echo "$withval"` ]) - AC_ARG_WITH(qt4-libraries, [ --with-qt4-libraries where the Qt 4 library is installed.], + AC_ARG_WITH(qt4-libraries, [AC_HELP_STRING([--with-qt4-libraries], [where the Qt 4 library is installed])], [ qt4_cv_libraries=`eval echo "$withval"` ]) dnl pay attention to $QT4DIR unless overridden @@ -209,43 +114,129 @@ AC_DEFUN([QT4_DO_MANUAL_CONFIG], fi fi - dnl flags for compilation - QT4_INCLUDES= - QT4_LDFLAGS= - if test -n "$qt4_cv_includes"; then - QT4_INCLUDES="-I$qt4_cv_includes" - for i in Qt QtCore QtGui; do - QT4_INCLUDES="$QT4_INCLUDES -I$qt4_cv_includes/$i" - done - fi - if test -n "$qt4_cv_libraries"; then - QT4_LDFLAGS="-L$qt4_cv_libraries" + dnl compute the binary dir too + if test -n "$qt4_cv_dir"; then + qt4_cv_bin=$qt4_cv_dir/bin fi - AC_SUBST(QT4_INCLUDES) - AC_SUBST(QT4_LDFLAGS) dnl Preprocessor flags - QT4_CPPFLAGS="-DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR -DQT_NO_STL -DQT_NO_KEYWORDS" + QT4_CPPFLAGS="-DQT_NO_STL -DQT_NO_KEYWORDS" case ${host} in *mingw*) QT4_CPPFLAGS="-DQT_DLL $QT4_CPPFLAGS";; esac AC_SUBST(QT4_CPPFLAGS) + dnl Check if it possible to do a pkg-config + PKG_PROG_PKG_CONFIG + if test -n "$PKG_CONFIG" ; then + QT4_DO_PKG_CONFIG + fi + if test "$pkg_failed" != "no" ; then + QT4_DO_MANUAL_CONFIG + fi + + if test -z "$QT4_LIB"; then + AC_MSG_ERROR([cannot find qt4 library.]) + fi + + dnl Check qt version + AS_VERSION_COMPARE($QT4_VERSION, $1, + [AC_MSG_ERROR([LyX requires at least version $1 of Qt. Only version $QT4_VERSION has been found.]) + ]) + + AC_PATH_PROGS(MOC4, [moc-qt4 moc],[],$qt4_cv_bin:$PATH) if test -z "$MOC4"; then - QT_FIND_MOC4 - MOC4=$ac_moc4 + AC_MSG_ERROR([cannot find moc binary.]) fi - AC_SUBST(MOC4) + AC_PATH_PROGS(UIC4, [uic-qt4 uic],[],$qt4_cv_bin:$PATH) if test -z "$UIC4"; then - QT_FIND_UIC4 - UIC4=$ac_uic4 + AC_MSG_ERROR([cannot find uic binary.]) + fi + AC_PATH_PROGS(RCC4, [rcc-qt4 rcc],[],$qt4_cv_bin:$PATH) + if test -z "$RCC4"; then + AC_MSG_ERROR([cannot find rcc binary.]) + fi +]) + +AC_DEFUN([QT4_DO_PKG_CONFIG], +[ + dnl tell pkg-config to look also in $qt4_cv_dir/lib. + save_PKG_CONFIG_PATH=$PKG_CONFIG_PATH + if test -n "$qt4_cv_dir" ; then + PKG_CONFIG_PATH=$qt4_cv_dir/lib:$qt4_cv_dir/lib/pkgconfig:$PKG_CONFIG_PATH + export PKG_CONFIG_PATH fi - AC_SUBST(UIC4) + PKG_CHECK_MODULES(QT4_CORE, QtCore,,[:]) + if test "$pkg_failed" = "no" ; then + QT4_CORE_INCLUDES=$QT4_CORE_CFLAGS + AC_SUBST(QT4_CORE_INCLUDES) + QT4_CORE_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore` + AC_SUBST(QT4_CORE_LDFLAGS) + QT4_CORE_LIB=`$PKG_CONFIG --libs-only-l QtCore` + AC_SUBST(QT4_CORE_LIB) + fi + PKG_CHECK_MODULES(QT4_FRONTEND, QtCore QtGui,,[:]) + if test "$pkg_failed" = "no" ; then + QT4_INCLUDES=$QT4_FRONTEND_CFLAGS + dnl QT4_LDFLAGS=$QT4_FRONTEND_LIBS + QT4_LDFLAGS=`$PKG_CONFIG --libs-only-L QtCore QtGui` + AC_SUBST(QT4_INCLUDES) + AC_SUBST(QT4_LDFLAGS) + QT4_VERSION=`$PKG_CONFIG --modversion QtCore` + AC_SUBST(QT4_VERSION) + QT4_LIB=`$PKG_CONFIG --libs-only-l QtCore QtGui` + AC_SUBST(QT4_LIB) + LIBS="$LIBS `$PKG_CONFIG --libs-only-other QtCore QtGui`" + fi + PKG_CONFIG_PATH=$save_PKG_CONFIG_PATH +]) + +AC_DEFUN([QT4_DO_MANUAL_CONFIG], +[ + dnl Check for X libraries + AC_PATH_X + AC_PATH_XTRA + case $have_x in + yes) LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS";; + no) AC_MSG_ERROR([cannot find X window libraries and/or headers.]);; + disable) ;; + esac + + dnl flags for compilation + QT4_INCLUDES= + QT4_LDFLAGS= + QT4_CORE_INCLUDES= + QT4_CORE_LDFLAGS= + if test -n "$qt4_cv_includes"; then + QT4_INCLUDES="-I$qt4_cv_includes" + for i in Qt QtCore QtGui QtWidgets QtConcurrent; do + QT4_INCLUDES="$QT4_INCLUDES -I$qt4_cv_includes/$i" + done + QT4_CORE_INCLUDES="-I$qt4_cv_includes -I$qt4_cv_includes/QtCore" + fi + case "$qt4_cv_libraries" in + *framework*) + QT4_LDFLAGS="-F$qt4_cv_libraries" + QT4_CORE_LDFLAGS="-F$qt4_cv_libraries" + ;; + "") + ;; + *) + QT4_LDFLAGS="-L$qt4_cv_libraries" + QT4_CORE_LDFLAGS="-L$qt4_cv_libraries" + ;; + esac + AC_SUBST(QT4_INCLUDES) + AC_SUBST(QT4_CORE_INCLUDES) + AC_SUBST(QT4_LDFLAGS) + AC_SUBST(QT4_CORE_LDFLAGS) QT4_CHECK_COMPILE QT4_LIB=$qt4_cv_libname; AC_SUBST(QT4_LIB) + AC_SUBST(QT4_CORE_LIB) if test -n "$qt4_cv_libname"; then QT4_GET_VERSION