[Groonga-commit] groonga/groonga [master] cmake: support MeCab tokenizer build

Zurück zum Archiv-Index

null+****@clear***** null+****@clear*****
2012年 4月 15日 (日) 18:23:28 JST


Kouhei Sutou	2012-04-15 18:23:28 +0900 (Sun, 15 Apr 2012)

  New Revision: 5142ffcc5131f201ce25df57f8d4a8907430bf00

  Log:
    cmake: support MeCab tokenizer build

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

  Modified: CMakeLists.txt (+23 -9)
===================================================================
--- CMakeLists.txt    2012-04-15 18:03:29 +0900 (bd147c9)
+++ CMakeLists.txt    2012-04-15 18:23:28 +0900 (4cc4232)
@@ -111,19 +111,33 @@ set(WITH_MECAB "auto"
 if(NOT ${WITH_MECAB} STREQUAL "no")
   set(MECAB_CONFIG "mecab-config" CACHE FILEPATH "mecab-config path")
   if(NOT CMAKE_CROSSCOMPILING)
-    find_program(MECAB_CONFIG "${MECAB_CONFIG}")
+    find_program(MECAB_CONFIG_ABSOLUTE_PATH "${MECAB_CONFIG}")
   endif()
-  if(EXISTS "${MECAB_CONFIG}")
-    execute_process(COMMAND "${MECAB_CONFIG}" --inc-dir
-      OUTPUT_VARIABLE MECAB_CPPFLAGS)
-    execute_process(COMMAND "${MECAB_CONFIG}" --libs-only-L
-      OUTPUT_VARIABLE MECAB_LDFLAGS)
-    ac_check_lib(mecab mecab_new)
+  if(EXISTS "${MECAB_CONFIG_ABSOLUTE_PATH}")
+    execute_process(COMMAND "${MECAB_CONFIG_ABSOLUTE_PATH}" --inc-dir
+      OUTPUT_VARIABLE MECAB_INCLUDE_DIRS
+      OUTPUT_STRIP_TRAILING_WHITESPACE)
+    execute_process(COMMAND "${MECAB_CONFIG_ABSOLUTE_PATH}" --libs-only-L
+      OUTPUT_VARIABLE MECAB_LIBRARY_DIRS
+      OUTPUT_STRIP_TRAILING_WHITESPACE)
+    set(MECAB_LIBRARIES "mecab")
+    ac_check_lib(${MECAB_LIBRARIES} mecab_new)
+    if(HAVE_LIBMECAB)
+      set(WITH_MECAB TRUE)
+    else()
+      if(${WITH_MECAB} STREQUAL "yes")
+	message(FATAL_ERROR
+	  "No MeCab library found: "
+	  "include directories: <${MECAB_INCLUDE_DIRS}>, "
+	  "library directories: <${MECAB_LIBRARY_DIRS}>")
+      endif()
+      set(WITH_MECAB FALSE)
+    endif()
   else()
-    set(WITH_MECAB FALSE)
     if(${WITH_MECAB} STREQUAL "yes")
-      message(FATAL_ERROR "No MeCab found")
+      message(FATAL_ERROR "No mecab-config found: <${MECAB_CONFIG}>")
     endif()
+    set(WITH_MECAB FALSE)
   endif()
 else()
   set(WITH_MECAB FALSE)

  Modified: plugins/tokenizers/CMakeLists.txt (+5 -3)
===================================================================
--- plugins/tokenizers/CMakeLists.txt    2012-04-15 18:03:29 +0900 (e6c4654)
+++ plugins/tokenizers/CMakeLists.txt    2012-04-15 18:23:28 +0900 (b8d62c3)
@@ -21,9 +21,11 @@ include_directories(
 
 if(WITH_MECAB)
   read_file_list(${CMAKE_CURRENT_SOURCE_DIR}/mecab_sources.am MECAB_SOURCES)
-  add_library(mecab MODULE ${MECAB_SOURCES})
-  set_target_properties(mecab PROPERTIES PREFIX "")
-  target_link_libraries(mecab ${LIBGROONGA})
+  include_directories(${MECAB_INCLUDE_DIRS})
+  link_directories(${MECAB_LIBRARY_DIRS})
+  add_library(mecab_tokenizer MODULE ${MECAB_SOURCES})
+  set_target_properties(mecab_tokenizer PROPERTIES PREFIX "")
+  target_link_libraries(mecab_tokenizer ${LIBGROONGA} ${MECAB_LIBRARIES})
 endif()
 
 if(WITH_KYTEA)




Groonga-commit メーリングリストの案内
Zurück zum Archiv-Index