mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
Cleanup support for std::regex with autotools
Do not link against system boost regex lib or build included boost regex when not needed.
This commit is contained in:
parent
dd2a8b616e
commit
41405babc5
@ -24,16 +24,35 @@ AM_CPPFLAGS += $(BOOST_INCLUDES)
|
|||||||
|
|
||||||
if MONOLITHIC_BOOST
|
if MONOLITHIC_BOOST
|
||||||
|
|
||||||
|
if LYX_USE_STD_REGEX
|
||||||
|
|
||||||
|
liblyxboost_a_SOURCES = \
|
||||||
|
lyxboostsignals.cpp
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
liblyxboost_a_SOURCES = \
|
liblyxboost_a_SOURCES = \
|
||||||
lyxboost.cpp \
|
lyxboost.cpp \
|
||||||
libs/regex/src/instances.cpp \
|
libs/regex/src/instances.cpp \
|
||||||
libs/regex/src/cpp_regex_traits.cpp \
|
libs/regex/src/cpp_regex_traits.cpp \
|
||||||
libs/regex/src/c_regex_traits.cpp
|
libs/regex/src/c_regex_traits.cpp
|
||||||
|
|
||||||
|
endif #LYX_USE_STD_REGEX
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if LYX_USE_STD_REGEX
|
||||||
|
|
||||||
|
liblyxboost_a_SOURCES = \
|
||||||
|
libs/signals/src/connection.cpp \
|
||||||
|
libs/signals/src/named_slot_map.cpp \
|
||||||
|
libs/signals/src/signal_base.cpp \
|
||||||
|
libs/signals/src/slot.cpp \
|
||||||
|
libs/signals/src/trackable.cpp
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
liblyxboost_a_SOURCES = \
|
liblyxboost_a_SOURCES = \
|
||||||
\
|
|
||||||
libs/regex/src/internals.hpp \
|
libs/regex/src/internals.hpp \
|
||||||
libs/regex/src/c_regex_traits.cpp \
|
libs/regex/src/c_regex_traits.cpp \
|
||||||
libs/regex/src/cpp_regex_traits.cpp \
|
libs/regex/src/cpp_regex_traits.cpp \
|
||||||
@ -55,4 +74,7 @@ liblyxboost_a_SOURCES = \
|
|||||||
libs/signals/src/slot.cpp \
|
libs/signals/src/slot.cpp \
|
||||||
libs/signals/src/trackable.cpp
|
libs/signals/src/trackable.cpp
|
||||||
|
|
||||||
endif
|
endif #LYX_USE_STD_REGEX
|
||||||
|
|
||||||
|
|
||||||
|
endif #MONOLITHIC_BOOST
|
||||||
|
@ -12,9 +12,4 @@
|
|||||||
#include "libs/regex/src/regex_debug.cpp"
|
#include "libs/regex/src/regex_debug.cpp"
|
||||||
#include "libs/regex/src/winstances.cpp"
|
#include "libs/regex/src/winstances.cpp"
|
||||||
|
|
||||||
#include "libs/signals/src/connection.cpp"
|
#include "lyxboostsignals.cpp"
|
||||||
#include "libs/signals/src/named_slot_map.cpp"
|
|
||||||
#include "libs/signals/src/signal_base.cpp"
|
|
||||||
#include "libs/signals/src/slot.cpp"
|
|
||||||
#include "libs/signals/src/trackable.cpp"
|
|
||||||
|
|
||||||
|
6
boost/lyxboostsignals.cpp
Normal file
6
boost/lyxboostsignals.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "libs/signals/src/connection.cpp"
|
||||||
|
#include "libs/signals/src/named_slot_map.cpp"
|
||||||
|
#include "libs/signals/src/signal_base.cpp"
|
||||||
|
#include "libs/signals/src/slot.cpp"
|
||||||
|
#include "libs/signals/src/trackable.cpp"
|
||||||
|
|
@ -354,11 +354,30 @@ if test x$GXX = xyes; then
|
|||||||
lyx_flags="$lyx_flags c++11-mode"
|
lyx_flags="$lyx_flags c++11-mode"
|
||||||
CXXFLAGS="-std=gnu++0x $CXXFLAGS"
|
CXXFLAGS="-std=gnu++0x $CXXFLAGS"
|
||||||
;;
|
;;
|
||||||
4.7*|4.8*)
|
4.7*|4.8*|4.9*)
|
||||||
lyx_flags="$lyx_flags c++11-mode"
|
lyx_flags="$lyx_flags c++11-mode"
|
||||||
CXXFLAGS="-std=gnu++11 $CXXFLAGS"
|
CXXFLAGS="-std=gnu++11 $CXXFLAGS"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
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
|
||||||
|
case $gxx_version in
|
||||||
|
4.9*)
|
||||||
|
lyx_flags="$lyx_flags stdregex"
|
||||||
|
lyx_std_regex=yes
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
lyx_flags="$lyx_flags stdregex"
|
||||||
|
lyx_std_regex=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $lyx_std_regex = yes ; then
|
||||||
|
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)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
test "$lyx_pch_comp" = yes && lyx_flags="$lyx_flags pch"
|
test "$lyx_pch_comp" = yes && lyx_flags="$lyx_flags pch"
|
||||||
@ -404,8 +423,12 @@ AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
|
|||||||
LIBS=$save_LIBS
|
LIBS=$save_LIBS
|
||||||
AC_LANG_POP(C++)
|
AC_LANG_POP(C++)
|
||||||
BOOST_INCLUDES=
|
BOOST_INCLUDES=
|
||||||
|
if test $lyx_std_regex = yes ; then
|
||||||
|
BOOST_LIBS="-lboost_signals${BOOST_MT}"
|
||||||
|
else
|
||||||
BOOST_LIBS="-lboost_regex${BOOST_MT} -lboost_signals${BOOST_MT}"
|
BOOST_LIBS="-lboost_regex${BOOST_MT} -lboost_signals${BOOST_MT}"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
AC_SUBST(BOOST_INCLUDES)
|
AC_SUBST(BOOST_INCLUDES)
|
||||||
AC_SUBST(BOOST_LIBS)
|
AC_SUBST(BOOST_LIBS)
|
||||||
])
|
])
|
||||||
|
@ -285,15 +285,6 @@ char * strerror(int n);
|
|||||||
#define BOOST_NO_WSTRING 1
|
#define BOOST_NO_WSTRING 1
|
||||||
#define BOOST_SIGNALS_NO_DEPRECATION_WARNING 1
|
#define BOOST_SIGNALS_NO_DEPRECATION_WARNING 1
|
||||||
|
|
||||||
// <regex> in gcc is unusable in versions less than 4.9.0
|
|
||||||
// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
|
|
||||||
// clang defines __GNUC__ but how do the versions match?
|
|
||||||
#ifndef LYX_USE_STD_REGEX
|
|
||||||
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) || __GNUC__ > 4 || defined(USE_LLVM_LIBCPP)
|
|
||||||
# define LYX_USE_STD_REGEX
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
# define NOMINMAX
|
# define NOMINMAX
|
||||||
# define BOOST_POSIX 1
|
# define BOOST_POSIX 1
|
||||||
|
Loading…
Reference in New Issue
Block a user