aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/srpc
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/srpc')
-rw-r--r--vcpkg/ports/srpc/portfile.cmake40
-rw-r--r--vcpkg/ports/srpc/protobuf.patch148
-rw-r--r--vcpkg/ports/srpc/vcpkg.json23
3 files changed, 211 insertions, 0 deletions
diff --git a/vcpkg/ports/srpc/portfile.cmake b/vcpkg/ports/srpc/portfile.cmake
new file mode 100644
index 0000000..98b5142
--- /dev/null
+++ b/vcpkg/ports/srpc/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_download_distfile(
+ PROTOBUF_V5_PATCH
+ URLS https://github.com/sogou/srpc/commit/bb882f98820bff7fa91aa83b29640fa753e11772.patch?full_index=1
+ SHA512 dbb665626073860ee22ccaf6369c54635d4c689e0bfcd5f86a60a1738b4c9eb9fb8eaa393b3551c7e9860f54e9a0f8463df66b9fb736394172f3f46dc2681016
+ FILENAME bb882f98820bff7fa91aa83b29640fa753e11772.patch
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO sogou/srpc
+ REF v${VERSION}
+ SHA512 55c0ebbf30c24fdb40885792d5d3f1e183f27fcf13df6217053bec13cf9ed6359888351b20a792607b1f49df674b88bd148cf4c8addb1f610b1c59dd4eeba0f2
+ HEAD_REF master
+ PATCHES
+ protobuf.patch
+ ${PROTOBUF_V5_PATCH}
+)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" SRPC_BUILD_STATIC_RUNTIME)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH ${SOURCE_PATH}
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ -DSRPC_BUILD_STATIC_RUNTIME=${SRPC_BUILD_STATIC_RUNTIME}
+ -DCMAKE_CXX_STANDARD=11
+ MAYBE_UNUSED_VARIABLES
+ SRPC_BUILD_STATIC_RUNTIME
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/srpc)
+vcpkg_copy_pdbs()
+vcpkg_copy_tools(
+ TOOL_NAMES srpc_generator
+ AUTO_CLEAN
+)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/srpc/protobuf.patch b/vcpkg/ports/srpc/protobuf.patch
new file mode 100644
index 0000000..5dc40bd
--- /dev/null
+++ b/vcpkg/ports/srpc/protobuf.patch
@@ -0,0 +1,148 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6c1aafc..97854a6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,11 +58,10 @@ else ()
+ endif ()
+
+ check_include_file_cxx("workflow/Workflow.h" WORKFLOW_INSTALLED)
+-if (NOT WORKFLOW_INSTALLED)
++if (0)
+ if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/workflow/workflow-config.cmake.in")
+ message( FATAL_ERROR "\nWorkflow" ${THIRD_PARTY_FATAL_MESSAGE} )
+ endif ()
+-else ()
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/workflow/workflow-config.cmake.in")
+ message("Workflow third_party FOUND. Use for source code dependencies.")
+ set(WORKFLOW_INSTALLED 0)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 3b47ee6..15c8009 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -16,7 +16,7 @@ set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "")
+ if (WIN32)
+ find_package(Protobuf REQUIRED CONFIG)
+ else ()
+- find_package(Protobuf 3.5.0 REQUIRED)
++ find_package(Protobuf CONFIG REQUIRED)
+ endif ()
+
+ if (WIN32)
+@@ -59,8 +59,8 @@ if (WIN32)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /wd4200")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /Zc:__cplusplus /std:c++14")
+ else ()
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -pipe -std=gnu90")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -std=c++11 -fno-exceptions")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -pipe")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -fno-exceptions")
+ endif ()
+
+ add_subdirectory(generator)
+@@ -100,6 +100,7 @@ if (WIN32)
+ )
+
+ add_dependencies(${PROJECT_NAME} LINK_HEADERS)
++ target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+
+ target_compile_definitions(
+ ${PROJECT_NAME} PRIVATE
+@@ -118,7 +119,6 @@ if (WIN32)
+ else ()
+ set(STATIC_LIB_NAME ${PROJECT_NAME}-static)
+ set(SHARED_LIB_NAME ${PROJECT_NAME}-shared)
+- get_filename_component(Protobuf_LIB_DIR ${Protobuf_LIBRARY} DIRECTORY)
+ link_directories(${OPENSSL_LINK_DIR} ${WORKFLOW_LIB_DIR} ${Protobuf_LIB_DIR})
+
+ add_library(
+@@ -143,8 +143,10 @@ else ()
+ $<TARGET_OBJECTS:http>
+ )
+
++ target_link_libraries(${SHARED_LIB_NAME} PUBLIC protobuf::libprotobuf)
++ target_link_libraries(${STATIC_LIB_NAME} PUBLIC protobuf::libprotobuf)
+ if (APPLE)
+- target_link_libraries(${SHARED_LIB_NAME}
++ target_link_libraries(${SHARED_LIB_NAME} PUBLIC
+ OpenSSL::SSL
+ OpenSSL::Crypto
+ pthread
+diff --git a/src/compress/CMakeLists.txt b/src/compress/CMakeLists.txt
+index 818b505..c0d1dde 100644
+--- a/src/compress/CMakeLists.txt
++++ b/src/compress/CMakeLists.txt
+@@ -51,3 +51,4 @@ else ()
+ )
+ endif()
+
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+diff --git a/src/generator/CMakeLists.txt b/src/generator/CMakeLists.txt
+index c2d72d7..674c5d0 100644
+--- a/src/generator/CMakeLists.txt
++++ b/src/generator/CMakeLists.txt
+@@ -8,6 +8,7 @@ set(SRC
+ )
+
+ add_executable(${PROJECT_NAME} ${SRC})
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+ if (WIN32)
+ target_compile_definitions(
+ ${PROJECT_NAME} PRIVATE
+diff --git a/src/http/CMakeLists.txt b/src/http/CMakeLists.txt
+index 64c0377..1cf1dfc 100644
+--- a/src/http/CMakeLists.txt
++++ b/src/http/CMakeLists.txt
+@@ -11,6 +11,7 @@ set(SRC
+ )
+
+ add_library(${PROJECT_NAME} OBJECT ${SRC})
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+ if (WIN32)
+ target_compile_definitions(
+ ${PROJECT_NAME} PRIVATE
+diff --git a/src/message/CMakeLists.txt b/src/message/CMakeLists.txt
+index 952607f..f947540 100644
+--- a/src/message/CMakeLists.txt
++++ b/src/message/CMakeLists.txt
+@@ -15,6 +15,7 @@ set(SRC
+ )
+
+ add_library(${PROJECT_NAME} OBJECT ${SRC})
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+ if (WIN32)
+ target_compile_definitions(
+ ${PROJECT_NAME} PRIVATE
+diff --git a/src/module/CMakeLists.txt b/src/module/CMakeLists.txt
+index f0041a4..a9d9a65 100644
+--- a/src/module/CMakeLists.txt
++++ b/src/module/CMakeLists.txt
+@@ -22,6 +22,7 @@ set(SRC
+ )
+
+ add_library(${PROJECT_NAME} OBJECT ${SRC})
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+
+ if (WIN32)
+ target_compile_definitions(
+diff --git a/src/thrift/CMakeLists.txt b/src/thrift/CMakeLists.txt
+index 1d1d61c..dc66723 100644
+--- a/src/thrift/CMakeLists.txt
++++ b/src/thrift/CMakeLists.txt
+@@ -7,4 +7,4 @@ set(SRC
+ )
+
+ add_library(${PROJECT_NAME} OBJECT ${SRC})
+-
++target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf)
+diff --git a/srpc-config.cmake.in b/srpc-config.cmake.in
+index 54b4323..1cdb97f 100644
+--- a/srpc-config.cmake.in
++++ b/srpc-config.cmake.in
+@@ -3,7 +3,6 @@
+ set(SRPC_VERSION "@srpc_VERSION@")
+ set_and_check(SRPC_INCLUDE_DIR "@PACKAGE_CONFIG_INC_DIR@")
+ set_and_check(SRPC_LIB_DIR "@PACKAGE_CONFIG_LIB_DIR@")
+-set_and_check(SRPC_BIN_DIR "@PACKAGE_CONFIG_BIN_DIR@")
+
+ if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake")
+ include ("${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake")
diff --git a/vcpkg/ports/srpc/vcpkg.json b/vcpkg/ports/srpc/vcpkg.json
new file mode 100644
index 0000000..10183cc
--- /dev/null
+++ b/vcpkg/ports/srpc/vcpkg.json
@@ -0,0 +1,23 @@
+{
+ "name": "srpc",
+ "version-semver": "0.10.3",
+ "port-version": 1,
+ "description": "RPC based on Sogou C++ Workflow",
+ "homepage": "https://github.com/sogou/srpc",
+ "dependencies": [
+ "lz4",
+ "openssl",
+ "protobuf",
+ "snappy",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "workflow",
+ "zlib"
+ ]
+}