diff options
Diffstat (limited to 'vcpkg/ports/opencc')
| -rw-r--r-- | vcpkg/ports/opencc/enable-cpp17.patch | 39 | ||||
| -rw-r--r-- | vcpkg/ports/opencc/fix-dependencies.patch | 35 | ||||
| -rw-r--r-- | vcpkg/ports/opencc/portfile.cmake | 58 | ||||
| -rw-r--r-- | vcpkg/ports/opencc/vcpkg.json | 32 |
4 files changed, 164 insertions, 0 deletions
diff --git a/vcpkg/ports/opencc/enable-cpp17.patch b/vcpkg/ports/opencc/enable-cpp17.patch new file mode 100644 index 0000000..42151fd --- /dev/null +++ b/vcpkg/ports/opencc/enable-cpp17.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1d8c8e6..8979a5e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -72,7 +72,7 @@ include(CPack) + + if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_MACOSX_RPATH 1) +- set(CMAKE_CXX_STANDARD 14) ++ set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + endif() + +@@ -154,7 +154,7 @@ add_definitions( + + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + add_definitions( +- -std=c++14 ++ -std=c++17 + -Wall + ) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") +@@ -163,7 +163,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + endif () + elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + add_definitions( +- -std=c++14 ++ -std=c++17 + -Wall + ) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") +@@ -174,6 +174,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + add_definitions( + /W4 + /D "_CRT_SECURE_NO_WARNINGS" ++ /std:c++17 + ) + endif() + diff --git a/vcpkg/ports/opencc/fix-dependencies.patch b/vcpkg/ports/opencc/fix-dependencies.patch new file mode 100644 index 0000000..581a993 --- /dev/null +++ b/vcpkg/ports/opencc/fix-dependencies.patch @@ -0,0 +1,35 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 7768c89..70292d6 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -115,7 +115,7 @@ add_library(libopencc ${LIBOPENCC_SOURCES} ${LIBOPENCC_HEADERS}) + add_library(OpenCC::OpenCC ALIAS libopencc) + set_target_properties(libopencc PROPERTIES POSITION_INDEPENDENT_CODE ON) + source_group(libopencc FILES ${LIBOPENCC_SOURCES} ${LIBOPENCC_HEADERS}) +-target_link_libraries(libopencc marisa) ++target_link_libraries(libopencc ${LIBMARISA}) + target_include_directories(libopencc PUBLIC + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:${DIR_INCLUDE}/opencc> +@@ -144,6 +144,21 @@ set_target_properties( + ${OPENCC_VERSION_MAJOR}.${OPENCC_VERSION_MINOR} + ) + ++if(USE_SYSTEM_RAPIDJSON) ++ find_package(RapidJSON CONFIG REQUIRED) ++ target_link_libraries(libopencc rapidjson) ++endif() ++ ++if(USE_SYSTEM_TCLAP) ++ find_path(TCLAP_INCLUDE_DIRS "tclap/Arg.h") ++ target_include_directories(libopencc PUBLIC ${TCLAP_INCLUDE_DIRS}) ++endif() ++ ++if(USE_SYSTEM_DARTS) ++ find_path(DARTS_INCLUDE_DIRS "darts.h") ++ target_include_directories(libopencc PUBLIC ${DARTS_INCLUDE_DIRS}) ++endif() ++ + # Installation + + if (USE_SYSTEM_MARISA) diff --git a/vcpkg/ports/opencc/portfile.cmake b/vcpkg/ports/opencc/portfile.cmake new file mode 100644 index 0000000..283f19a --- /dev/null +++ b/vcpkg/ports/opencc/portfile.cmake @@ -0,0 +1,58 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO BYVoid/OpenCC
+ REF "ver.${VERSION}"
+ SHA512 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9
+ HEAD_REF master
+ PATCHES
+ fix-dependencies.patch
+ # marisa-trie/0.3.0 requires C++17, so we need to enable it
+ enable-cpp17.patch
+)
+
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+vcpkg_add_to_path("${PYTHON3_DIR}")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_DOCUMENTATION=OFF
+ -DENABLE_GTEST=OFF
+ -DUSE_SYSTEM_RAPIDJSON=ON
+ -DUSE_SYSTEM_TCLAP=ON
+ -DUSE_SYSTEM_DARTS=ON
+ -DUSE_SYSTEM_MARISA=ON
+ -DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf
+)
+
+vcpkg_cmake_install(
+ DISABLE_PARALLEL
+)
+
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/opencc)
+
+vcpkg_fixup_pkgconfig()
+
+set(tool_names "opencc" "opencc_dict" "opencc_phrase_extract")
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN)
+endif()
+
+foreach(opencc_tool IN LISTS tool_names)
+ file(REMOVE
+ "${CURRENT_PACKAGES_DIR}/bin/${opencc_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}"
+ "${CURRENT_PACKAGES_DIR}/debug/bin/${opencc_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}"
+ )
+endforeach()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS)
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/opencc/vcpkg.json b/vcpkg/ports/opencc/vcpkg.json new file mode 100644 index 0000000..cbf963f --- /dev/null +++ b/vcpkg/ports/opencc/vcpkg.json @@ -0,0 +1,32 @@ +{ + "name": "opencc", + "version": "1.1.9", + "port-version": 1, + "description": "A project for conversions between Traditional Chinese, Simplified Chinese and Japanese Kanji (Shinjitai)", + "homepage": "https://github.com/BYVoid/OpenCC", + "license": "Apache-2.0", + "supports": "!(arm | uwp)", + "dependencies": [ + "darts-clone", + "marisa-trie", + { + "name": "pkgconf", + "host": true + }, + "rapidjson", + "tclap", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "tools": { + "description": "Build OpenCC command-line tools" + } + } +} |