diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/srpc | |
Diffstat (limited to 'vcpkg/ports/srpc')
| -rw-r--r-- | vcpkg/ports/srpc/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/srpc/protobuf.patch | 148 | ||||
| -rw-r--r-- | vcpkg/ports/srpc/vcpkg.json | 23 |
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" + ] +} |