-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: import braft --------- Co-authored-by: century <[email protected]> Co-authored-by: alexstocks <[email protected]> Co-authored-by: dingxiaoshuai123 <[email protected]>
- Loading branch information
1 parent
1e7f205
commit 973b426
Showing
34 changed files
with
576 additions
and
133 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
# Copyright (c) 2023-present, Qihoo, Inc. All rights reserved. | ||
# This source code is licensed under the BSD-style license found in the | ||
# LICENSE file in the root directory of this source tree. An additional grant | ||
# of patent rights can be found in the PATENTS file in the same directory. | ||
|
||
INCLUDE(ExternalProject) | ||
|
||
SET(BRAFT_SOURCES_DIR ${THIRD_PARTY_PATH}/braft) | ||
SET(BRAFT_INSTALL_DIR ${THIRD_PARTY_PATH}/install/braft) | ||
SET(BRAFT_INCLUDE_DIR "${BRAFT_INSTALL_DIR}/include" CACHE PATH "braft include directory." FORCE) | ||
SET(BRAFT_LIBRARIES "${BRAFT_INSTALL_DIR}/lib/libbraft.a" CACHE FILEPATH "braft library." FORCE) | ||
|
||
SET(prefix_path "${THIRD_PARTY_PATH}/install/brpc|${CMAKE_CURRENT_BINARY_DIR}/_deps/gflags-build|${THIRD_PARTY_PATH}/install/protobuf|${THIRD_PARTY_PATH}/install/zlib|${CMAKE_CURRENT_BINARY_DIR}/_deps/leveldb-build|${CMAKE_CURRENT_BINARY_DIR}/_deps/leveldb-src") | ||
|
||
ExternalProject_Add( | ||
extern_braft | ||
${EXTERNAL_PROJECT_LOG_ARGS} | ||
DEPENDS brpc | ||
GIT_REPOSITORY https://github.com/baidu/braft.git | ||
GIT_TAG master | ||
PREFIX ${BRAFT_SOURCES_DIR} | ||
UPDATE_COMMAND "" | ||
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | ||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | ||
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} | ||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | ||
-DCMAKE_INSTALL_PREFIX=${BRAFT_INSTALL_DIR} | ||
-DCMAKE_INSTALL_LIBDIR=${BRAFT_INSTALL_DIR}/lib | ||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON | ||
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE} | ||
-DCMAKE_PREFIX_PATH=${prefix_path} | ||
-DBRPC_WITH_GLOG=OFF | ||
-DWITH_DEBUG_SYMBOLS=OFF | ||
${EXTERNAL_OPTIONAL_ARGS} | ||
LIST_SEPARATOR | | ||
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${BRAFT_INSTALL_DIR} | ||
-DCMAKE_INSTALL_LIBDIR:PATH=${BRAFT_INSTALL_DIR}/lib | ||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON | ||
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE} | ||
BUILD_IN_SOURCE 1 | ||
BUILD_COMMAND $(MAKE) -j ${CPU_CORE} braft-static | ||
INSTALL_COMMAND mkdir -p ${BRAFT_INSTALL_DIR}/lib/ COMMAND cp ${BRAFT_SOURCES_DIR}/src/extern_braft/output/lib/libbraft.a ${BRAFT_LIBRARIES} COMMAND cp -r ${BRAFT_SOURCES_DIR}/src/extern_braft/output/include ${BRAFT_INCLUDE_DIR}/ | ||
) | ||
ADD_DEPENDENCIES(extern_braft brpc) | ||
ADD_LIBRARY(braft STATIC IMPORTED GLOBAL) | ||
SET_PROPERTY(TARGET braft PROPERTY IMPORTED_LOCATION ${BRAFT_LIBRARIES}) | ||
ADD_DEPENDENCIES(braft extern_braft) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Copyright (c) 2023-present, Qihoo, Inc. All rights reserved. | ||
# This source code is licensed under the BSD-style license found in the | ||
# LICENSE file in the root directory of this source tree. An additional grant | ||
# of patent rights can be found in the PATENTS file in the same directory. | ||
|
||
INCLUDE(ExternalProject) | ||
|
||
SET(BRPC_SOURCES_DIR ${THIRD_PARTY_PATH}/brpc) | ||
SET(BRPC_INSTALL_DIR ${THIRD_PARTY_PATH}/install/brpc) | ||
SET(BRPC_INCLUDE_DIR "${BRPC_INSTALL_DIR}/include" CACHE PATH "brpc include directory." FORCE) | ||
SET(BRPC_LIBRARIES "${BRPC_INSTALL_DIR}/lib/libbrpc.a" CACHE FILEPATH "brpc library." FORCE) | ||
|
||
# Reference https://stackoverflow.com/questions/45414507/pass-a-list-of-prefix-paths-to-externalproject-add-in-cmake-args | ||
SET(prefix_path "${CMAKE_CURRENT_BINARY_DIR}/_deps/gflags-build|${THIRD_PARTY_PATH}/install/protobuf|${THIRD_PARTY_PATH}/install/zlib|${CMAKE_CURRENT_BINARY_DIR}/_deps/leveldb-build|${CMAKE_CURRENT_BINARY_DIR}/_deps/leveldb-src") | ||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") | ||
# If minimal .a is need, you can set WITH_DEBUG_SYMBOLS=OFF | ||
EXTERNALPROJECT_ADD( | ||
extern_brpc | ||
${EXTERNAL_PROJECT_LOG_ARGS} | ||
DEPENDS ssl crypto zlib protobuf leveldb gflags | ||
URL "https://github.com/apache/brpc/archive/1.3.0.tar.gz" | ||
URL_HASH SHA256=b9d638b76725552ed11178c650d7fc95e30f252db7972a93dc309a0698c7d2b8 | ||
PREFIX ${BRPC_SOURCES_DIR} | ||
UPDATE_COMMAND "" | ||
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | ||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | ||
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} | ||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} | ||
-DCMAKE_INSTALL_PREFIX=${BRPC_INSTALL_DIR} | ||
-DCMAKE_INSTALL_LIBDIR=${BRPC_INSTALL_DIR}/lib | ||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON | ||
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE} | ||
-DCMAKE_PREFIX_PATH=${prefix_path} | ||
-DWITH_GLOG=OFF | ||
-DDOWNLOAD_GTEST=OFF | ||
${EXTERNAL_OPTIONAL_ARGS} | ||
LIST_SEPARATOR | | ||
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${BRPC_INSTALL_DIR} | ||
-DCMAKE_INSTALL_LIBDIR:PATH=${BRPC_INSTALL_DIR}/lib | ||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON | ||
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE} | ||
BUILD_IN_SOURCE 1 | ||
BUILD_COMMAND $(MAKE) -j ${CPU_CORE} brpc-static | ||
INSTALL_COMMAND mkdir -p ${BRPC_INSTALL_DIR}/lib/ COMMAND cp ${BRPC_SOURCES_DIR}/src/extern_brpc/output/lib/libbrpc.a ${BRPC_LIBRARIES} COMMAND cp -r ${BRPC_SOURCES_DIR}/src/extern_brpc/output/include ${BRPC_INCLUDE_DIR}/ | ||
) | ||
ADD_DEPENDENCIES(extern_brpc ssl crypto zlib protobuf leveldb gflags) | ||
ADD_LIBRARY(brpc STATIC IMPORTED GLOBAL) | ||
SET_PROPERTY(TARGET brpc PROPERTY IMPORTED_LOCATION ${BRPC_LIBRARIES}) | ||
ADD_DEPENDENCIES(brpc extern_brpc) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,64 @@ | ||
# Copyright (c) 2023-present, Qihoo, Inc. All rights reserved. | ||
# This source code is licensed under the BSD-style license found in the | ||
# LICENSE file in the root directory of this source tree. An additional grant | ||
# of patent rights can be found in the PATENTS file in the same directory. | ||
|
||
FIND_PROGRAM(AUTOCONF autoconf PATHS /usr/bin /usr/local/bin) | ||
|
||
IF(${AUTOCONF} MATCHES AUTOCONF-NOTFOUND) | ||
IF (${AUTOCONF} MATCHES AUTOCONF-NOTFOUND) | ||
MESSAGE(FATAL_ERROR "not find autoconf on localhost") | ||
ENDIF() | ||
ENDIF () | ||
|
||
#set(CLANG_SEARCH_PATH "/usr/local/bin" "/usr/bin" "/usr/local/opt/llvm/bin" | ||
# "/usr/local/opt/llvm@12/bin") | ||
FIND_PROGRAM(CLANG_FORMAT_BIN | ||
NAMES clang-format | ||
HINTS ${CLANG_SEARCH_PATH}) | ||
IF("${CLANG_FORMAT_BIN}" STREQUAL "CLANG_FORMAT_BIN-NOTFOUND") | ||
IF ("${CLANG_FORMAT_BIN}" STREQUAL "CLANG_FORMAT_BIN-NOTFOUND") | ||
MESSAGE(WARNING "couldn't find clang-format.") | ||
ELSE() | ||
ELSE () | ||
MESSAGE(STATUS "found clang-format at ${CLANG_FORMAT_BIN}") | ||
ENDIF() | ||
ENDIF () | ||
|
||
FIND_PROGRAM(CLANG_TIDY_BIN | ||
NAMES clang-tidy clang-tidy-12 | ||
HINTS ${CLANG_SEARCH_PATH}) | ||
IF("${CLANG_TIDY_BIN}" STREQUAL "CLANG_TIDY_BIN-NOTFOUND") | ||
IF ("${CLANG_TIDY_BIN}" STREQUAL "CLANG_TIDY_BIN-NOTFOUND") | ||
MESSAGE(WARNING "couldn't find clang-tidy.") | ||
ELSE() | ||
ELSE () | ||
MESSAGE(STATUS "found clang-tidy at ${CLANG_TIDY_BIN}") | ||
ENDIF() | ||
ENDIF () | ||
|
||
FIND_PROGRAM(CPPLINT_BIN | ||
NAMES cpplint cpplint.py | ||
HINTS "${BUILD_SUPPORT_DIR}") | ||
IF("${CPPLINT_BIN}" STREQUAL "CPPLINT_BIN-NOTFOUND") | ||
IF ("${CPPLINT_BIN}" STREQUAL "CPPLINT_BIN-NOTFOUND") | ||
MESSAGE(WARNING "couldn't find cpplint.py") | ||
ELSE() | ||
ELSE () | ||
MESSAGE(STATUS "found cpplint at ${CPPLINT_BIN}") | ||
ENDIF() | ||
ENDIF () | ||
|
||
FIND_PROGRAM(CLANG_APPLY_REPLACEMENTS_BIN | ||
NAMES clang-apply-replacements clang-apply-replacements-12 | ||
HINTS ${CLANG_SEARCH_PATH}) | ||
|
||
IF("${CLANG_APPLY_REPLACEMENTS_BIN}" STREQUAL "CLANG_APPLY_REPLACEMENTS_BIN-NOTFOUND") | ||
IF ("${CLANG_APPLY_REPLACEMENTS_BIN}" STREQUAL "CLANG_APPLY_REPLACEMENTS_BIN-NOTFOUND") | ||
MESSAGE(WARNING "couldn't find clang-apply-replacements.") | ||
ELSE() | ||
ELSE () | ||
MESSAGE(STATUS "found clang-apply-replacements at ${CLANG_APPLY_REPLACEMENTS_BIN}") | ||
ENDIF() | ||
ENDIF () | ||
|
||
OPTION(WITH_COMMAND_DOCS "build with command docs support" OFF) | ||
IF(WITH_COMMAND_DOCS) | ||
IF (WITH_COMMAND_DOCS) | ||
ADD_DEFINITIONS(-DWITH_COMMAND_DOCS) | ||
ENDIF() | ||
ENDIF () | ||
|
||
IF(${CMAKE_BUILD_TYPE} MATCHES "RELEASE") | ||
IF (${CMAKE_BUILD_TYPE} MATCHES "RELEASE") | ||
MESSAGE(STATUS "make RELEASE version") | ||
ADD_DEFINITIONS(-DBUILD_RELEASE) | ||
SET(BuildType "Release") | ||
ELSE() | ||
ELSE () | ||
MESSAGE(STATUS "make DEBUG version") | ||
ADD_DEFINITIONS(-DBUILD_DEBUG) | ||
SET(BuildType "Debug") | ||
ENDIF() | ||
ENDIF () |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.