]> git.lyx.org Git - features.git/blobdiff - config/lyxinclude.m4
Revert "Limit the -Wall flag to C++ compiler"
[features.git] / config / lyxinclude.m4
index a943ddd7b6de7b35cf06d6e9a3608e6403c5cab1..268c501dea4cd973e691d0bc123501bd2e96aa6b 100644 (file)
@@ -164,12 +164,16 @@ 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 Usage: LYX_CXX_CXX11_FLAGS(VERSION): add to AM_CXXFLAGS the best flag that
+dnl selects C++11 mode; gives an error when C++11 mode is not found.
+dnl VERSION 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 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}]
+)
+
 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
@@ -409,11 +419,12 @@ if test x$GXX = xyes; then
   dnl Warnings are for preprocessor too
   if test x$enable_warnings = xyes ; then
       AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra"
-      case $gxx_version in
-         9.*|10.*|clang-10*|clang-11*)
-             AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-copy";;
-         *);;
-      esac
+      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],
+       [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]);;
@@ -421,14 +432,14 @@ if test x$GXX = xyes; then
   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
-    case $gxx_version in
-      *)
+    if test x$lyx_cv_lib_stdcxx = xyes ; then
         lyx_flags="$lyx_flags stdlib-debug"
        AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
        AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
        AC_SUBST(STDLIB_DEBUG, "-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
-        ;;
-    esac
+    else
+       enable_stdlib_debug=no
+    fi
   fi
 fi
 
@@ -524,11 +535,14 @@ AC_DEFUN([LYX_USE_INCLUDED_ICONV],[
   if test x$lyx_cv_with_included_iconv = xyes ; then
   lyx_included_libs="$lyx_included_libs iconv"
 
+dnl This is hardcoded to make it compile
+    AC_DEFINE([HAVE_WORKING_O_NOFOLLOW], 0, [Define to 1 if O_NOFOLLOW works.])
+
 dnl Some bits from libiconv configure.ac to avoid a nested configure call:
     AC_EILSEQ
     AC_TYPE_MBSTATE_T
     AC_CHECK_FUNCS([getc_unlocked mbrtowc wcrtomb mbsinit setlocale])
-dnl Ymbstate_t is used if HAVE_WCRTOMB || HAVE_MBRTOWC, see 3rdparty/libiconv/1.14/lib/loop_wchar.h.
+dnl Ymbstate_t is used if HAVE_WCRTOMB || HAVE_MBRTOWC, see 3rdparty/libiconv/1.15/lib/loop_wchar.h.
     if test $ac_cv_func_wcrtomb = yes || test $ac_cv_func_mbrtowc = yes; then
       USE_MBSTATE_T=1
     else
@@ -558,9 +572,9 @@ dnl we want const correctness
 dnl we build a static lib
     DLL_VARIABLE=
     AC_SUBST([DLL_VARIABLE])
-    ICONV_INCLUDES='-I$(top_srcdir)/3rdparty/libiconv/1.14 -I$(top_builddir)/3rdparty/libiconv'
+    ICONV_INCLUDES='-I$(top_srcdir)/3rdparty/libiconv/1.15 -I$(top_builddir)/3rdparty/libiconv'
     ICONV_LIBS='\$(top_builddir)/3rdparty/libiconv/liblyxiconv.a'
-    ICONV_ICONV_H_IN=3rdparty/libiconv/iconv.h:3rdparty/libiconv/1.14/include/iconv.h.in
+    ICONV_ICONV_H_IN=3rdparty/libiconv/iconv.h:3rdparty/libiconv/1.15/include/iconv.h.in
   else
     ICONV_INCLUDES=
     AM_ICONV