mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-21 21:06:23 +00:00
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.
This commit is contained in:
parent
b7909e7e6c
commit
e1938aa240
4
INSTALL
4
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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user