mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Require a C++11 compiler
As discussed on the list. If no C++11 compiler is found configuration stops with an error. There are now unneeded parts of boost, the will be removed in a second commit.
This commit is contained in:
parent
9dd695b17a
commit
273c67d8aa
@ -142,7 +142,6 @@ LYX_OPTION(ENABLE_EXPORT_TESTS "Enable for export tests" OFF ALL)
|
|||||||
LYX_OPTION(ASAN "Use address sanitizer" OFF ALL)
|
LYX_OPTION(ASAN "Use address sanitizer" OFF ALL)
|
||||||
LYX_COMBO(USE_QT "Use Qt version as frontend" QT4 QT5)
|
LYX_COMBO(USE_QT "Use Qt version as frontend" QT4 QT5)
|
||||||
LYX_OPTION(3RDPARTY_BUILD "Build 3rdparty libs" OFF ALL)
|
LYX_OPTION(3RDPARTY_BUILD "Build 3rdparty libs" OFF ALL)
|
||||||
LYX_COMBO(ENABLE_CXX11 "Build with options for c++11-mode" AUTO ON OFF)
|
|
||||||
|
|
||||||
# GCC specific
|
# GCC specific
|
||||||
LYX_OPTION(PROFILE "Build profile version" OFF GCC)
|
LYX_OPTION(PROFILE "Build profile version" OFF GCC)
|
||||||
@ -254,24 +253,10 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(LYX_ENABLE_CXX11 MATCHES "AUTO")
|
# Set to some meaningful default
|
||||||
# Set to some meaningful default
|
find_package(CXX11Compiler)
|
||||||
find_package(CXX11Compiler)
|
if(NOT CXX11COMPILER_FOUND)
|
||||||
if(NOT CXX11COMPILER_FOUND)
|
message(FATAL_ERROR "A C++11 compatible compiler is required.")
|
||||||
set(LYX_ENABLE_CXX11 OFF CACHE TYPE STRING FORCE)
|
|
||||||
else()
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
||||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
set(LYX_ENABLE_CXX11 ON CACHE TYPE STRING FORCE)
|
|
||||||
else()
|
|
||||||
# Not a gnu compiler
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "^[cC]lang$")
|
|
||||||
set(LYX_ENABLE_CXX11 ON CACHE TYPE STRING FORCE)
|
|
||||||
else()
|
|
||||||
set(LYX_ENABLE_CXX11 OFF CACHE TYPE STRING FORCE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
set(LYX_GCC11_MODE)
|
set(LYX_GCC11_MODE)
|
||||||
if(UNIX OR MINGW)
|
if(UNIX OR MINGW)
|
||||||
@ -285,17 +270,9 @@ if(UNIX OR MINGW)
|
|||||||
# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
|
# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
|
||||||
set(LYX_USE_STD_REGEX 0)
|
set(LYX_USE_STD_REGEX 0)
|
||||||
else()
|
else()
|
||||||
if (LYX_ENABLE_CXX11)
|
set(LYX_USE_STD_REGEX 1)
|
||||||
set(LYX_USE_STD_REGEX 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
if (LYX_ENABLE_CXX11)
|
|
||||||
find_package(CXX11Compiler)
|
|
||||||
if(NOT CXX11COMPILER_FOUND)
|
|
||||||
message(FATAL_ERROR "A C++11 compatible compiler is required.")
|
|
||||||
endif()
|
|
||||||
set(LYX_GCC11_MODE "${CXX11_FLAG}")
|
|
||||||
endif()
|
endif()
|
||||||
|
set(LYX_GCC11_MODE "${CXX11_FLAG}")
|
||||||
else()
|
else()
|
||||||
set(LYX_USE_STD_REGEX 0)
|
set(LYX_USE_STD_REGEX 0)
|
||||||
# if(MSVC10)
|
# if(MSVC10)
|
||||||
|
@ -177,7 +177,6 @@ dnl not plainly added to AM_CPPFLAGS because then the objc compiler (mac)
|
|||||||
dnl would fail.
|
dnl would fail.
|
||||||
AC_DEFUN([LYX_CXX_USE_REGEX],
|
AC_DEFUN([LYX_CXX_USE_REGEX],
|
||||||
[lyx_std_regex=no
|
[lyx_std_regex=no
|
||||||
if test $lyx_use_cxx11 = yes; then
|
|
||||||
save_CPPFLAGS=$CPPFLAGS
|
save_CPPFLAGS=$CPPFLAGS
|
||||||
# we want to pass -std=c++11 to clang/cpp if necessary
|
# we want to pass -std=c++11 to clang/cpp if necessary
|
||||||
CPPFLAGS="$AM_CPPFLAGS $1 $CPPFLAGS"
|
CPPFLAGS="$AM_CPPFLAGS $1 $CPPFLAGS"
|
||||||
@ -200,7 +199,6 @@ AC_DEFUN([LYX_CXX_USE_REGEX],
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$lyx_std_regex])
|
AC_MSG_RESULT([$lyx_std_regex])
|
||||||
fi
|
|
||||||
|
|
||||||
if test $lyx_std_regex = yes ; then
|
if test $lyx_std_regex = yes ; then
|
||||||
lyx_flags="$lyx_flags std-regex"
|
lyx_flags="$lyx_flags std-regex"
|
||||||
@ -298,10 +296,6 @@ case $enable_optimization in
|
|||||||
*) lyx_optim=${enable_optimization};;
|
*) lyx_optim=${enable_optimization};;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_ARG_ENABLE(cxx11,
|
|
||||||
AC_HELP_STRING([--disable-cxx11],[disable C++11 mode (default: enabled for known good compilers)]),,
|
|
||||||
enable_cxx11=auto;)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(assertions,
|
AC_ARG_ENABLE(assertions,
|
||||||
AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
|
AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
|
||||||
[AS_CASE([$build_type], [dev*|pre*], [enable_assertions=yes],
|
[AS_CASE([$build_type], [dev*|pre*], [enable_assertions=yes],
|
||||||
@ -358,9 +352,6 @@ if test x$GXX = xyes; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
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
|
|
||||||
case $gxx_version in
|
case $gxx_version in
|
||||||
4.3*|4.4*|4.5*|4.6*)
|
4.3*|4.4*|4.5*|4.6*)
|
||||||
dnl Note that this will define __GXX_EXPERIMENTAL_CXX0X__.
|
dnl Note that this will define __GXX_EXPERIMENTAL_CXX0X__.
|
||||||
@ -379,7 +370,6 @@ if test x$GXX = xyes; then
|
|||||||
# cxx11_flags is useful when running preprocessor alone
|
# cxx11_flags is useful when running preprocessor alone
|
||||||
# (see detection of regex).
|
# (see detection of regex).
|
||||||
AM_CXXFLAGS="$cxx11_flags $AM_CXXFLAGS"
|
AM_CXXFLAGS="$cxx11_flags $AM_CXXFLAGS"
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LYX_CXX_CXX11
|
LYX_CXX_CXX11
|
||||||
@ -388,6 +378,8 @@ if test $lyx_use_cxx11 = yes; then
|
|||||||
dnl We still use auto_ptr, which is obsoleted. Shut off the warnings.
|
dnl We still use auto_ptr, which is obsoleted. Shut off the warnings.
|
||||||
AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-declarations"
|
AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-declarations"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
AC_ERROR([A C++11 compatible compiler is required])
|
||||||
fi
|
fi
|
||||||
LYX_CXX_USE_REGEX([$cxx11_flags])
|
LYX_CXX_USE_REGEX([$cxx11_flags])
|
||||||
])
|
])
|
||||||
|
@ -294,10 +294,6 @@ AH_BOTTOM([
|
|||||||
/************************************************************
|
/************************************************************
|
||||||
** You should not need to change anything beyond this point */
|
** You should not need to change anything beyond this point */
|
||||||
|
|
||||||
#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
|
||||||
#define LYX_USE_CXX11
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_STRERROR
|
#ifndef HAVE_STRERROR
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -82,14 +82,14 @@ if [%2]==[] (
|
|||||||
if "%1%" == "devel" (
|
if "%1%" == "devel" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM you can add the option "-GNinja" for a faster compilation
|
REM you can add the option "-GNinja" for a faster compilation
|
||||||
cmake %LYX_SOURCE% -GNinja -G%USED_STUDIO% -DLYX_ENABLE_CXX11=ON -DLYX_ENABLE_EXPORT_TESTS=ON -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -GNinja -G%USED_STUDIO% -DLYX_ENABLE_EXPORT_TESTS=ON -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE %DEPENDENCIES_DOWNLOAD%
|
||||||
msbuild lyx.sln /p:Configuration=Debug /t:LyX /t:tex2lyx
|
msbuild lyx.sln /p:Configuration=Debug /t:LyX /t:tex2lyx
|
||||||
)
|
)
|
||||||
|
|
||||||
if "%1%" == "install" (
|
if "%1%" == "install" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
||||||
cmake %LYX_SOURCE% -GNinja -G%USED_STUDIO% -DLYX_ENABLE_CXX11=ON -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -GNinja -G%USED_STUDIO% -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
||||||
msbuild lyx.sln /p:Configuration=Release /t:ALL_BUILD
|
msbuild lyx.sln /p:Configuration=Release /t:ALL_BUILD
|
||||||
msbuild INSTALL.vcxproj /p:Configuration=Release
|
msbuild INSTALL.vcxproj /p:Configuration=Release
|
||||||
)
|
)
|
||||||
|
@ -73,7 +73,7 @@ REM start with a new cmake run
|
|||||||
if "%1%" == "devel" (
|
if "%1%" == "devel" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM you can add the option "-GNinja" for a faster compilation
|
REM you can add the option "-GNinja" for a faster compilation
|
||||||
cmake %LYX_SOURCE% -G"Visual Studio 14 2015 Win64" -DLYX_ENABLE_CXX11=ON -DLYX_USE_QT=QT5 -DLYX_ENABLE_EXPORT_TESTS=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE -DLYX_3RDPARTY_BUILD=1 %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -G"Visual Studio 14 2015 Win64" -DLYX_USE_QT=QT5 -DLYX_ENABLE_EXPORT_TESTS=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE -DLYX_3RDPARTY_BUILD=1 %DEPENDENCIES_DOWNLOAD%
|
||||||
msbuild src\LyX.vcxproj /p:Configuration=Debug
|
msbuild src\LyX.vcxproj /p:Configuration=Debug
|
||||||
msbuild src\tex2lyx\tex2lyx.vcxproj /p:Configuration=Debug
|
msbuild src\tex2lyx\tex2lyx.vcxproj /p:Configuration=Debug
|
||||||
)
|
)
|
||||||
@ -81,7 +81,7 @@ if "%1%" == "devel" (
|
|||||||
if "%1%" == "install" (
|
if "%1%" == "install" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
||||||
cmake %LYX_SOURCE% -GNinja -G"Visual Studio 14 2015 Win64" -DLYX_ENABLE_CXX11=ON -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -GNinja -G"Visual Studio 14 2015 Win64" -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
||||||
msbuild INSTALL.vcxproj /p:Configuration=Release
|
msbuild INSTALL.vcxproj /p:Configuration=Release
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ REM start with a new cmake run
|
|||||||
if "%1%" == "devel" (
|
if "%1%" == "devel" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM you can add the option "-GNinja" for a faster compilation
|
REM you can add the option "-GNinja" for a faster compilation
|
||||||
cmake %LYX_SOURCE% -G"Visual Studio 14 2015" -DLYX_ENABLE_CXX11=ON -DLYX_USE_QT=QT5 -DLYX_ENABLE_EXPORT_TESTS=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE -DLYX_3RDPARTY_BUILD=1 %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -G"Visual Studio 14 2015" -DLYX_USE_QT=QT5 -DLYX_ENABLE_EXPORT_TESTS=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=0 -DLYX_RELEASE=0 -DLYX_CONSOLE=FORCE -DLYX_3RDPARTY_BUILD=1 %DEPENDENCIES_DOWNLOAD%
|
||||||
msbuild src\LyX.vcxproj /p:Configuration=Debug
|
msbuild src\LyX.vcxproj /p:Configuration=Debug
|
||||||
msbuild src\tex2lyx\tex2lyx.vcxproj /p:Configuration=Debug
|
msbuild src\tex2lyx\tex2lyx.vcxproj /p:Configuration=Debug
|
||||||
)
|
)
|
||||||
@ -84,7 +84,7 @@ if "%1%" == "devel" (
|
|||||||
if "%1%" == "install" (
|
if "%1%" == "install" (
|
||||||
REM Build solution to develop LyX
|
REM Build solution to develop LyX
|
||||||
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
REM set -DLYX_MERGE_REBUILD and -DLYX_MERGE_FILES to 1 for a version released with an installer
|
||||||
cmake %LYX_SOURCE% -GNinja -G"Visual Studio 14 2015" -DLYX_ENABLE_CXX11=ON -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
cmake %LYX_SOURCE% -GNinja -G"Visual Studio 14 2015" -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=0 -DLYX_MERGE_FILES=0 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF %DEPENDENCIES_DOWNLOAD%
|
||||||
REM msbuild lyx.sln /p:Configuration=Release /t:ALL_BUILD
|
REM msbuild lyx.sln /p:Configuration=Release /t:ALL_BUILD
|
||||||
msbuild INSTALL.vcxproj /p:Configuration=Release
|
msbuild INSTALL.vcxproj /p:Configuration=Release
|
||||||
)
|
)
|
||||||
|
@ -68,13 +68,6 @@
|
|||||||
// use GNU libstdc++ with C++11 ABI
|
// use GNU libstdc++ with C++11 ABI
|
||||||
#cmakedefine USE_GLIBCXX_CXX11_ABI 1
|
#cmakedefine USE_GLIBCXX_CXX11_ABI 1
|
||||||
|
|
||||||
// use GNU c++11 extensions
|
|
||||||
#cmakedefine LYX_USE_CXX11 1
|
|
||||||
#ifndef LYX_USE_CXX11
|
|
||||||
#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
|
||||||
#error "Conflicting defines of LYX_USE_CXX11"
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#cmakedefine Z_PREFIX 1
|
#cmakedefine Z_PREFIX 1
|
||||||
|
|
||||||
// Defined if QT=QT5 uses X11
|
// Defined if QT=QT5 uses X11
|
||||||
|
@ -23,7 +23,7 @@ rmdir /s/q %LYX_BUILD%
|
|||||||
mkdir %LYX_BUILD%
|
mkdir %LYX_BUILD%
|
||||||
|
|
||||||
cd %LYX_BUILD%
|
cd %LYX_BUILD%
|
||||||
cmake %LYX_SOURCE% -G"MinGW Makefiles" -DLYX_PYTHON_EXECUTABLE=%GNUWIN32_DIR%\Python\python -DLYX_3RDPARTY_BUILD=1 -DLYX_ENABLE_CXX11=ON -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=1 -DLYX_MERGE_FILES=1 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF
|
cmake %LYX_SOURCE% -G"MinGW Makefiles" -DLYX_PYTHON_EXECUTABLE=%GNUWIN32_DIR%\Python\python -DLYX_3RDPARTY_BUILD=1 -DLYX_USE_QT=QT5 -DLYX_MERGE_REBUILD=1 -DLYX_MERGE_FILES=1 -DLYX_NLS=1 -DLYX_INSTALL=1 -DLYX_RELEASE=1 -DLYX_CONSOLE=OFF
|
||||||
|
|
||||||
mingw32-make doc
|
mingw32-make doc
|
||||||
mingw32-make translations
|
mingw32-make translations
|
||||||
|
@ -106,7 +106,6 @@ cmake $lyxsrcdir \
|
|||||||
-DLYX_XMINGW=$compiler \
|
-DLYX_XMINGW=$compiler \
|
||||||
-DLYX_USE_QT=QT5 \
|
-DLYX_USE_QT=QT5 \
|
||||||
-DLYX_QUIET=1 \
|
-DLYX_QUIET=1 \
|
||||||
-DLYX_ENABLE_CXX11=ON \
|
|
||||||
-DLYX_HUNSPELL=1 \
|
-DLYX_HUNSPELL=1 \
|
||||||
-DLYX_3RDPARTY_BUILD=1 \
|
-DLYX_3RDPARTY_BUILD=1 \
|
||||||
$pch $mergefile
|
$pch $mergefile
|
||||||
|
@ -690,7 +690,7 @@ static docstring escape_special_chars(docstring const & expr)
|
|||||||
|
|
||||||
// $& is an ECMAScript format expression that expands to all
|
// $& is an ECMAScript format expression that expands to all
|
||||||
// of the current match
|
// of the current match
|
||||||
#if defined(LYX_USE_CXX11) && defined(LYX_USE_STD_REGEX)
|
#ifdef LYX_USE_STD_REGEX
|
||||||
// To prefix a matched expression with a single literal backslash, we
|
// To prefix a matched expression with a single literal backslash, we
|
||||||
// need to escape it for the C++ compiler and use:
|
// need to escape it for the C++ compiler and use:
|
||||||
// FIXME: UNICODE
|
// FIXME: UNICODE
|
||||||
|
@ -20,7 +20,7 @@ string const escape_special_chars(string const & expr)
|
|||||||
|
|
||||||
// $& is a ECMAScript format expression that expands to all
|
// $& is a ECMAScript format expression that expands to all
|
||||||
// of the current match
|
// of the current match
|
||||||
#if defined(LYX_USE_CXX11) && defined(LYX_USE_STD_REGEX)
|
#ifdef LYX_USE_STD_REGEX
|
||||||
// To prefix a matched expression with a single literal backslash, we
|
// To prefix a matched expression with a single literal backslash, we
|
||||||
// need to escape it for the C++ compiler and use:
|
// need to escape it for the C++ compiler and use:
|
||||||
return lyx::regex_replace(expr, reg, "\\$&");
|
return lyx::regex_replace(expr, reg, "\\$&");
|
||||||
|
@ -14,30 +14,13 @@
|
|||||||
|
|
||||||
#include "support/functional.h"
|
#include "support/functional.h"
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
|
|
||||||
#define LYX_BIND_NS std
|
|
||||||
|
|
||||||
namespace lyx
|
namespace lyx
|
||||||
{
|
{
|
||||||
using std::placeholders::_1;
|
using std::placeholders::_1;
|
||||||
using std::placeholders::_2;
|
using std::placeholders::_2;
|
||||||
|
using std::bind;
|
||||||
|
using std::ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <boost/bind.hpp>
|
|
||||||
#define LYX_BIND_NS boost
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace lyx
|
|
||||||
{
|
|
||||||
using LYX_BIND_NS::bind;
|
|
||||||
using LYX_BIND_NS::ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef LYX_BIND_NS
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,25 +12,12 @@
|
|||||||
#ifndef LYX_FUNCTIONAL_H
|
#ifndef LYX_FUNCTIONAL_H
|
||||||
#define LYX_FUNCTIONAL_H
|
#define LYX_FUNCTIONAL_H
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#define LYX_FUNCTIONAL_NS std
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <boost/function.hpp>
|
|
||||||
#include <boost/functional.hpp>
|
|
||||||
#define LYX_FUNCTIONAL_NS boost
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace lyx
|
namespace lyx
|
||||||
{
|
{
|
||||||
using LYX_FUNCTIONAL_NS::function;
|
using std::function;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef LYX_FUNCTIONAL_NS
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -84,30 +84,10 @@ void eliminate_duplicates(C & c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
using std::next;
|
using std::next;
|
||||||
#else
|
|
||||||
/// Replacement of std::next for older compilers
|
|
||||||
template <typename It, typename Diff>
|
|
||||||
inline It next(It i, Diff n = 1)
|
|
||||||
{
|
|
||||||
std::advance(i, n);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
using std::prev;
|
using std::prev;
|
||||||
#else
|
|
||||||
/// Replacement of std::prev for older compilers
|
|
||||||
template <typename It, typename Diff>
|
|
||||||
inline It prev(It i, Diff n = 1)
|
|
||||||
{
|
|
||||||
std::advance(i, -n);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#ifndef LYX_REGEXP_H
|
#ifndef LYX_REGEXP_H
|
||||||
#define LYX_REGEXP_H
|
#define LYX_REGEXP_H
|
||||||
|
|
||||||
#if defined(LYX_USE_CXX11) && defined(LYX_USE_STD_REGEX)
|
#ifdef LYX_USE_STD_REGEX
|
||||||
# include <regex>
|
# include <regex>
|
||||||
// <regex> in gcc is unusable in versions less than 4.9.0
|
// <regex> in gcc is unusable in versions less than 4.9.0
|
||||||
// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
|
// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
|
||||||
|
@ -12,27 +12,14 @@
|
|||||||
#ifndef LYX_SHARED_PTR_H
|
#ifndef LYX_SHARED_PTR_H
|
||||||
#define LYX_SHARED_PTR_H
|
#define LYX_SHARED_PTR_H
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#define LYX_SHAREDPTR_NS std
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#include <boost/shared_ptr.hpp>
|
|
||||||
#include <boost/make_shared.hpp>
|
|
||||||
#define LYX_SHAREDPTR_NS boost
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace lyx
|
namespace lyx
|
||||||
{
|
{
|
||||||
using LYX_SHAREDPTR_NS::shared_ptr;
|
using std::shared_ptr;
|
||||||
using LYX_SHAREDPTR_NS::make_shared;
|
using std::make_shared;
|
||||||
using LYX_SHAREDPTR_NS::const_pointer_cast;
|
using std::const_pointer_cast;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef LYX_SHAREDPTR_NS
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -125,15 +125,9 @@ public:
|
|||||||
|
|
||||||
iparserdocstream(idocstream & is) : is_(is) {}
|
iparserdocstream(idocstream & is) : is_(is) {}
|
||||||
|
|
||||||
#ifdef LYX_USE_CXX11
|
|
||||||
/// Like std::istream::operator bool()
|
/// Like std::istream::operator bool()
|
||||||
/// Do not convert is_ implicitly to bool, since that is forbidden in C++11.
|
/// Do not convert is_ implicitly to bool, since that is forbidden in C++11.
|
||||||
explicit operator bool() const { return s_.empty() ? !is_.fail() : true; }
|
explicit operator bool() const { return s_.empty() ? !is_.fail() : true; }
|
||||||
#else
|
|
||||||
/// Like std::istream::operator void*()
|
|
||||||
operator void*() const { return (s_.empty() && is_.fail()) ?
|
|
||||||
0 : const_cast<iparserdocstream *>(this); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// change the encoding of the input stream to \p e (iconv name)
|
/// change the encoding of the input stream to \p e (iconv name)
|
||||||
void setEncoding(std::string const & e);
|
void setEncoding(std::string const & e);
|
||||||
|
Loading…
Reference in New Issue
Block a user