X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=config%2Fspell.m4;h=4d949aa57212b34a455ecca1b63bff2abf562261;hb=fa9675965a1fd69b3869970593ed7645328d5fc7;hp=8185939c4250ad2a904c54d5ff43c9bfaaee83c0;hpb=a8204c4630816b0a400023d93b4f06b18455282b;p=lyx.git diff --git a/config/spell.m4 b/config/spell.m4 index 8185939c42..4d949aa572 100644 --- a/config/spell.m4 +++ b/config/spell.m4 @@ -23,7 +23,21 @@ AC_DEFUN([CHECK_WITH_ASPELL], fi ]) -# Macro to add for using enchant spellchecker libraries! -*- sh -*- +AC_DEFUN([LYX_HAVE_ENCHANT2], +[ + AC_MSG_CHECKING([whether enchant is version 2.x at least]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$ENCHANT_CFLAGS $AM_CXXFLAGS $CXXFLAGS" + + AC_TRY_COMPILE([#include ], + [enchant::Broker broker;], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ENCHANT2, 1, [Define to 1 if enchant 2.x is detected]) + ], + [AC_MSG_RESULT(no)]) + CXXFLAGS=$save_CXXFLAGS +]) + AC_DEFUN([CHECK_WITH_ENCHANT], [ lyx_use_enchant=true @@ -31,11 +45,14 @@ AC_DEFUN([CHECK_WITH_ENCHANT], test "$with_enchant" = "no" && lyx_use_enchant=false if $lyx_use_enchant; then - PKG_CHECK_MODULES([ENCHANT], [enchant], [], [lyx_use_enchant=false]) + PKG_CHECK_MODULES([ENCHANT], [enchant-2], [], + [PKG_CHECK_MODULES([ENCHANT], [enchant], [], + [lyx_use_enchant=false])]) AC_MSG_CHECKING([whether to use enchant]) if $lyx_use_enchant ; then AC_MSG_RESULT(yes) AC_DEFINE(USE_ENCHANT, 1, [Define as 1 to use the enchant library]) + LYX_HAVE_ENCHANT2 lyx_flags="$lyx_flags use-enchant" else AC_MSG_RESULT(no) @@ -43,6 +60,24 @@ AC_DEFUN([CHECK_WITH_ENCHANT], fi ]) +AC_DEFUN([LYX_HAVE_HUNSPELL_CXXABI], +[ + AC_MSG_CHECKING([whether hunspell C++ (rather than C) ABI is provided]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$ENCHANT_CFLAGS $AM_CXXFLAGS $CXXFLAGS" + +# in the C++ ABI, stem() returns a vector, in the C ABI, it returns an int + AC_TRY_COMPILE([#include ], + [Hunspell sp("foo", "bar"); + int i = sp.stem("test").size();], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_HUNSPELL_CXXABI, 1, [Define to 1 if hunspell C++ (rather than C) ABI is detected]) + have_hunspell_cxx_abi=yes + ], + [AC_MSG_RESULT(no)]) + CXXFLAGS=$save_CXXFLAGS +]) + # Macro to add for using hunspell spellchecker libraries! -*- sh -*- AC_DEFUN([CHECK_WITH_HUNSPELL], [ @@ -66,6 +101,12 @@ AC_DEFUN([CHECK_WITH_HUNSPELL], AC_MSG_RESULT(no) fi fi + LYX_HAVE_HUNSPELL_CXXABI + if test $enable_stdlib_debug = "yes" -a -n "$have_hunspell_cxx_abi" ; then + LYX_WARNING([Compiling LyX with stdlib-debug and system hunspell libraries may lead to + crashes. Consider using --disable-stdlib-debug or --with-included-hunspell.]) + fi + ]) dnl Usage: LYX_USE_INCLUDED_HUNSPELL : select if the included hunspell should @@ -96,6 +137,7 @@ AC_DEFUN([LYX_CHECK_SPELL_ENGINES], dnl the user wanted to use the included hunspell, so do not check for external hunspell lyx_use_hunspell=true AC_DEFINE(USE_HUNSPELL, 1, [Define as 1 to use the hunspell library]) + AC_DEFINE(HAVE_HUNSPELL_CXXABI, 1, [Define to 1 if hunspell C++ (rather than C) ABI is detected]) lyx_flags="$lyx_flags use-hunspell" else CHECK_WITH_HUNSPELL