commit ce526607ff4ae33834dabe64e0072530eca16183 Author: Jean-Marc Lasgouttes <lasgout...@lyx.org> Date: Mon Nov 2 17:40:29 2020 +0100
Make it possible to select C++ standard with autoconf Introduce new configure option --enable-cxx-mode=MODE, which allows to force a C++ version. The default is {14,11}, which means that C++14 is chosen if it is supported, and C++11 will be selected as a fallback. Using --enable-cxx-mode=11 ensures that LyX compiles correctly with an older C++11 compiler. --- INSTALL | 4 ++++ config/lyxinclude.m4 | 22 ++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/INSTALL b/INSTALL index ad3acf1..2861d7b 100644 --- a/INSTALL +++ b/INSTALL @@ -208,6 +208,10 @@ The following options allow you to tweak the generated code more precisely (see the description of --enable-build-type for the default values): + o --enable-cxx-mode=VALUE can be used to select a C++ standard, for + example --enable-cxx-mode=11. The default is to try C++14, and then + C++11. + o --enable-optimization=VALUE enables you to set optimization to a higher level than the default, for example --enable-optimization=-O3. diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index 0e9b426..40cf173 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -165,11 +165,15 @@ fi dnl Usage: LYX_CXX_CXX11_FLAGS: add to AM_CXXFLAGS the best flag that -selects C++11 mode; gives an error when C++11 mode is not found. +dnl selects C++11 mode; gives an error when C++11 mode is not found. +dnl Parameter is a list of years to try (e.g. 11 or {14,11}) AC_DEFUN([LYX_CXX_CXX11_FLAGS], -[AC_CACHE_CHECK([for at least C++11 mode], [lyx_cv_cxx11_flags], +[AC_CACHE_CHECK([for a good C++ mode], [lyx_cv_cxx11_flags], [lyx_cv_cxx11_flags=none - for flag in -std=c++14 -std=c++11 "" -std=gnu++14 -std=gnu++11 ; do + for flag in `eval echo -std=c++$1 default -std=gnu++$1` ; do + if test $flag = default ; then + flag= + fi save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS" save_CXXFLAGS=$CXXFLAGS @@ -202,8 +206,8 @@ AC_DEFUN([LYX_CXX_CXX11_FLAGS], CXXFLAGS=$save_CXXFLAGS CPPFLAGS=$save_CPPFLAGS done]) - if test $lyx_cv_cxx11_flags = none ; then - AC_MSG_ERROR([Cannot find suitable C++11 mode for compiler $CXX]) + if test x$lyx_cv_cxx11_flags = xnone ; then + AC_MSG_ERROR([Cannot find suitable mode for compiler $CXX]) fi AM_CXXFLAGS="$lyx_cv_cxx11_flags $AM_CXXFLAGS" ]) @@ -304,9 +308,15 @@ AC_DEFUN([LYX_PROG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) +### We might want to disable debug +AC_ARG_ENABLE(cxx-mode, + AS_HELP_STRING([--enable-cxx-mode],[choose C++ standard (default: 14, then 11)]),, + [enable_cxx_mode=14,11] +) + AC_LANG_PUSH(C++) LYX_PROG_CLANG -LYX_CXX_CXX11_FLAGS +LYX_CXX_CXX11_FLAGS($enable_cxx_mode) LYX_LIB_STDCXX LYX_LIB_STDCXX_CXX11_ABI LYX_CXX_USE_REGEX -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs