From 27cb526afcb35c91e17e116f4e0499997693e63e Mon Sep 17 00:00:00 2001 From: daijunkai Date: Sat, 28 May 2022 11:14:02 +0000 Subject: [PATCH] [brpc] Updata to 1.1.0 --- ...ix_boost_ptr.patch => fix-boost-ptr.patch} | 2 +- ports/brpc/fix-build.patch | 202 ++++++++++++++++++ ports/brpc/fix_thrift.patch | 28 --- ports/brpc/portfile.cmake | 18 +- ports/brpc/vcpkg.json | 7 +- versions/b-/brpc.json | 5 + versions/baseline.json | 4 +- 7 files changed, 221 insertions(+), 45 deletions(-) rename ports/brpc/{fix_boost_ptr.patch => fix-boost-ptr.patch} (92%) create mode 100644 ports/brpc/fix-build.patch delete mode 100644 ports/brpc/fix_thrift.patch diff --git a/ports/brpc/fix_boost_ptr.patch b/ports/brpc/fix-boost-ptr.patch similarity index 92% rename from ports/brpc/fix_boost_ptr.patch rename to ports/brpc/fix-boost-ptr.patch index 4ced79422bc7ce..2650a23dace80d 100644 --- a/ports/brpc/fix_boost_ptr.patch +++ b/ports/brpc/fix-boost-ptr.patch @@ -1,5 +1,5 @@ diff --git a/src/brpc/policy/thrift_protocol.cpp b/src/brpc/policy/thrift_protocol.cpp -index eae081a0..39c92338 100755 +index 634f8f37..21b118b1 100755 --- a/src/brpc/policy/thrift_protocol.cpp +++ b/src/brpc/policy/thrift_protocol.cpp @@ -45,8 +45,7 @@ diff --git a/ports/brpc/fix-build.patch b/ports/brpc/fix-build.patch new file mode 100644 index 00000000000000..a39f8030b9ebe7 --- /dev/null +++ b/ports/brpc/fix-build.patch @@ -0,0 +1,202 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 057695af..ed4979f6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -63,7 +63,8 @@ endif() + + if(WITH_THRIFT) + set(THRIFT_CPP_FLAG "-DENABLE_THRIFT_FRAMED_PROTOCOL") +- set(THRIFT_LIB "thrift") ++ find_package(Thrift CONFIG REQUIRED) ++ set(THRIFT_LIB "thrift::thrift") + endif() + + include(GNUInstallDirs) +@@ -142,18 +143,21 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + endif() + endif() + +-find_package(Protobuf REQUIRED) ++find_package(protobuf CONFIG REQUIRED) ++get_target_property(PROTOBUF_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) ++set(PROTOBUF_LIBRARIES protobuf::libprotobuf) + find_package(Threads REQUIRED) +- +-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h) +-find_library(LEVELDB_LIB NAMES leveldb) ++find_package(leveldb CONFIG REQUIRED) ++set(LEVELDB_INCLUDE_PATH ${PROTOBUF_INCLUDE_DIR}) ++set(LEVELDB_LIB leveldb::leveldb) + if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) + message(FATAL_ERROR "Fail to find leveldb") + endif() + + if(WITH_GLOG) +- find_path(GLOG_INCLUDE_PATH NAMES glog/logging.h) +- find_library(GLOG_LIB NAMES glog) ++ find_package(glog CONFIG REQUIRED) ++ get_target_property(GLOG_INCLUDE_PATH glog::glog INTERFACE_INCLUDE_DIRECTORIES) ++ set(GLOG_LIB glog::glog) + if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIB)) + message(FATAL_ERROR "Fail to find glog") + endif() +@@ -171,7 +175,7 @@ if(WITH_MESALINK) + include_directories(${MESALINK_INCLUDE_PATH}) + endif() + +-find_library(PROTOC_LIB NAMES protoc) ++set(PROTOC_LIB "protobuf::libprotoc") + if(NOT PROTOC_LIB) + message(FATAL_ERROR "Fail to find protoc lib") + endif() +@@ -182,7 +186,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + ) + endif() + +-find_package(OpenSSL) ++find_package(OpenSSL REQUIRED) + + include_directories( + ${GFLAGS_INCLUDE_PATH} +@@ -197,9 +201,9 @@ set(DYNAMIC_LIB + ${LEVELDB_LIB} + ${PROTOC_LIB} + ${CMAKE_THREAD_LIBS_INIT} +- ${THRIFT_LIB} +- ${THRIFTNB_LIB} + ${OPENSSL_CRYPTO_LIBRARY} ++ ${OPENSSL_SSL_LIBRARY} ++ ${THRIFT_LIB} + dl + z) + +@@ -434,7 +438,9 @@ if(BUILD_UNIT_TESTS) + enable_testing() + add_subdirectory(test) + endif() ++if(BUILD_TOOLS) + add_subdirectory(tools) ++endif() + + file(COPY ${CMAKE_CURRENT_BINARY_DIR}/brpc/ + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/output/include/brpc/ +diff --git a/cmake/FindGFLAGS.cmake b/cmake/FindGFLAGS.cmake +index dfad5fd8..83a167f0 100644 +--- a/cmake/FindGFLAGS.cmake ++++ b/cmake/FindGFLAGS.cmake +@@ -15,7 +15,8 @@ + + set(_gflags_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) + +-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h) ++find_package(gflags CONFIG REQUIRED) ++get_target_property(GFLAGS_INCLUDE_PATH gflags::gflags INTERFACE_INCLUDE_DIRECTORIES) + + if (GFLAGS_STATIC) + if (WIN32) +@@ -24,7 +25,7 @@ if (GFLAGS_STATIC) + set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + endif (WIN32) + endif (GFLAGS_STATIC) +-find_library(GFLAGS_LIBRARY NAMES gflags libgflags) ++set(GFLAGS_LIBRARY gflags::gflags) + if(GFLAGS_INCLUDE_PATH AND GFLAGS_LIBRARY) + set(GFLAGS_FOUND TRUE) + endif(GFLAGS_INCLUDE_PATH AND GFLAGS_LIBRARY) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index ee616eb1..35a5b48e 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -31,45 +31,77 @@ add_dependencies(SOURCES_LIB PROTO_LIB) + set_property(TARGET ${SOURCES_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) + set_property(TARGET ${BUTIL_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) + +-add_library(brpc-shared SHARED $ ++if (BUILD_SHARED_LIBS) ++add_library(brpc-shared SHARED $ + $ + $) ++else() + add_library(brpc-static STATIC $ + $ + $) +- +-target_link_libraries(brpc-shared ${DYNAMIC_LIB}) ++endif() ++if (BUILD_SHARED_LIBS) ++target_include_directories(brpc-shared PUBLIC $) ++target_link_libraries(brpc-shared PUBLIC ${DYNAMIC_LIB}) ++else() ++target_include_directories(brpc-static PUBLIC $) ++target_link_libraries(brpc-static PUBLIC ${DYNAMIC_LIB}) ++endif() + + if(BRPC_WITH_GLOG) ++ if (BUILD_SHARED_LIBS) + target_link_libraries(brpc-shared ${GLOG_LIB}) ++ else() ++ target_link_libraries(brpc-static ${GLOG_LIB}) ++ endif() + endif() + + if(BRPC_WITH_THRIFT) ++ if (BUILD_SHARED_LIBS) + target_link_libraries(brpc-shared thrift) ++ else() + target_link_libraries(brpc-static thrift) ++ endif() + endif() + ++if (NOT BUILD_SHARED_LIBS) + SET_TARGET_PROPERTIES(brpc-static PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) ++else() + SET_TARGET_PROPERTIES(brpc-shared PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) ++endif() + +-# for protoc-gen-mcpack +-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/output/bin) +- +-set(protoc_gen_mcpack_SOURCES +- ${PROJECT_SOURCE_DIR}/src/mcpack2pb/generator.cpp +- ) +-add_executable(protoc-gen-mcpack ${protoc_gen_mcpack_SOURCES}) +-target_link_libraries(protoc-gen-mcpack brpc-shared) +- + #install directory +-install(TARGETS brpc-shared ++if (BUILD_SHARED_LIBS) ++install(TARGETS brpc-shared EXPORT unofficial-brpcTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) +- +-install(TARGETS brpc-static ++else() ++install(TARGETS brpc-static EXPORT unofficial-brpcTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) ++endif() ++ ++file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" ++[[include(CMakeFindDependencyMacro) ++find_dependency(OpenSSL) ++find_dependency(Threads) ++find_dependency(gflags CONFIG) ++find_dependency(protobuf CONFIG) ++find_dependency(leveldb CONFIG) ++find_dependency(Thrift CONFIG) ++find_dependency(glog CONFIG) ++file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-brpcTargets.cmake") ++foreach (TARGET_FILE ${TARGET_FILES}) ++ include("${TARGET_FILE}") ++endforeach() ++]]) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" DESTINATION share/unofficial-brpc) ++ ++install(EXPORT unofficial-brpcTargets ++ NAMESPACE unofficial::brpc:: ++ DESTINATION share/unofficial-brpc ++) diff --git a/ports/brpc/fix_thrift.patch b/ports/brpc/fix_thrift.patch deleted file mode 100644 index 699f42fb0aa0b9..00000000000000 --- a/ports/brpc/fix_thrift.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3deb7342..737f6a70 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -62,8 +62,10 @@ if(WITH_DEBUG_SYMBOLS) - endif() - - if(WITH_THRIFT) -+ find_package(Thrift CONFIG REQUIRED) -+ # target_link_libraries(main PRIVATE thrift::thrift thriftz::thriftz thriftnb::thriftnb) - set(THRIFT_CPP_FLAG "-DENABLE_THRIFT_FRAMED_PROTOCOL") -- set(THRIFT_LIB "thrift") -+ set(THRIFT_LIB "thrift::thrift") - endif() - - include(GNUInstallDirs) -@@ -196,9 +198,10 @@ set(DYNAMIC_LIB - ${LEVELDB_LIB} - ${PROTOC_LIB} - ${CMAKE_THREAD_LIBS_INIT} -+ ${OPENSSL_CRYPTO_LIBRARY} -+ ${OPENSSL_SSL_LIBRARY} - ${THRIFT_LIB} - ${THRIFTNB_LIB} -- ${OPENSSL_CRYPTO_LIBRARY} - dl - z) - diff --git a/ports/brpc/portfile.cmake b/ports/brpc/portfile.cmake index ed0ff3acfabe6a..8aa32069fa6fcf 100644 --- a/ports/brpc/portfile.cmake +++ b/ports/brpc/portfile.cmake @@ -1,19 +1,12 @@ -vcpkg_download_distfile(patch1679 - URLS "https://patch-diff.githubusercontent.com/raw/apache/incubator-brpc/pull/1679.diff" - FILENAME "apache-incubator-brpc-1679.diff" - SHA512 4b1e5717b44aa6a741ddd49b1408e3e556f6d845d5e8a5cfccf2f2d7ebe39aed19c3dad703db7a9ebd0446ac1f225e7dbdd2ff1f23f34fd60c3ef59aaa07b789 -) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/incubator-brpc - REF 1d6510aa50075cade5ed539ee09a11a1b8d7f990 # 0.9.7 - SHA512 9c9dbe2a202e58586010c56634bd371f6a9e3ff0d8c5341abbabd1f1dd204a3aec5e89061fa326b4fc8ae7202f9fc33f93a5acd845d18dab3915a3e2b81cbaf3 + REF 06247c18ed6307613f04c0d2357cb91d0c14131b + SHA512 f31b1ce3bd99dd585686ec540c9713d5d5936b2d58aadfb3f0ef48faeaab1797f2373e14b73578c2f9f8355d1e9d03661e2ed9ed8c4349b4e43e510d2214b5ae HEAD_REF master PATCHES - fix_boost_ptr.patch - fix_thrift.patch - ${patch1679} + fix-build.patch + fix-boost-ptr.patch ) vcpkg_cmake_configure( @@ -22,12 +15,13 @@ vcpkg_cmake_configure( -DWITH_THRIFT=ON -DWITH_MESALINK=OFF -DWITH_GLOG=ON + -DDOWNLOAD_GTEST=OFF ) vcpkg_cmake_install() +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-brpc CONFIG_PATH share/unofficial-brpc) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/butil/third_party/superfasthash") vcpkg_copy_pdbs() diff --git a/ports/brpc/vcpkg.json b/ports/brpc/vcpkg.json index 67c0e3119786c3..7547db6dadcce9 100644 --- a/ports/brpc/vcpkg.json +++ b/ports/brpc/vcpkg.json @@ -1,7 +1,6 @@ { "name": "brpc", - "version": "0.9.7", - "port-version": 7, + "version": "1.1.0", "description": "Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services, called \"baidu-rpc\" inside Baidu.", "homepage": "https://github.com/apache/incubator-brpc", "license": "Apache-2.0", @@ -24,6 +23,10 @@ { "name": "vcpkg-cmake", "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true } ] } diff --git a/versions/b-/brpc.json b/versions/b-/brpc.json index a7a9687b5a7965..f2a2c41760e8ba 100644 --- a/versions/b-/brpc.json +++ b/versions/b-/brpc.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c88bb19658430803981fbfa4ec45432bed88310b", + "version": "1.1.0", + "port-version": 0 + }, { "git-tree": "bcff3231352f577720f51a99dbf9ecf0132ebcba", "version": "0.9.7", diff --git a/versions/baseline.json b/versions/baseline.json index 82baf583d7fb74..135e24d139022a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1157,8 +1157,8 @@ "port-version": 2 }, "brpc": { - "baseline": "0.9.7", - "port-version": 7 + "baseline": "1.1.0", + "port-version": 0 }, "brunocodutra-metal": { "baseline": "2.1.4",