commit e1938aa2404e9e1a4343de7139e52cac4ac71739
Author: Jean-Marc Lasgouttes <[email protected]>
Date: Fri Sep 25 13:58:52 2015 +0200
Fix some compilation problems in C++11 mode
Only enable std::regex when the header <regex> is present (fix Mac OS X
issue).
Remove support for concept checks. The page
https://gcc.gnu.org/onlinedocs/libstdc++/manual/concept_checking.html
says about concept checking:
Please note that the checks are based on the requirements in the
original C++ standard, many of which were relaxed in the C++11
standard and so valid C++11 code may be incorrectly rejected by the
concept checks. Additionally, some correct C++03 code might be
rejected by the concept checks, for example template argument types
may need to be complete when used in a template definition, rather
than at the point of instantiation. There are no plans to address
these shortcomings.
Therefore it seems reasonable to remove our support for this.
diff --git a/INSTALL b/INSTALL
index d3e266f..2ddcd8d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -106,7 +106,6 @@ flags:
optimization -O2 -O2 -O -O2 -O2
assertions X X
stdlib-debug X
- concept-checks X X
warnings X X
debug X X X X
@@ -229,9 +228,6 @@ The following options allow you to tweak the generated code
more precisely (see
--disable-stdlib-debug when linking development versions against
your system's boost library.
- o --enable-concept-checks adds some compile-time checks. There is no
- run-time penalty.
-
o
--enable-monolithic-build[=boost,client,insets,mathed,core,tex2lyx,frontend-qt4]
that enables monolithic build of the given parts of the source
code. This should reduce the compilation time provided you have
diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4
index 275e2e8..ff38dad 100644
--- a/config/lyxinclude.m4
+++ b/config/lyxinclude.m4
@@ -239,15 +239,6 @@ AC_ARG_ENABLE(stdlib-debug,
[enable_stdlib_debug=no])]
)
-AC_ARG_ENABLE(concept-checks,
- AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
- [AS_CASE([$build_type], [dev*|pre*], [enable_concept_checks=yes],
- [enable_concept_checks=no])]
- if test x$USE_QT5 = xyes ; then
- enable_concept_checks=no
- fi
-)
-
### set up optimization
AC_ARG_ENABLE(optimization,
AC_HELP_STRING([--enable-optimization[=value]],[enable compiler
optimisation]),,
@@ -323,15 +314,6 @@ if test x$GXX = xyes; then
;;
esac
fi
- if test x$enable_concept_checks = xyes ; then
- case $gxx_version in
- 4.*)
- lyx_flags="$lyx_flags concept-checks"
- dnl FIXME check whether this makes sense with clang/libc++
- AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
- ;;
- esac
- fi
dnl enable_cxx11 can be yes/no/auto.
dnl By default, it is auto and we enable C++11 when possible
if test x$enable_cxx11 != xno ; then
@@ -357,6 +339,7 @@ if test x$GXX = xyes; then
LYX_CXX_CXX11
if test $lyx_use_cxx11 = yes ; then
+ AC_CHECK_HEADER([regex], [lyx_std_regex=yes], [lyx_std_regex=no])
if test x$CLANG = xno || test $lyx_cv_lib_stdcxx = yes; then
dnl <regex> in gcc is unusable in versions less than 4.9.0
dnl see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
@@ -367,12 +350,15 @@ if test x$GXX = xyes; then
else
lyx_std_regex=yes
fi
-
- if test $lyx_std_regex = yes ; then
- lyx_flags="$lyx_flags stdregex"
- AC_DEFINE([LYX_USE_STD_REGEX], 1, [define to 1 if std::regex should be
preferred to boost::regex])
- fi
fi
+else
+ dnl This is not gcc, not sure what setup we can do
+ AC_CHECK_HEADER([regex], [lyx_std_regex=yes], [lyx_std_regex=no])
+fi
+
+if test $lyx_std_regex = yes ; then
+ lyx_flags="$lyx_flags stdregex"
+ 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