X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=config%2Flyxinclude.m4;h=7bddfb09da05500ff6672dc5e548985c187a4740;hb=e8b1ec66fc0cf2f6c190d2e3c294630ebc2e12d0;hp=c1883d9b32f7ac2c5471d6ab755049a72ba23999;hpb=14a6a4723f527f5e7af0321635e7473bbb7da77b;p=lyx.git diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index c1883d9b32..7bddfb09da 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -170,7 +170,6 @@ AC_DEFUN([LYX_CXX_CXX11_FLAGS], CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS" save_CXXFLAGS=$CXXFLAGS CXXFLAGS="$flag $AM_CXXFLAGS $CXXFLAGS" - AC_LANG_PUSH(C++) dnl sample openmp source code to test AC_TRY_COMPILE([ template @@ -197,7 +196,6 @@ AC_DEFUN([LYX_CXX_CXX11_FLAGS], auto d = a;], [], [lyx_cv_cxx11_flags=$flag; break]) - AC_LANG_POP(C++) CXXFLAGS=$save_CXXFLAGS CPPFLAGS=$save_CPPFLAGS done]) @@ -220,7 +218,6 @@ AC_DEFUN([LYX_CXX_USE_REGEX], CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS" save_CXXFLAGS=$CXXFLAGS CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS" - AC_LANG_PUSH(C++) # The following code snippet has been taken taken from example in # http://stackoverflow.com/questions/8561850/compile-stdregex-iterator-with-gcc AC_TRY_LINK( @@ -237,7 +234,6 @@ AC_DEFUN([LYX_CXX_USE_REGEX], Myiter next(pat, pat + strlen(pat), rx); Myiter end; ], [lyx_std_regex=yes], [lyx_std_regex=no]) - AC_LANG_POP(C++) CXXFLAGS=$save_CXXFLAGS CPPFLAGS=$save_CPPFLAGS AC_MSG_RESULT([$lyx_std_regex]) @@ -251,6 +247,33 @@ AC_DEFUN([LYX_CXX_USE_REGEX], ]) +dnl Usage: LYX_CXX_USE_CALL_ONCE +dnl check whether we can use std::call_once and set the +dnl LYX_USE_STD_CALL_ONCE macro and conditional accordingly. +AC_DEFUN([LYX_CXX_USE_CALL_ONCE], +[AC_MSG_CHECKING([for std::call_once availability]) + save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS" + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$AM_CXXFLAGS $CXXFLAGS" + AC_TRY_LINK( + [ + #include + static std::once_flag flag; + ], [ + std::call_once(flag, [](){ return; }); + ], [lyx_std_call_once=yes], [lyx_std_call_once=no]) + CXXFLAGS=$save_CXXFLAGS + CPPFLAGS=$save_CPPFLAGS + AC_MSG_RESULT([$lyx_std_call_once]) + + if test $lyx_std_call_once = yes ; then + AC_DEFINE([LYX_USE_STD_CALL_ONCE], 1, [define to 1 if std::call_once is supported by the compiler]) + fi + AM_CONDITIONAL([LYX_USE_STD_CALL_ONCE], test $lyx_std_call_once = yes) +]) + + dnl Usage: LYX_LIB_STDCXX: set lyx_cv_lib_stdcxx to yes if the STL library is libstdc++. AC_DEFUN([LYX_LIB_STDCXX], [AC_CACHE_CHECK([whether STL is libstdc++], @@ -284,8 +307,11 @@ AC_REQUIRE([AC_PROG_CXXCPP]) AC_LANG_PUSH(C++) LYX_PROG_CLANG +LYX_CXX_CXX11_FLAGS LYX_LIB_STDCXX LYX_LIB_STDCXX_CXX11_ABI +LYX_CXX_USE_REGEX +LYX_CXX_USE_CALL_ONCE AC_LANG_POP(C++) if test $lyx_cv_lib_stdcxx = "yes" ; then @@ -362,7 +388,7 @@ if test x$GXX = xyes; then CXX_VERSION="($clang_version)" fi - AM_CXXFLAGS="$lyx_optim" + AM_CXXFLAGS="$lyx_optim $AM_CXXFLAGS" if test x$enable_debug = xyes ; then AM_CXXFLAGS="-g $AM_CXXFLAGS" fi @@ -398,8 +424,6 @@ if test x$GXX = xyes; then fi fi -LYX_CXX_CXX11_FLAGS - # Some additional flags may be needed if test x$GXX = xyes; then case $gxx_version in @@ -412,8 +436,6 @@ if test x$GXX = xyes; then AM_CXXFLAGS="$AM_CXXFLAGS -Wno-deprecated-register";; esac fi - -LYX_CXX_USE_REGEX ]) dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should