diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2019-11-22 09:47:40 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-22 09:47:40 -0800 |
| commit | 45f4b820e5743b89bca3508ba2028cdd5d8bbd17 (patch) | |
| tree | f874a8c4a7392309bdbb86447288597ec0a4a281 /ports/mecab | |
| parent | 62d67d3bf8eeff1afa8009041fd08b8822676b7b (diff) | |
| parent | 8831e8f25f1ff6546ee4a5291b91d599421637b3 (diff) | |
| download | vcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.tar.gz vcpkg-45f4b820e5743b89bca3508ba2028cdd5d8bbd17.zip | |
Merge branch 'master' into vcpkg_nuget
Diffstat (limited to 'ports/mecab')
| -rw-r--r-- | ports/mecab/CMakeLists.txt | 67 | ||||
| -rw-r--r-- | ports/mecab/CONTROL | 3 | ||||
| -rw-r--r-- | ports/mecab/Config.cmake.in | 4 | ||||
| -rw-r--r-- | ports/mecab/fix_wpath_unsigned.patch | 40 | ||||
| -rw-r--r-- | ports/mecab/portfile.cmake | 30 |
5 files changed, 144 insertions, 0 deletions
diff --git a/ports/mecab/CMakeLists.txt b/ports/mecab/CMakeLists.txt new file mode 100644 index 000000000..9ebf42ee1 --- /dev/null +++ b/ports/mecab/CMakeLists.txt @@ -0,0 +1,67 @@ +cmake_minimum_required(VERSION 3.12 FATAL_ERROR) + +PROJECT(mecab VERSION 1.0) + +file(GLOB SOURCE_FILE + "*.cpp" + "*.c" +) +file(GLOB HEADERS_FILE + "*.h" +) + +message(STATUS "current cmake path: ${CMAKE_CURRENT_SOURCE_DIR}") +list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-cost-train.cpp) +list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-gen.cpp) +list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-index.cpp) +list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-system-eval.cpp) +list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-test-gen.cpp) +#list(REMOVE_ITEM SOURCE_FILE "mecab-cost-train.cpp" "mecab-dict-gen.cpp" "mecab-dict-index.cpp" "mecab-system-eval.cpp" "mecab-test-gen.cpp") + +add_library (mecab ${SOURCE_FILE}) +target_include_directories(mecab PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:include>) + +if(UNIX) + target_compile_definitions(mecab PUBLIC -DHAVE_UNISTD_H -DHAVE_FCNTL_H -DHAVE_STDINT_H -DHAVE_SYS_TYPES_H -DHAVE_SYS_STAT_H -DHAVE_DIRENT_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DMECAB_DEFAULT_RC="./mecabrc") +endif(UNIX) +if(WIN32) + target_compile_definitions(mecab PUBLIC -D_CRT_SECURE_NO_DEPRECATE -DMECAB_USE_THREAD -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DUNICODE -D_UNICODE -DMECAB_DEFAULT_RC="mecabrc") +endif(WIN32) + + +include (GNUInstallDirs) +include(CMakePackageConfigHelpers) + +set (mecab_CMAKE_DIR share/mecab CACHE STRING "Installation dir") +set (targets_export_name mecabTargets CACHE INTERNAL "") + +install(TARGETS mecab + EXPORT ${targets_export_name} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(FILES ${HEADERS_FILE} DESTINATION include/mecab CONFIGURATIONS Release) + +install(EXPORT ${targets_export_name} + NAMESPACE mecab:: + DESTINATION ${mecab_CMAKE_DIR}) + +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/Config.cmake.in" + "${PROJECT_BINARY_DIR}/mecabConfig.cmake" + INSTALL_DESTINATION ${mecab_CMAKE_DIR}) + + +write_basic_package_version_file( + ${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion ) + +install(FILES + ${PROJECT_BINARY_DIR}/mecabConfig.cmake + ${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake + DESTINATION ${mecab_CMAKE_DIR}) diff --git a/ports/mecab/CONTROL b/ports/mecab/CONTROL new file mode 100644 index 000000000..b5b9c8f10 --- /dev/null +++ b/ports/mecab/CONTROL @@ -0,0 +1,3 @@ +Source: mecab
+Version: 1.0
+Description: A morphological analysis engine based on CRF
diff --git a/ports/mecab/Config.cmake.in b/ports/mecab/Config.cmake.in new file mode 100644 index 000000000..927b3637b --- /dev/null +++ b/ports/mecab/Config.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") +check_required_components(mecab)
\ No newline at end of file diff --git a/ports/mecab/fix_wpath_unsigned.patch b/ports/mecab/fix_wpath_unsigned.patch new file mode 100644 index 000000000..d8dcf1509 --- /dev/null +++ b/ports/mecab/fix_wpath_unsigned.patch @@ -0,0 +1,40 @@ +diff --git a/mecab/src/common.h b/mecab/src/common.h +index d1fc459..2951d5a 100644 +--- a/mecab/src/common.h ++++ b/mecab/src/common.h +@@ -86,7 +86,8 @@ + #define WPATH_FORCE(path) (MeCab::Utf8ToWide(path).c_str()) + #define WPATH(path) (path) + #else +-#define WPATH(path) WPATH_FORCE(path) ++#define WPATH_FORCE(path) (MeCab::Utf8ToWide(path).c_str()) ++#define WPATH(path) (path) + #endif + #else + #define WPATH_FORCE(path) (path) +diff --git a/mecab/src/feature_index.cpp b/mecab/src/feature_index.cpp +index 051bdf8..fdd0145 100644 +--- a/mecab/src/feature_index.cpp ++++ b/mecab/src/feature_index.cpp +@@ -353,7 +353,7 @@ bool FeatureIndex::buildUnigramFeature(LearnerPath *path, + if (!r) goto NEXT; + os_ << r; + } break; +- case 't': os_ << (size_t)path->rnode->char_type; break; ++ case 't': os_ << (int)(size_t)path->rnode->char_type; break; + case 'u': os_ << ufeature; break; + case 'w': + if (path->rnode->stat == MECAB_NOR_NODE) { +diff --git a/mecab/src/writer.cpp b/mecab/src/writer.cpp +index 0ef6975..f068fa3 100644 +--- a/mecab/src/writer.cpp ++++ b/mecab/src/writer.cpp +@@ -257,7 +257,7 @@ bool Writer::writeNode(Lattice *lattice, + // input sentence + case 'S': os->write(lattice->sentence(), lattice->size()); break; + // sentence length +- case 'L': *os << lattice->size(); break; ++ case 'L': *os << (int)lattice->size(); break; + // morph + case 'm': os->write(node->surface, node->length); break; + case 'M': os->write(reinterpret_cast<const char *> diff --git a/ports/mecab/portfile.cmake b/ports/mecab/portfile.cmake new file mode 100644 index 000000000..b7b04aa0b --- /dev/null +++ b/ports/mecab/portfile.cmake @@ -0,0 +1,30 @@ +if (VCPKG_TARGET_TRIPLET STREQUAL "x64-uwp" OR VCPKG_TARGET_TRIPLET STREQUAL "arm64-windows" OR VCPKG_TARGET_TRIPLET STREQUAL "arm-uwp")
+ message(FATAL_ERROR "mecab does not support on this platform")
+endif()
+
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO taku910/mecab
+ REF master
+ SHA512 2a7f1d159ddca846357b5bcab2d2b5de2e6a27dca4301cdd1cc52c155c352f9c7030b77d1187afe9c0a7f1b131a1acdcc40ee81ce7ba5c0fa6b2325c56676353
+ HEAD_REF master
+ PATCHES
+ fix_wpath_unsigned.patch
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/mecab/src)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in DESTINATION ${SOURCE_PATH}/mecab/src)
+file(COPY ${SOURCE_PATH}/mecab/COPYING DESTINATION ${SOURCE_PATH}/mecab/src)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/mecab/src
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets()
+vcpkg_copy_pdbs()
+
+file(COPY ${SOURCE_PATH}/mecab/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mecab)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/mecab/COPYING ${CURRENT_PACKAGES_DIR}/share/mecab/copyright)
\ No newline at end of file |
