aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcuroky <cccuroky@gmail.com>2020-08-01 02:07:14 +0800
committerGitHub <noreply@github.com>2020-07-31 11:07:14 -0700
commit62cbf2617570bd2d3e23ec4da378baf673473302 (patch)
tree30fe25a96abaeb86bcde9468491b5cb064ae215a
parenta17543d8407cee324ae39dc5bf7504bd5a461c87 (diff)
downloadvcpkg-62cbf2617570bd2d3e23ec4da378baf673473302.tar.gz
vcpkg-62cbf2617570bd2d3e23ec4da378baf673473302.zip
[rsocket] Add new port (#11021)
* [rsocket] Add new port * [rsocket] don't build in some window environment * [rsocket] add missing deps in CONTROL * [rsocket] add missing deps in CONTROL * [rsocket] remove some deprecated args * [rsocket] romove vcpkg_fail_port_install(ON_ARCH x64) * [rsocket] only support x64 architecture * [rsocket] upgrade to 2020.05.04.00 * [rsocket] add vcpkg_fail_port_install to portfile * [rsocket] Fix find dependencies * Update ports/rsocket/portfile.cmake * Update ports/rsocket/CONTROL Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com> Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
-rw-r--r--ports/rsocket/CONTROL6
-rw-r--r--ports/rsocket/fix-cmake-config.patch26
-rw-r--r--ports/rsocket/fix-find-dependencies.patch94
-rw-r--r--ports/rsocket/portfile.cmake44
-rw-r--r--scripts/ci.baseline.txt2
5 files changed, 172 insertions, 0 deletions
diff --git a/ports/rsocket/CONTROL b/ports/rsocket/CONTROL
new file mode 100644
index 000000000..333fe0df3
--- /dev/null
+++ b/ports/rsocket/CONTROL
@@ -0,0 +1,6 @@
+Source: rsocket
+Version: 2020.05.04.00-1
+Homepage: https://github.com/rsocket/rsocket-cpp
+Description: C++ implementation of RSocket http://rsocket.io
+Build-Depends: folly, double-conversion, openssl, gflags, glog, fmt, boost-system, boost-thread, boost-filesystem, boost-regex, boost-context, boost-program-options, zlib
+Supports: !(windows&x64)
diff --git a/ports/rsocket/fix-cmake-config.patch b/ports/rsocket/fix-cmake-config.patch
new file mode 100644
index 000000000..d3bf7b886
--- /dev/null
+++ b/ports/rsocket/fix-cmake-config.patch
@@ -0,0 +1,26 @@
+diff --git a/cmake/rsocket-config.cmake.in b/cmake/rsocket-config.cmake.in
+index d5579a85..ea12752a 100644
+--- a/cmake/rsocket-config.cmake.in
++++ b/cmake/rsocket-config.cmake.in
+@@ -4,7 +4,7 @@
+ @PACKAGE_INIT@
+
+ if(NOT TARGET rsocket::ReactiveSocket)
+- include("${PACKAGE_PREFIX_DIR}/lib/cmake/rsocket/rsocket-exports.cmake")
++ include("${CMAKE_CURRENT_LIST_DIR}/rsocket-exports.cmake")
+ endif()
+
+ if (NOT rsocket_FIND_QUIETLY)
+diff --git a/yarpl/cmake/yarpl-config.cmake.in b/yarpl/cmake/yarpl-config.cmake.in
+index d557b213..1b83fffc 100644
+--- a/yarpl/cmake/yarpl-config.cmake.in
++++ b/yarpl/cmake/yarpl-config.cmake.in
+@@ -4,7 +4,7 @@
+ @PACKAGE_INIT@
+
+ if(NOT TARGET yarpl::yarpl)
+- include("${PACKAGE_PREFIX_DIR}/lib/cmake/yarpl/yarpl-exports.cmake")
++ include("${CMAKE_CURRENT_LIST_DIR}/yarpl-exports.cmake")
+ endif()
+
+ set(YARPL_LIBRARIES yarpl::yarpl)
diff --git a/ports/rsocket/fix-find-dependencies.patch b/ports/rsocket/fix-find-dependencies.patch
new file mode 100644
index 000000000..287a6fa99
--- /dev/null
+++ b/ports/rsocket/fix-find-dependencies.patch
@@ -0,0 +1,94 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f69e907..22570b5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -124,7 +124,7 @@ option(BUILD_BENCHMARKS "Build benchmarks" ON)
+ option(BUILD_EXAMPLES "Build examples" ON)
+ option(BUILD_TESTS "Build tests" ON)
+
+-enable_testing()
++#enable_testing()
+
+ include(ExternalProject)
+ include(CTest)
+@@ -172,7 +172,9 @@ endif()
+
+ if("${BUILD_TYPE_LOWER}" MATCHES "debug")
+ message("debug mode was set")
++ if (NOT WIN32)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unreachable-code")
++ endif()
+ else()
+ message("release mode was set")
+ endif()
+@@ -181,18 +183,25 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+ set(TEST_CXX_FLAGS ${TEST_CXX_FLAGS} -Wno-inconsistent-missing-override)
+ endif()
+
+-find_library(DOUBLE-CONVERSION double-conversion)
++find_package(double-conversion CONFIG REQUIRED)
+
+ find_package(OpenSSL REQUIRED)
+
+-find_package(Gflags REQUIRED)
++find_package(gflags CONFIG REQUIRED)
+
+-# find glog::glog to satisfy the folly dep.
+-find_package(Glog REQUIRED)
++find_package(ZLIB REQUIRED)
+
+-find_package(fmt CONFIG REQUIRED)
++if (BUILD_SHARED_LIBS)
++ set(gflags gflags_shared)
++else()
++ set(gflags gflags_static)
++endif()
+
+-include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR})
++# find glog::glog to satisfy the folly dep.
++find_package(folly CONFIG REQUIRED)
++#find_package(glog CONFIG REQUIRED)
++#
++#find_package(fmt CONFIG REQUIRED)
+
+ include_directories(SYSTEM ${GFLAGS_INCLUDE_DIR})
+
+@@ -327,7 +336,7 @@ target_compile_options(
+ ReactiveSocket
+ PRIVATE ${EXTRA_CXX_FLAGS})
+
+-enable_testing()
++#enable_testing()
+
+ install(TARGETS ReactiveSocket EXPORT rsocket-exports DESTINATION lib)
+ install(DIRECTORY rsocket DESTINATION include FILES_MATCHING PATTERN "*.h")
+@@ -470,7 +479,7 @@ if(BUILD_TESTS)
+ ${GMOCK_LIBS} # This also needs the preceding `add_dependencies`
+ glog::glog
+ gflags
+- ${DOUBLE-CONVERSION})
++ double-conversion::double-conversion)
+
+ # Download the latest TCK drivers JAR.
+ set(TCK_DRIVERS_JAR rsocket-tck-drivers-0.9.10.jar)
+diff --git a/yarpl/CMakeLists.txt b/yarpl/CMakeLists.txt
+index f4159b8..8c01ffb 100644
+--- a/yarpl/CMakeLists.txt
++++ b/yarpl/CMakeLists.txt
+@@ -53,8 +53,14 @@ endif()
+ # Using NDEBUG in Release builds.
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG")
+
+-find_package(Gflags REQUIRED)
+-find_package(Glog REQUIRED)
++find_package(gflags CONFIG REQUIRED)
++if (BUILD_SHARED_LIBS)
++ set(gflags gflags_shared)
++else()
++ set(gflags gflags_static)
++endif()
++
++find_package(glog CONFIG REQUIRED)
+ find_package(fmt CONFIG REQUIRED)
+
+ IF(NOT FOLLY_VERSION)
diff --git a/ports/rsocket/portfile.cmake b/ports/rsocket/portfile.cmake
new file mode 100644
index 000000000..4ae31c106
--- /dev/null
+++ b/ports/rsocket/portfile.cmake
@@ -0,0 +1,44 @@
+# yarpl only support static build in Windows
+if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_fail_port_install(ON_ARCH "x64")
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO rsocket/rsocket-cpp #v2020.05.04.00
+ REF 8038d05e741c3d3ecd6adb069b4a1b3daa230e14
+ SHA512 d7bc93af7b6130d73fa0823f534ad57a531dfa7d7aa990a2a1a1b72b6761db7eeb60573d0d38f55daa991554e3ab4ac507047f8051a4390b3343cd708a48efbb
+ HEAD_REF master
+ PATCHES
+ fix-cmake-config.patch
+ fix-find-dependencies.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_TESTS=OFF
+ -DBUILD_BENCHMARKS=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(REMOVE_RECURSE
+ ${CURRENT_PACKAGES_DIR}/include/yarpl/perf
+ ${CURRENT_PACKAGES_DIR}/include/yarpl/cmake
+ ${CURRENT_PACKAGES_DIR}/include/yarpl/test
+ ${CURRENT_PACKAGES_DIR}/include/rsocket/examples
+ ${CURRENT_PACKAGES_DIR}/include/rsocket/test
+)
+
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index 42ffe28fa..c4a4fb370 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -1533,6 +1533,8 @@ rocksdb:x64-uwp=fail
rpclib:arm64-windows=fail
rpclib:arm-uwp=fail
rpclib:x64-uwp=fail
+rsocket:x64-windows=fail
+rsocket:x64-windows-static=fail
rtlsdr:x64-uwp=fail
rtlsdr:arm64-windows=fail
rtlsdr:arm-uwp=fail