]> git.lyx.org Git - lyx.git/blobdiff - config/spell.m4
centralize attic
[lyx.git] / config / spell.m4
index 8d98331914b62e0cfabf35692eacb7e6329b268c..4d949aa57212b34a455ecca1b63bff2abf562261 100644 (file)
@@ -45,8 +45,8 @@ AC_DEFUN([CHECK_WITH_ENCHANT],
        test "$with_enchant" = "no" && lyx_use_enchant=false
 
        if $lyx_use_enchant; then
-               PKG_CHECK_MODULES([ENCHANT], [enchant], [],
-                   [PKG_CHECK_MODULES([ENCHANT], [enchant-2], [],
+               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
@@ -60,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/hunspell.hxx>],
+      [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],
 [
@@ -83,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
@@ -113,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