]> git.lyx.org Git - lyx.git/blobdiff - development/cmake/ConfigureChecks.cmake
Support new hunspell C++ ABI if LyX is built against hunspell >= 1.5
[lyx.git] / development / cmake / ConfigureChecks.cmake
index f09ba8bd921c460d69d83f1d3d10f9664558009e..3d6d5880fba6834bbe149b4838ae7388be591777 100644 (file)
@@ -72,6 +72,36 @@ check_type_size("long long"  HAVE_LONG_LONG)
 check_type_size(wchar_t HAVE_WCHAR_T)
 check_type_size(wint_t  HAVE_WINT_T)
 
+if(HUNSPELL_FOUND)
+  # check whether hunspell C++ (rather than C) ABI is provided
+  set(HunspellTestFile "${CMAKE_BINARY_DIR}/hunspelltest.cpp")
+  file(WRITE "${HunspellTestFile}"
+  "
+  #include <hunspell/hunspell.hxx>
+
+  int main()
+  {
+    Hunspell sp(\"foo\", \"bar\");
+    int i = sp.stem(\"test\").size();
+  return(0);
+  }
+  "
+  )
+
+  try_compile(HAVE_HUNSPELL_CXXABI
+    "${CMAKE_BINARY_DIR}"
+    "${HunspellTestFile}"
+    CMAKE_FLAGS
+      "-DINCLUDE_DIRECTORIES:STRING=${HUNSPELL_INCLUDE_DIR}"
+      "-DCMAKE_CXX_LINK_EXECUTABLE='${CMAKE_COMMAD} echo not linking now...'"
+  OUTPUT_VARIABLE  LOG2)
+
+  message(STATUS "HAVE_HUNSPELL_CXXABI = ${HAVE_HUNSPELL_CXXABI}")
+  #message(STATUS "LOG2 = ${LOG2}")
+  if(LYX_EXTERNAL_HUNSPELL AND LYX_STDLIB_DEBUG AND HAVE_HUNSPELL_CXXABI)
+    message(WARNING "Compiling LyX with stdlib-debug and system hunspell libraries may lead to crashes. Consider using -DLYX_STDLIB_DEBUG=OFF or -DLYX_EXTERNAL_HUNSPELL=OFF.")
+  endif()
+endif()
 
 #check_cxx_source_compiles(
 #      "