diff options
Diffstat (limited to 'vcpkg/ports/braft')
| -rw-r--r-- | vcpkg/ports/braft/export-target.patch | 72 | ||||
| -rw-r--r-- | vcpkg/ports/braft/fix-build.patch | 56 | ||||
| -rw-r--r-- | vcpkg/ports/braft/fix-dependency.patch | 31 | ||||
| -rw-r--r-- | vcpkg/ports/braft/fix-glog.patch | 39 | ||||
| -rw-r--r-- | vcpkg/ports/braft/portfile.cmake | 37 | ||||
| -rw-r--r-- | vcpkg/ports/braft/protobuf.patch | 23 | ||||
| -rw-r--r-- | vcpkg/ports/braft/vcpkg.json | 25 |
7 files changed, 283 insertions, 0 deletions
diff --git a/vcpkg/ports/braft/export-target.patch b/vcpkg/ports/braft/export-target.patch new file mode 100644 index 0000000..98b04e9 --- /dev/null +++ b/vcpkg/ports/braft/export-target.patch @@ -0,0 +1,72 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 3d75dd5..090a02e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -99,7 +99,7 @@ if(BRPC_WITH_GLOG) + ${OPENSSL_LIBRARIES} + ${OPENSSL_CRYPTO_LIBRARY} + dl +- z ++ ZLIB::ZLIB + ) + else() + set(DYNAMIC_LIB +@@ -111,7 +111,7 @@ else() + ${OPENSSL_LIBRARIES} + ${OPENSSL_CRYPTO_LIBRARY} + dl +- z ++ ZLIB::ZLIB + ) + endif() + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 78adc56..50cffc6 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -19,8 +19,10 @@ add_library(braft-static STATIC $<TARGET_OBJECTS:OBJ_LIB>) + endif() + + if (BUILD_SHARED_LIBS) ++target_include_directories(braft-shared PUBLIC $<INSTALL_INTERFACE:include>) + target_link_libraries(braft-shared PUBLIC ${DYNAMIC_LIB}) + else() ++target_include_directories(braft-static PUBLIC $<INSTALL_INTERFACE:include>) + target_link_libraries(braft-static PUBLIC ${DYNAMIC_LIB}) + endif() + +@@ -31,15 +33,32 @@ SET_TARGET_PROPERTIES(braft-shared PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUT + endif() + + if (NOT BUILD_SHARED_LIBS) +-install(TARGETS braft-static ++install(TARGETS braft-static EXPORT unofficial-braftTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIBSUFFIX} + ARCHIVE DESTINATION lib${LIBSUFFIX} + ) + else() +-install(TARGETS braft-shared ++install(TARGETS braft-shared EXPORT unofficial-braftTargets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIBSUFFIX} + ARCHIVE DESTINATION lib${LIBSUFFIX} + ) + endif() ++ ++file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" ++[[include(CMakeFindDependencyMacro) ++find_dependency(ZLIB) ++find_dependency(gflags CONFIG) ++find_dependency(Protobuf CONFIG) ++file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-braftTargets.cmake") ++foreach (TARGET_FILE ${TARGET_FILES}) ++ include("${TARGET_FILE}") ++endforeach() ++]]) ++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" DESTINATION share/unofficial-braft) ++ ++install(EXPORT unofficial-braftTargets ++ NAMESPACE unofficial::braft:: ++ DESTINATION share/unofficial-braft ++) diff --git a/vcpkg/ports/braft/fix-build.patch b/vcpkg/ports/braft/fix-build.patch new file mode 100644 index 0000000..1be7d3c --- /dev/null +++ b/vcpkg/ports/braft/fix-build.patch @@ -0,0 +1,56 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a735c53..53ddaed 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -229,7 +229,9 @@ add_subdirectory(src) + if(BUILD_UNIT_TESTS) + add_subdirectory(test) + endif() ++if(BUILD_TOOLS) + add_subdirectory(tools) ++endif() + + file(COPY ${CMAKE_CURRENT_BINARY_DIR}/braft/ + DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/output/include/braft/ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index f587464..78adc56 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -12,22 +12,34 @@ include_directories(${CMAKE_SOURCE_DIR}/src) + add_library(OBJ_LIB OBJECT ${SOURCES}) + + set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) ++if (BUILD_SHARED_LIBS) + add_library(braft-shared SHARED $<TARGET_OBJECTS:OBJ_LIB>) ++else() + add_library(braft-static STATIC $<TARGET_OBJECTS:OBJ_LIB>) +-target_link_libraries(braft-shared ${DYNAMIC_LIB}) +-target_link_libraries(braft-static ${DYNAMIC_LIB}) ++endif() ++ ++if (BUILD_SHARED_LIBS) ++target_link_libraries(braft-shared PUBLIC ${DYNAMIC_LIB}) ++else() ++target_link_libraries(braft-static PUBLIC ${DYNAMIC_LIB}) ++endif() + ++if (NOT BUILD_SHARED_LIBS) + SET_TARGET_PROPERTIES(braft-static PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUTPUT 1) ++else() + SET_TARGET_PROPERTIES(braft-shared PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUTPUT 1) ++endif() + ++if (NOT BUILD_SHARED_LIBS) + install(TARGETS braft-static + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIBSUFFIX} + ARCHIVE DESTINATION lib${LIBSUFFIX} + ) +- ++else() + install(TARGETS braft-shared + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIBSUFFIX} + ARCHIVE DESTINATION lib${LIBSUFFIX} + ) ++endif() diff --git a/vcpkg/ports/braft/fix-dependency.patch b/vcpkg/ports/braft/fix-dependency.patch new file mode 100644 index 0000000..d875f35 --- /dev/null +++ b/vcpkg/ports/braft/fix-dependency.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 53ddaed..3d75dd5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -47,8 +47,9 @@ if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) + message(FATAL_ERROR "Fail to find leveldb") + endif() + +-find_path(GFLAGS_INCLUDE_PATH NAMES gflags/gflags.h) +-find_library(GFLAGS_LIB NAMES gflags) ++find_package(gflags CONFIG REQUIRED) ++get_target_property(GFLAGS_INCLUDE_PATH gflags::gflags INTERFACE_INCLUDE_DIRECTORIES) ++set(GFLAGS_LIB gflags::gflags) + if ((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIB)) + message(FATAL_ERROR "Fail to find gflags") + endif() +@@ -77,13 +78,7 @@ if (NOT PROTOBUF_PROTOC_EXECUTABLE) + set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") + endif() + +-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +- set(OPENSSL_ROOT_DIR +- "/usr/local/opt/openssl" # Homebrew installed OpenSSL +- ) +-endif() +- +-include(FindOpenSSL) ++find_package(OpenSSL REQUIRED) + + include_directories( + ${GFLAGS_INCLUDE_PATH} diff --git a/vcpkg/ports/braft/fix-glog.patch b/vcpkg/ports/braft/fix-glog.patch new file mode 100644 index 0000000..a2783e5 --- /dev/null +++ b/vcpkg/ports/braft/fix-glog.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 090a02e..fbe0ac3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -55,12 +55,8 @@ if ((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIB)) + endif() + + if(BRPC_WITH_GLOG) +- find_path(GLOG_INCLUDE_PATH NAMES glog/logging.h) +- find_library(GLOG_LIB NAMES glog) +- if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIB)) +- message(FATAL_ERROR "Fail to find glog") +- endif() +- include_directories(${GLOG_INCLUDE_PATH}) ++ find_package(glog CONFIG REQUIRED) ++ set(GLOG_LIB glog::glog) + endif() + + if(LEVELDB_WITH_SNAPPY) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 70d73df..a3d3046 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -11,6 +11,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src) + + add_library(OBJ_LIB OBJECT ${SOURCES}) + ++target_link_libraries(OBJ_LIB PUBLIC ${DYNAMIC_LIB}) + set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) + if (BUILD_SHARED_LIBS) + add_library(braft-shared SHARED $<TARGET_OBJECTS:OBJ_LIB>) +@@ -50,6 +51,7 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" + [[include(CMakeFindDependencyMacro) + find_dependency(ZLIB) + find_dependency(gflags CONFIG) ++find_dependency(glog CONFIG) + find_dependency(Protobuf CONFIG) + file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-braftTargets.cmake") + foreach (TARGET_FILE ${TARGET_FILES}) diff --git a/vcpkg/ports/braft/portfile.cmake b/vcpkg/ports/braft/portfile.cmake new file mode 100644 index 0000000..8811e4f --- /dev/null +++ b/vcpkg/ports/braft/portfile.cmake @@ -0,0 +1,37 @@ +vcpkg_download_distfile(
+ GCC_11_PATCH
+ URLS https://github.com/baidu/braft/commit/361ef01185b88baf90b7926f992c8e71fc4aefc2.patch?full_index=1
+ SHA512 245470404885cc8a903893fbcde201b892d0b160d7c1f09758f20c83a0d8f476f4512ee8091aa7a1d3798c8315eb0dae8e9a8da7af8425df62ab6f837b025392
+ FILENAME 361ef01185b88baf90b7926f992c8e71fc4aefc2.patch
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO baidu/braft
+ REF 8d0128e02a2959f9cc427d5f97ed730ee6a6b410
+ SHA512 f28afbf5fe8a354872c252580e2d679f7a66944a554f0c8e9331b8a68b6a87659d59fbbc41c3ada55e09a265032290bcef567c99a7428604d08f7885f97cf6d7
+ HEAD_REF master
+ PATCHES
+ fix-build.patch
+ fix-dependency.patch
+ export-target.patch
+ "${GCC_11_PATCH}"
+ fix-glog.patch
+ protobuf.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBRPC_WITH_GLOG=ON
+ -DBUILD_TOOLS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-braft CONFIG_PATH share/unofficial-braft)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/braft/protobuf.patch b/vcpkg/ports/braft/protobuf.patch new file mode 100644 index 0000000..7ba2bed --- /dev/null +++ b/vcpkg/ports/braft/protobuf.patch @@ -0,0 +1,23 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 28c1026..65af3ae 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -22,7 +22,7 @@ endif() + set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) + + include(FindThreads) +-include(FindProtobuf) ++find_package(Protobuf CONFIG REQUIRED) + + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # require at least gcc 4.8 +@@ -69,7 +69,8 @@ if ((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) + message(FATAL_ERROR "Fail to find brpc") + endif() + +-if (NOT PROTOBUF_PROTOC_EXECUTABLE) ++set(PROTOBUF_LIBRARY protobuf::libprotobuf) ++if (0) + get_filename_component(PROTO_LIB_DIR ${PROTOBUF_LIBRARY} DIRECTORY) + set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") + endif() diff --git a/vcpkg/ports/braft/vcpkg.json b/vcpkg/ports/braft/vcpkg.json new file mode 100644 index 0000000..2083b4d --- /dev/null +++ b/vcpkg/ports/braft/vcpkg.json @@ -0,0 +1,25 @@ +{ + "name": "braft", + "version-date": "2021-26-04", + "port-version": 5, + "description": "Consensus algorithm library", + "homepage": "https://github.com/baidu/braft", + "license": "Apache-2.0", + "supports": "!windows", + "dependencies": [ + "brpc", + "gflags", + "glog", + "leveldb", + "protobuf", + "thrift", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |