[Groonga-commit] groonga/groonga at 0f22ec7 [master] cmake: support building stem token filter

Back to archive index

Kouhei Sutou null+****@clear*****
Sat Oct 25 21:53:14 JST 2014


Kouhei Sutou	2014-10-25 21:53:14 +0900 (Sat, 25 Oct 2014)

  New Revision: 0f22ec77a487f2b92fa70d4589e4ff98c73b1561
  https://github.com/groonga/groonga/commit/0f22ec77a487f2b92fa70d4589e4ff98c73b1561

  Message:
    cmake: support building stem token filter

  Modified files:
    CMakeLists.txt
    plugins/token_filters/CMakeLists.txt

  Modified: CMakeLists.txt (+32 -0)
===================================================================
--- CMakeLists.txt    2014-10-25 21:24:02 +0900 (3db95ae)
+++ CMakeLists.txt    2014-10-25 21:53:14 +0900 (be86940)
@@ -357,6 +357,38 @@ else()
   set(GRN_WITH_KYTEA FALSE)
 endif()
 
+set(GRN_WITH_LIBSTEMMER "auto"
+  CACHE STRING "use libstemmer for stemming token filter")
+if(NOT ${GRN_WITH_LIBSTEMMER} STREQUAL "no")
+  if(NOT ("${GRN_WITH_LIBSTEMMER}" STREQUAL "yes" OR
+	"${GRN_WITH_LIBSTEMMER}" STREQUAL "auto"))
+    if("${LIBSTEMMER_INCLUDE_DIRS}" STREQUAL "")
+      set(LIBSTEMMER_INCLUDE_DIRS "${GRN_WITH_LIBSTEMMER}/include")
+    endif()
+    if("${LIBSTEMMER_LIBRARY_DIRS}" STREQUAL "")
+      set(LIBSTEMMER_LIBRARY_DIRS "${GRN_WITH_LIBSTEMMER}/lib")
+    endif()
+  endif()
+  set(CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES})
+  set(CMAKE_REQUIRED_INCLUDES
+    ${CMAKE_REQUIRED_INCLUDES}
+    ${LIBSTEMMER_INCLUDE_DIRS})
+  ac_check_headers(libstemmer.h)
+  ac_check_lib(stemmer sb_stemmer_list "${LIBSTEMMER_LIBRARY_DIRS}")
+  set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE})
+  if(HAVE_LIBSTEMMER_H AND HAVE_LIBSTEMMER)
+    set(LIBSTEMMER_LIBRARIES "stemmer")
+    set(GRN_WITH_LIBSTEMMER TRUE)
+  else()
+    if(${GRN_WITH_LIBSTEMMER} STREQUAL "yes")
+      message(FATAL_ERROR "No libstemmer found")
+    endif()
+    set(GRN_WITH_LIBSTEMMER FALSE)
+  endif()
+else()
+  set(GRN_WITH_LIBSTEMMER FALSE)
+endif()
+
 set(GRN_WITH_ZEROMQ "auto"
   CACHE STRING "use ZeroMQ for suggestion")
 if(NOT ${GRN_WITH_ZEROMQ} STREQUAL "no")

  Modified: plugins/token_filters/CMakeLists.txt (+15 -0)
===================================================================
--- plugins/token_filters/CMakeLists.txt    2014-10-25 21:24:02 +0900 (e03fbb4)
+++ plugins/token_filters/CMakeLists.txt    2014-10-25 21:53:14 +0900 (a0b964f)
@@ -30,3 +30,18 @@ set_target_properties(stop_word_token_filter PROPERTIES
   OUTPUT_NAME "stop_word")
 target_link_libraries(stop_word_token_filter libgroonga)
 install(TARGETS stop_word_token_filter DESTINATION "${TOKEN_FILTERS_DIR}")
+
+if(GRN_WITH_LIBSTEMMER)
+  read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/stem_sources.am STEM_SOURCES)
+  include_directories(${LIBSTEMMER_INCLUDE_DIRS})
+  link_directories(${LIBSTEMMER_LIBRARY_DIRS})
+  add_library(stem_token_filter MODULE ${STEM_SOURCES})
+  set_source_files_properties(${STEM_SOURCES}
+    PROPERTIES
+    COMPILE_FLAGS "${GRN_C_COMPILE_FLAGS}")
+  set_target_properties(stem_token_filter PROPERTIES
+    PREFIX ""
+    OUTPUT_NAME "stem")
+  target_link_libraries(stem_token_filter libgroonga ${LIBSTEMMER_LIBRARIES})
+  install(TARGETS stem_token_filter DESTINATION "${TOKEN_FILTERS_DIR}")
+endif()
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index