])
-dnl Check whether to configure for Qt4 or Qt5. Default is Qt5.
+dnl Check whether to configure for Qt5, or Qt6. Default is Qt5.
dnl
-AC_DEFUN([LYX_CHECK_QT5],[
-AC_MSG_CHECKING([whether Qt5 is disabled])
-AC_ARG_ENABLE([qt5],
- [AS_HELP_STRING([--disable-qt5],[do not use Qt5 for building])],
- USE_QT5=$enableval, USE_QT5=yes)
-if test x$USE_QT5 != xno ; then
- AC_MSG_RESULT([no])
-else
- AC_MSG_RESULT([yes])
-fi
-AC_SUBST([USE_QT5])
+AC_DEFUN([LYX_CHECK_QT6],[
+AC_MSG_CHECKING([whether Qt6 is requested])
+AC_ARG_ENABLE([qt6],
+ [AS_HELP_STRING([--enable-qt6],[use Qt6 for building])],
+ USE_QT6=$enableval, USE_QT6=no)
+AC_MSG_RESULT([$USE_QT6])
+AC_SUBST([USE_QT6])
])
+dnl
dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
])
-dnl Usage: LYX_CXX_USE_REGEX
-dnl decide whether we want to use std::regex and set the
-dnl LYX_USE_STD_REGEX macro and conditional accordingly.
-AC_DEFUN([LYX_CXX_USE_REGEX],
-[AC_ARG_ENABLE(std-regex,
- AS_HELP_STRING([--enable-std-regex],[use std::regex instead of boost::regex (default is autodetected)]),
- [lyx_std_regex=$enableval],
- [AC_MSG_CHECKING([for correct regex implementation])
- save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
- save_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS"
- # The following code snippet has been taken taken from example in
- # http://stackoverflow.com/questions/8561850/compile-stdregex-iterator-with-gcc
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
- #include <regex>
- #include <iostream>
-
- #include <string.h>
-
- typedef std::regex_iterator<const char *> Myiter;
- ]], [[
- const char *pat = "axayaz";
- Myiter::regex_type rx("a");
- Myiter next(pat, pat + strlen(pat), rx);
- Myiter end;
- ]])],[lyx_std_regex=yes],[lyx_std_regex=no])
- CXXFLAGS=$save_CXXFLAGS
- CPPFLAGS=$save_CPPFLAGS
- AC_MSG_RESULT([$lyx_std_regex])
- ])
-
- if test $lyx_std_regex = yes ; then
- lyx_flags="$lyx_flags std-regex"
- AC_DEFINE([LYX_USE_STD_REGEX], 1, [define to 1 if std::regex should be preferred to boost::regex])
- fi
- AM_CONDITIONAL([LYX_USE_STD_REGEX], test $lyx_std_regex = yes)
-])
-
-
dnl Usage: LYX_CXX_USE_CALL_ONCE
dnl check whether we can use std::call_once and set the
dnl LYX_USE_STD_CALL_ONCE macro and conditional accordingly.
### We might want to force the C++ standard.
AC_ARG_ENABLE(cxx-mode,
- AS_HELP_STRING([--enable-cxx-mode],[choose C++ standard (default: 14, then 11)]),,
- [enable_cxx_mode={14,11}]
+ AS_HELP_STRING([--enable-cxx-mode],[choose C++ standard (default: 17, 14, then 11)]),,
+ [enable_cxx_mode={17,14,11}]
)
AC_LANG_PUSH(C++)
LYX_CXX_CXX11_FLAGS($enable_cxx_mode)
LYX_LIB_STDCXX
LYX_LIB_STDCXX_CXX11_ABI
-LYX_CXX_USE_REGEX
LYX_CXX_USE_CALL_ONCE
AC_LANG_POP(C++)
)
AC_ARG_ENABLE(stdlib-debug,
- AS_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
- [AS_CASE([$build_type], [dev*], [enable_stdlib_debug=yes],
- [enable_stdlib_debug=no])]
+ AS_HELP_STRING([--enable-stdlib-debug],[enable debug mode in libstdc++]),,
+ [enable_stdlib_debug=no]
+)
+
+AC_ARG_ENABLE(stdlib-assertions,
+ AS_HELP_STRING([--enable-stdlib-assertions],[enable assertions in libstdc++]),,
+ [AS_CASE([$build_type], [dev*], [enable_stdlib_assertions=yes],
+ [enable_stdlib_assertions=no])]
)
### set up optimization
enable_optimization=yes;)
case $enable_optimization in
yes)
- if test $lyx_devel_version = yes ; then
- lyx_optim=-O
+ if test $enable_debug = yes ; then
+ lyx_optim=-Og
else
lyx_optim=-O2
fi;;
CXX_VERSION="($clang_version)"
fi
+ case $gxx_version in
+ 2.*|3.*|4.@<:@0-8@:>@*) AC_MSG_ERROR([gcc >= 4.9 is required]);;
+ esac
+
AM_CXXFLAGS="$lyx_optim $AM_CXXFLAGS"
if test x$enable_debug = xyes ; then
AM_CXXFLAGS="-g $AM_CXXFLAGS"
AM_CXXFLAGS="$AM_CXXFLAGS -fno-omit-frame-pointer"
fi
- if test x$USE_QT5 = xyes ; then
- AS_CASE([$host], [*mingw*|*cygwin*], [], [AM_CXXFLAGS="-fPIC $AM_CXXFLAGS"])
- fi
+ AS_CASE([$host], [*mingw*|*cygwin*], [], [AM_CXXFLAGS="-fPIC $AM_CXXFLAGS"])
+
dnl Warnings are for preprocessor too
if test x$enable_warnings = xyes ; then
AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra"
dnl Shut off warning -Wdeprecated-copy, which triggers too much
dnl note that g++ always accepts -Wno-xxx, even when -Wxxx is an error.
AC_LANG_PUSH(C++)
- AX_CHECK_COMPILE_FLAG([-Wno-deprecated-copy],
+ AX_CHECK_COMPILE_FLAG([-Wdeprecated-copy],
[AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-copy"], [], [-Werror])
AC_LANG_POP(C++)
fi
- case $gxx_version in
- 2.*|3.*|4.@<:@0-6@:>@) AC_MSG_ERROR([gcc >= 4.7 is required]);;
- esac
if test x$enable_stdlib_debug = xyes ; then
dnl FIXME: for clang/libc++, one should define _LIBCPP_DEBUG2=0
dnl See http://clang-developers.42468.n3.nabble.com/libc-debug-mode-td3336742.html
enable_stdlib_debug=no
fi
fi
+ if test x$enable_stdlib_assertions = xyes ; then
+ if test x$lyx_cv_lib_stdcxx = xyes ; then
+ lyx_flags="$lyx_flags stdlib-assertions"
+ AC_DEFINE(_GLIBCXX_ASSERTIONS, 1, [libstdc++ assertions mode])
+ else
+ enable_stdlib_assertions=no
+ fi
+ fi
fi
# Some additional flags may be needed
clang-3.0*|clang-3.1*|clang-3.2*|clang-3.3*)
dnl boost contains pragmas that are annoying on older clang versions
AM_CPPFLAGS="-Wno-unknown-pragmas $AM_CPPFLAGS";;
- clang*)
- dnl the more recent versions support the deprecated-register warning,
- dnl which is very annoying with Qt4.x right now.
- AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-register";;
esac
fi
])
+dnl Usage: LYX_USE_INCLUDED_NOD : select if the included nod should be used.
+AC_DEFUN([LYX_USE_INCLUDED_NOD],[
+ AC_MSG_CHECKING([whether to use included nod library])
+ AC_ARG_WITH(included-nod,
+ [AS_HELP_STRING([--without-included-nod], [do not use the nod lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])],
+ [lyx_cv_with_included_nod=$withval],
+ [lyx_cv_with_included_nod=yes])
+ AM_CONDITIONAL(USE_INCLUDED_NOD, test x$lyx_cv_with_included_nod = xyes)
+ AC_MSG_RESULT([$lyx_cv_with_included_nod])
+ if test x$lyx_cv_with_included_nod = xyes ; then
+ lyx_included_libs="$lyx_included_libs nod"
+ NOD_INCLUDES='-I$(top_srcdir)/3rdparty/nod'
+ else
+ NOD_INCLUDES=
+ AC_LANG_PUSH(C++)
+ AC_MSG_CHECKING([for nod library])
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <nod.hpp>],
+ [nod::scoped_connection conn;])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot find suitable nod library (do not use --without-included-nod)])
+ ])
+ AC_LANG_POP(C++)
+ fi
+ AC_SUBST(NOD_INCLUDES)
+])
+
dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
dnl be used.
AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
AC_MSG_CHECKING([whether to use included boost library])
AC_ARG_WITH(included-boost,
- [AS_HELP_STRING([--without-included-boost], [do not use the boost lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])],
+ [AS_HELP_STRING([--with-included-boost], [use the boost lib supplied with LyX])],
[lyx_cv_with_included_boost=$withval],
- [lyx_cv_with_included_boost=yes])
+ [lyx_cv_with_included_boost=no])
AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
AC_MSG_RESULT([$lyx_cv_with_included_boost])
+ if test x$lyx_cv_with_included_boost = xno ; then
+ AC_LANG_PUSH(C++)
+ AC_MSG_CHECKING([for boost library])
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <boost/crc.hpp>],
+ [boost::crc_32_type crc;])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ lyx_cv_with_included_boost=yes
+ ])
+ AC_LANG_POP(C++)
+ fi
if test x$lyx_cv_with_included_boost = xyes ; then
lyx_included_libs="$lyx_included_libs boost"
BOOST_INCLUDES='-I$(top_srcdir)/3rdparty/boost'
- if test $lyx_std_regex = yes ; then
- BOOST_LIBS=""
- else
- BOOST_LIBS='$(top_builddir)/3rdparty/boost/liblyxboost.a'
- fi
else
BOOST_INCLUDES=
- if test $lyx_std_regex = yes ; then
- BOOST_LIBS=""
- else
- AC_LANG_PUSH(C++)
- save_LIBS=$LIBS
-
- AC_MSG_CHECKING([for multithreaded boost libraries])
- LIBS="$save_LIBS -lboost_regex-mt $LIBTHREAD"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([#include <boost/regex.hpp>],
- [boost::regex reg;])],
- [AC_MSG_RESULT([yes])
- BOOST_MT="-mt"],
- [AC_MSG_RESULT([no])
- AC_MSG_CHECKING([for plain boost libraries])
- LIBS="$save_LIBS -lboost_regex"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([#include <boost/regex.hpp>],
- [boost::regex reg;])],
- [AC_MSG_RESULT([yes])
- BOOST_MT=""],
- [AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot find suitable boost library (do not use --without-included-boost)])
- ])
- ])
- LIBS=$save_LIBS
- AC_LANG_POP(C++)
-
- dnl In general, system boost libraries are incompatible with
- dnl the use of stdlib-debug in libstdc++. See ticket #9736 for
- dnl details.
- if test $enable_stdlib_debug = "yes" ; then
- LYX_WARNING([Compiling LyX with stdlib-debug and system boost libraries may lead to
- crashes. Consider using --disable-stdlib-debug or removing
- --without-included-boost.])
- fi
-
- BOOST_LIBS="-lboost_regex${BOOST_MT}"
- fi
fi
AC_SUBST(BOOST_INCLUDES)
- AC_SUBST(BOOST_LIBS)
])
])
+dnl Usage: LYX_CHECK_MACOS_DEPLOYMENT_TARGET : select the macos deployment target
+dnl [default-auto-value])
+dnl Assign the macosx-version-min value for compiler, linker and Info.plist.
+dnl Default is dynamic - depends on used Qt library version.
+AC_DEFUN([LYX_CHECK_MACOS_DEPLOYMENT_TARGET],[
+ AC_ARG_WITH(macos-deployment-target,
+ [AS_HELP_STRING([--with-macos-deployment-target], [force the macos deployment target for LyX])],
+ [macos_deployment_target=$withval],
+ [macos_deployment_target=auto])
+ if test "${macos_deployment_target}" = "auto" ; then
+ macos_deployment_target="10.10"
+ case "$QTLIB_VERSION" in
+ 5.12.*)
+ macos_deployment_target="10.12"
+ ;;
+ 6.*)
+ macos_deployment_target="10.14"
+ ;;
+ esac
+ fi
+ AM_CPPFLAGS="-mmacosx-version-min=$macos_deployment_target $AM_CPPFLAGS"
+ AM_LDFLAGS="-mmacosx-version-min=$macos_deployment_target $AM_LDFLAGS"
+ AC_SUBST(macos_deployment_target,"${macos_deployment_target}")
+ AC_MSG_CHECKING([the macos deployment target for LyX])
+ AC_MSG_RESULT([$macos_deployment_target])
+])
+
+
dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
dnl [default-yes-value])
dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver")
])
+AC_DEFUN([LYX_CHECK_WITH_SAXON],
+[
+ lyx_use_saxon=true
+ AC_ARG_WITH(saxon, AS_HELP_STRING([--without-saxon],[do not install saxon library (epub export)]))
+ test "$with_saxon" = "no" && lyx_use_saxon=false
+
+ if $lyx_use_saxon ; then
+ AC_MSG_RESULT(Set to installing internal saxon.)
+ fi
+
+ AM_CONDITIONAL(SAXON_INSTALL, $lyx_use_saxon)
+ ])
+
+AC_DEFUN([LYX_CHECK_WITH_XSLT_SHEETS],
+[
+ lyx_use_xslt_stylesheets=true
+ AC_ARG_WITH(xslt-stylesheets, AS_HELP_STRING([--without-xslt-stylesheets],[do not install XSLT Stylesheets (epub export)]))
+ test "$with_xslt_stylesheets" = "no" && lyx_use_xslt_stylesheets=false
+
+ if $lyx_use_xslt_stylesheets ; then
+ AC_MSG_RESULT(Set to installing XSLT Stylesheets.)
+ fi
+
+ AM_CONDITIONAL(XSLT_SHEETS_INSTALL, $lyx_use_xslt_stylesheets)
+ ])
+