aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/braft
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/braft
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/braft')
-rw-r--r--vcpkg/ports/braft/export-target.patch72
-rw-r--r--vcpkg/ports/braft/fix-build.patch56
-rw-r--r--vcpkg/ports/braft/fix-dependency.patch31
-rw-r--r--vcpkg/ports/braft/fix-glog.patch39
-rw-r--r--vcpkg/ports/braft/portfile.cmake37
-rw-r--r--vcpkg/ports/braft/protobuf.patch23
-rw-r--r--vcpkg/ports/braft/vcpkg.json25
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
+ }
+ ]
+}