aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/opencc
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/opencc')
-rw-r--r--vcpkg/ports/opencc/enable-cpp17.patch39
-rw-r--r--vcpkg/ports/opencc/fix-dependencies.patch35
-rw-r--r--vcpkg/ports/opencc/portfile.cmake58
-rw-r--r--vcpkg/ports/opencc/vcpkg.json32
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"
+ }
+ }
+}