This is an automated email from the ASF dual-hosted git repository.
wwbmmm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git
The following commit(s) were added to refs/heads/master by this push:
new f094566f build(example): extract shared CMake dependency helper for
examples (#3391)
f094566f is described below
commit f094566f54359ed4a3a1fffa61927356e5888863
Author: darion-yaphet <[email protected]>
AuthorDate: Tue Jul 21 09:26:06 2026 +0800
build(example): extract shared CMake dependency helper for examples (#3391)
Example CMakeLists duplicated the same dependency discovery and link
setup. Move that into brpc_example_find_common_deps in
BrpcExample.cmake, migrate MySQL and other examples to use it, and
implement the helper as a macro so CMAKE_PREFIX_PATH, include paths,
and DYNAMIC_LIB propagate to the caller scope.
Example-specific deps stay local (e.g. readline/ncurses/thriftnb for
MySQL, gperftools for redis/http). LINK_SO behavior is unchanged.
---
example/asynchronous_echo_c++/CMakeLists.txt | 77 +----------
example/auto_concurrency_limiter/CMakeLists.txt | 71 +---------
example/backup_request_c++/CMakeLists.txt | 77 +----------
.../baidu_proxy_and_generic_call/CMakeLists.txt | 69 +---------
example/bthread_tag_echo_c++/CMakeLists.txt | 79 +-----------
example/cancel_c++/CMakeLists.txt | 77 +----------
example/cascade_echo_c++/CMakeLists.txt | 76 +----------
example/cmake/BrpcExample.cmake | 82 ++++++++++++
example/dynamic_partition_echo_c++/CMakeLists.txt | 79 +-----------
example/echo_c++/CMakeLists.txt | 77 +----------
example/grpc_c++/CMakeLists.txt | 73 +----------
example/http_c++/CMakeLists.txt | 79 +-----------
example/memcache_c++/CMakeLists.txt | 77 +----------
example/multi_threaded_echo_c++/CMakeLists.txt | 79 +-----------
example/multi_threaded_echo_fns_c++/CMakeLists.txt | 79 +-----------
example/mysql_c++/CMakeLists.txt | 143 +++------------------
example/mysql_c++/mysql_cli.cpp | 2 +-
example/mysql_c++/mysql_press.cpp | 2 +-
example/mysql_c++/mysql_stmt.cpp | 2 +-
example/mysql_c++/mysql_tx.cpp | 2 +-
example/mysql_c++/mysqlclient_press.cpp | 2 +-
example/nshead_extension_c++/CMakeLists.txt | 77 +----------
example/nshead_pb_extension_c++/CMakeLists.txt | 77 +----------
example/parallel_echo_c++/CMakeLists.txt | 79 +-----------
example/partition_echo_c++/CMakeLists.txt | 79 +-----------
example/rdma_performance/CMakeLists.txt | 80 +-----------
example/redis_c++/CMakeLists.txt | 80 +-----------
example/rpcz_echo_c++/CMakeLists.txt | 77 +----------
example/selective_echo_c++/CMakeLists.txt | 79 +-----------
.../session_data_and_thread_local/CMakeLists.txt | 79 +-----------
example/streaming_batch_echo_c++/CMakeLists.txt | 74 +----------
example/streaming_echo_c++/CMakeLists.txt | 77 +----------
32 files changed, 132 insertions(+), 2030 deletions(-)
diff --git a/example/asynchronous_echo_c++/CMakeLists.txt
b/example/asynchronous_echo_c++/CMakeLists.txt
index e2d8f1e9..a573e246 100644
--- a/example/asynchronous_echo_c++/CMakeLists.txt
+++ b/example/asynchronous_echo_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(asynchronous_echo_client client.cpp ${PROTO_SRC})
brpc_example_configure_target(asynchronous_echo_client)
add_executable(asynchronous_echo_server server.cpp ${PROTO_SRC})
diff --git a/example/auto_concurrency_limiter/CMakeLists.txt
b/example/auto_concurrency_limiter/CMakeLists.txt
index 45636126..46ce0c43 100644
--- a/example/auto_concurrency_limiter/CMakeLists.txt
+++ b/example/auto_concurrency_limiter/CMakeLists.txt
@@ -22,79 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${CMAKE_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER cl_test.proto)
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_RegisterThriftProtocol"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(asynchronous_echo_client client.cpp ${PROTO_SRC})
brpc_example_configure_target(asynchronous_echo_client)
add_executable(asynchronous_echo_server server.cpp ${PROTO_SRC})
diff --git a/example/backup_request_c++/CMakeLists.txt
b/example/backup_request_c++/CMakeLists.txt
index 5de9b583..3a4fb2c5 100644
--- a/example/backup_request_c++/CMakeLists.txt
+++ b/example/backup_request_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(backup_request_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(backup_request_client)
add_executable(backup_request_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/baidu_proxy_and_generic_call/CMakeLists.txt
b/example/baidu_proxy_and_generic_call/CMakeLists.txt
index bd3da92e..b449d562 100644
--- a/example/baidu_proxy_and_generic_call/CMakeLists.txt
+++ b/example/baidu_proxy_and_generic_call/CMakeLists.txt
@@ -22,77 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(echo_client)
add_executable(proxy proxy.cpp)
diff --git a/example/bthread_tag_echo_c++/CMakeLists.txt
b/example/bthread_tag_echo_c++/CMakeLists.txt
index 7543a6a6..0d0908b6 100644
--- a/example/bthread_tag_echo_c++/CMakeLists.txt
+++ b/example/bthread_tag_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(echo_client)
add_executable(echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/cancel_c++/CMakeLists.txt
b/example/cancel_c++/CMakeLists.txt
index 3dc198f0..a93f1918 100644
--- a/example/cancel_c++/CMakeLists.txt
+++ b/example/cancel_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(cancel_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(cancel_client)
add_executable(cancel_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/cascade_echo_c++/CMakeLists.txt
b/example/cascade_echo_c++/CMakeLists.txt
index 4e9a0d60..1adc0a44 100644
--- a/example/cascade_echo_c++/CMakeLists.txt
+++ b/example/cascade_echo_c++/CMakeLists.txt
@@ -22,84 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(cascade_echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(cascade_echo_client)
add_executable(cascade_echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/cmake/BrpcExample.cmake b/example/cmake/BrpcExample.cmake
index a0af0ed5..7afb3bd3 100644
--- a/example/cmake/BrpcExample.cmake
+++ b/example/cmake/BrpcExample.cmake
@@ -27,6 +27,88 @@ function(brpc_example_append_existing_dirs out_var)
set(${out_var} ${_dirs} PARENT_SCOPE)
endfunction()
+macro(brpc_example_find_common_deps out_libs)
+ execute_process(
+ COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
+ OUTPUT_VARIABLE OUTPUT_PATH
+ )
+
+ if(OUTPUT_PATH)
+ list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
+ endif()
+
+ find_package(Threads REQUIRED)
+ find_package(Protobuf REQUIRED)
+
+ # Search for libthrift* by best effort. If it is not found and brpc is
+ # compiled with thrift protocol enabled, a link error would be reported.
+ find_library(THRIFT_LIB NAMES thrift)
+ if(NOT THRIFT_LIB)
+ set(THRIFT_LIB "")
+ endif()
+
+ find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
+ if(LINK_SO)
+ find_library(BRPC_LIB NAMES brpc)
+ else()
+ find_library(BRPC_LIB NAMES libbrpc.a brpc)
+ endif()
+ if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
+ message(FATAL_ERROR "Fail to find brpc")
+ endif()
+
+ find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
+ find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
+ if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
+ message(FATAL_ERROR "Fail to find gflags")
+ endif()
+
+ find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
+ find_library(LEVELDB_LIB NAMES leveldb)
+ if((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
+ message(FATAL_ERROR "Fail to find leveldb")
+ endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
+ set(OPENSSL_ROOT_DIR
+ "/usr/local/opt/openssl" # Homebrew installed OpenSSL
+ )
+ endif()
+
+ find_package(OpenSSL REQUIRED)
+
+ set(_common_libs
+ Threads::Threads
+ ${GFLAGS_LIBRARY}
+ ${PROTOBUF_LIBRARIES}
+ ${LEVELDB_LIB}
+ ${OPENSSL_CRYPTO_LIBRARY}
+ ${OPENSSL_SSL_LIBRARY}
+ ${THRIFT_LIB}
+ dl
+ )
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(_common_libs ${_common_libs}
+ pthread
+ "-framework CoreFoundation"
+ "-framework CoreGraphics"
+ "-framework CoreData"
+ "-framework CoreText"
+ "-framework Security"
+ "-framework Foundation"
+ "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
+ "-Wl,-U,_ProfilerStart"
+ "-Wl,-U,_ProfilerStop"
+ "-Wl,-U,__Z13GetStackTracePPvii"
+ "-Wl,-U,_mallctl"
+ "-Wl,-U,_malloc_stats_print"
+ )
+ endif()
+
+ set(${out_libs} ${_common_libs})
+endmacro()
+
function(brpc_example_configure_target target_name)
brpc_example_append_existing_dirs(_include_dirs
${CMAKE_CURRENT_BINARY_DIR}
diff --git a/example/dynamic_partition_echo_c++/CMakeLists.txt
b/example/dynamic_partition_echo_c++/CMakeLists.txt
index df370a83..1fbc6d9f 100644
--- a/example/dynamic_partition_echo_c++/CMakeLists.txt
+++ b/example/dynamic_partition_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(dynamic_partition_echo_client client.cpp ${PROTO_SRC}
${PROTO_HEADER})
brpc_example_configure_target(dynamic_partition_echo_client)
add_executable(dynamic_partition_echo_server server.cpp ${PROTO_SRC}
${PROTO_HEADER})
diff --git a/example/echo_c++/CMakeLists.txt b/example/echo_c++/CMakeLists.txt
index 5250959b..2b5599d9 100644
--- a/example/echo_c++/CMakeLists.txt
+++ b/example/echo_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(echo_client)
add_executable(echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/grpc_c++/CMakeLists.txt b/example/grpc_c++/CMakeLists.txt
index 9d3340db..d36ade36 100644
--- a/example/grpc_c++/CMakeLists.txt
+++ b/example/grpc_c++/CMakeLists.txt
@@ -22,84 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER helloworld.proto)
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_RegisterThriftProtocol"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(server server.cpp ${PROTO_SRC} ${PROTO_HEADER} )
brpc_example_configure_target(server)
add_executable(client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/http_c++/CMakeLists.txt b/example/http_c++/CMakeLists.txt
index ee20fe6e..c29bbb7e 100644
--- a/example/http_c++/CMakeLists.txt
+++ b/example/http_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER http.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(http_client http_client.cpp)
brpc_example_configure_target(http_client)
add_executable(http_server http_server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/memcache_c++/CMakeLists.txt
b/example/memcache_c++/CMakeLists.txt
index 658e6028..c7ceb335 100644
--- a/example/memcache_c++/CMakeLists.txt
+++ b/example/memcache_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(memcache_client client.cpp)
brpc_example_configure_target(memcache_client)
diff --git a/example/multi_threaded_echo_c++/CMakeLists.txt
b/example/multi_threaded_echo_c++/CMakeLists.txt
index 1c17fa9c..7eaf4dfd 100644
--- a/example/multi_threaded_echo_c++/CMakeLists.txt
+++ b/example/multi_threaded_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(echo_client)
add_executable(echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/multi_threaded_echo_fns_c++/CMakeLists.txt
b/example/multi_threaded_echo_fns_c++/CMakeLists.txt
index e184148f..fea2ffe2 100644
--- a/example/multi_threaded_echo_fns_c++/CMakeLists.txt
+++ b/example/multi_threaded_echo_fns_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(multi_threaded_echo_fns_client client.cpp ${PROTO_SRC}
${PROTO_HEADER})
brpc_example_configure_target(multi_threaded_echo_fns_client)
add_executable(multi_threaded_echo_fns_server server.cpp ${PROTO_SRC}
${PROTO_HEADER})
diff --git a/example/mysql_c++/CMakeLists.txt b/example/mysql_c++/CMakeLists.txt
index 1e0b9531..9b77013a 100644
--- a/example/mysql_c++/CMakeLists.txt
+++ b/example/mysql_c++/CMakeLists.txt
@@ -1,148 +1,41 @@
-cmake_minimum_required(VERSION 2.8.10)
+cmake_minimum_required(VERSION 3.16...3.28)
project(mysql_c++ C CXX)
+include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
+
# Install dependencies:
# With apt:
-# sudo apt-get install libreadline-dev
+# sudo apt-get install libreadline-dev
# sudo apt-get install ncurses-dev
# With yum:
# sudo yum install readline-devel
# sudo yum install ncurses-devel
-option(EXAMPLE_LINK_SO "Whether examples are linked dynamically" OFF)
-
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+option(LINK_SO "Whether examples are linked dynamically" OFF)
-set(CMAKE_PREFIX_PATH ${OUTPUT_PATH})
+brpc_example_find_common_deps(DYNAMIC_LIB)
-include(FindThreads)
-include(FindProtobuf)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
find_library(THRIFTNB_LIB NAMES thriftnb)
-if (NOT THRIFTNB_LIB)
+if(NOT THRIFTNB_LIB)
set(THRIFTNB_LIB "")
endif()
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(EXAMPLE_LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-include_directories(${BRPC_INCLUDE_PATH})
+list(APPEND DYNAMIC_LIB ${THRIFTNB_LIB})
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-include_directories(${GFLAGS_INCLUDE_PATH})
-
-execute_process(
- COMMAND bash -c "grep \"namespace [_A-Za-z0-9]\\+ {\"
${GFLAGS_INCLUDE_PATH}/gflags/gflags_declare.h | head -1 | awk '{print $2}' |
tr -d '\n'"
- OUTPUT_VARIABLE GFLAGS_NS
-)
-if(${GFLAGS_NS} STREQUAL "GFLAGS_NAMESPACE")
- execute_process(
- COMMAND bash -c "grep \"#define GFLAGS_NAMESPACE [_A-Za-z0-9]\\+\"
${GFLAGS_INCLUDE_PATH}/gflags/gflags_declare.h | head -1 | awk '{print $3}' |
tr -d '\n'"
- OUTPUT_VARIABLE GFLAGS_NS
- )
-endif()
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- include(CheckFunctionExists)
- CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
- if(NOT HAVE_CLOCK_GETTIME)
- set(DEFINE_CLOCK_GETTIME "-DNO_CLOCK_GETTIME_IN_MAC")
- endif()
-endif()
-
-set(CMAKE_CPP_FLAGS "${DEFINE_CLOCK_GETTIME} -DGFLAGS_NS=${GFLAGS_NS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__= -pipe -W
-Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer")
-
-if(CMAKE_VERSION VERSION_LESS "3.1.3")
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- endif()
- if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- endif()
-else()
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-include_directories(${LEVELDB_INCLUDE_PATH})
-
-find_library(SSL_LIB NAMES ssl)
-if (NOT SSL_LIB)
- message(FATAL_ERROR "Fail to find ssl")
-endif()
-
-find_library(CRYPTO_LIB NAMES crypto)
-if (NOT CRYPTO_LIB)
- message(FATAL_ERROR "Fail to find crypto")
-endif()
-
-# find_path(MYSQL_INCLUDE_PATH NAMES mysql/mysql.h)
-# find_library(MYSQL_LIB NAMES mysqlclient)
-# if (NOT MYSQL_LIB)
-# message(FATAL_ERROR "Fail to find mysqlclient")
-# endif()
-# include_directories(${MYSQL_INCLUDE_PATH})
-
-set(DYNAMIC_LIB
- ${CMAKE_THREAD_LIBS_INIT}
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${SSL_LIB}
- ${CRYPTO_LIB}
- ${THRIFT_LIB}
- ${THRIFTNB_LIB}
-# ${MYSQL_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop")
-endif()
+set(AUX_LIB readline ncurses)
add_executable(mysql_cli mysql_cli.cpp)
+brpc_example_configure_target(mysql_cli)
add_executable(mysql_tx mysql_tx.cpp)
+brpc_example_configure_target(mysql_tx)
add_executable(mysql_stmt mysql_stmt.cpp)
+brpc_example_configure_target(mysql_stmt)
add_executable(mysql_press mysql_press.cpp)
+brpc_example_configure_target(mysql_press)
# add_executable(mysqlclient_press mysqlclient_press.cpp)
-set(AUX_LIB readline ncurses)
-target_link_libraries(mysql_cli ${BRPC_LIB} ${DYNAMIC_LIB} ${AUX_LIB})
-target_link_libraries(mysql_tx ${BRPC_LIB} ${DYNAMIC_LIB})
-target_link_libraries(mysql_stmt ${BRPC_LIB} ${DYNAMIC_LIB})
-target_link_libraries(mysql_press ${BRPC_LIB} ${DYNAMIC_LIB})
-# target_link_libraries(mysqlclient_press ${BRPC_LIB} ${DYNAMIC_LIB})
+target_link_libraries(mysql_cli PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB} ${AUX_LIB})
+target_link_libraries(mysql_tx PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB})
+target_link_libraries(mysql_stmt PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB})
+target_link_libraries(mysql_press PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB})
+# target_link_libraries(mysqlclient_press PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB})
diff --git a/example/mysql_c++/mysql_cli.cpp b/example/mysql_c++/mysql_cli.cpp
index 85f57d6c..e1de452c 100644
--- a/example/mysql_c++/mysql_cli.cpp
+++ b/example/mysql_c++/mysql_cli.cpp
@@ -87,7 +87,7 @@ static int cli_getc(FILE* stream) {
int main(int argc, char* argv[]) {
// Parse gflags. We recommend you to use gflags as well.
- GFLAGS_NS::ParseCommandLineFlags(&argc, &argv, true);
+ GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
// A Channel represents a communication line to a Server. Notice that
// Channel is thread-safe and can be shared by all threads in your program.
diff --git a/example/mysql_c++/mysql_press.cpp
b/example/mysql_c++/mysql_press.cpp
index d1cc0601..62dbd736 100644
--- a/example/mysql_c++/mysql_press.cpp
+++ b/example/mysql_c++/mysql_press.cpp
@@ -114,7 +114,7 @@ static void* sender(void* void_args) {
int main(int argc, char* argv[]) {
// Parse gflags. We recommend you to use gflags as well.
- GFLAGS_NS::ParseCommandLineFlags(&argc, &argv, true);
+ GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
// A Channel represents a communication line to a Server. Notice that
// Channel is thread-safe and can be shared by all threads in your program.
diff --git a/example/mysql_c++/mysql_stmt.cpp b/example/mysql_c++/mysql_stmt.cpp
index 274e6baa..d1289c1f 100644
--- a/example/mysql_c++/mysql_stmt.cpp
+++ b/example/mysql_c++/mysql_stmt.cpp
@@ -145,7 +145,7 @@ static void* access_mysql(void* void_args) {
int main(int argc, char* argv[]) {
// Parse gflags. We recommend you to use gflags as well.
- GFLAGS_NS::ParseCommandLineFlags(&argc, &argv, true);
+ GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
// A Channel represents a communication line to a Server. Notice that
// Channel is thread-safe and can be shared by all threads in your program.
diff --git a/example/mysql_c++/mysql_tx.cpp b/example/mysql_c++/mysql_tx.cpp
index 53b3a7df..c1d74dc2 100644
--- a/example/mysql_c++/mysql_tx.cpp
+++ b/example/mysql_c++/mysql_tx.cpp
@@ -83,7 +83,7 @@ static bool access_mysql(brpc::Channel& channel, const
std::vector<std::string>&
int main(int argc, char* argv[]) {
// Parse gflags. We recommend you to use gflags as well.
- GFLAGS_NS::ParseCommandLineFlags(&argc, &argv, true);
+ GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
// A Channel represents a communication line to a Server. Notice that
// Channel is thread-safe and can be shared by all threads in your program.
diff --git a/example/mysql_c++/mysqlclient_press.cpp
b/example/mysql_c++/mysqlclient_press.cpp
index 7ed198f0..a0aa45ef 100644
--- a/example/mysql_c++/mysqlclient_press.cpp
+++ b/example/mysql_c++/mysqlclient_press.cpp
@@ -120,7 +120,7 @@ static void* sender(void* void_args) {
int main(int argc, char* argv[]) {
// Parse gflags. We recommend you to use gflags as well.
- GFLAGS_NS::ParseCommandLineFlags(&argc, &argv, true);
+ GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
if (FLAGS_dummy_port >= 0) {
brpc::StartDummyServerAt(FLAGS_dummy_port);
diff --git a/example/nshead_extension_c++/CMakeLists.txt
b/example/nshead_extension_c++/CMakeLists.txt
index 780e909e..7b040d64 100644
--- a/example/nshead_extension_c++/CMakeLists.txt
+++ b/example/nshead_extension_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(nshead_extension_client client.cpp)
brpc_example_configure_target(nshead_extension_client)
add_executable(nshead_extension_server server.cpp)
diff --git a/example/nshead_pb_extension_c++/CMakeLists.txt
b/example/nshead_pb_extension_c++/CMakeLists.txt
index 203dfa7e..0746d0f9 100644
--- a/example/nshead_pb_extension_c++/CMakeLists.txt
+++ b/example/nshead_pb_extension_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(nshead_pb_extension_client client.cpp ${PROTO_SRC}
${PROTO_HEADER})
brpc_example_configure_target(nshead_pb_extension_client)
add_executable(nshead_pb_extension_server server.cpp ${PROTO_SRC}
${PROTO_HEADER})
diff --git a/example/parallel_echo_c++/CMakeLists.txt
b/example/parallel_echo_c++/CMakeLists.txt
index 9fe5e661..779ec7d7 100644
--- a/example/parallel_echo_c++/CMakeLists.txt
+++ b/example/parallel_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(parallel_echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(parallel_echo_client)
add_executable(parallel_echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/partition_echo_c++/CMakeLists.txt
b/example/partition_echo_c++/CMakeLists.txt
index 0501f5c8..8fcc620c 100644
--- a/example/partition_echo_c++/CMakeLists.txt
+++ b/example/partition_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(client)
add_executable(server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/rdma_performance/CMakeLists.txt
b/example/rdma_performance/CMakeLists.txt
index 02b20a5d..213cff0f 100644
--- a/example/rdma_performance/CMakeLists.txt
+++ b/example/rdma_performance/CMakeLists.txt
@@ -22,92 +22,16 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER test.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_WITH_RDMA ON)
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
find_path(RDMA_INCLUDE_PATH NAMES infiniband/verbs.h)
find_library(RDMA_LIB NAMES ibverbs)
if ((NOT RDMA_INCLUDE_PATH) OR (NOT RDMA_LIB))
message(FATAL_ERROR "Fail to find ibverbs")
endif()
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
+list(APPEND DYNAMIC_LIB ${RDMA_LIB})
add_executable(client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(client)
diff --git a/example/redis_c++/CMakeLists.txt b/example/redis_c++/CMakeLists.txt
index 93a9cce7..98717539 100644
--- a/example/redis_c++/CMakeLists.txt
+++ b/example/redis_c++/CMakeLists.txt
@@ -30,87 +30,11 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
-
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
+brpc_example_find_common_deps(DYNAMIC_LIB)
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- ${GPERFTOOLS_LIBRARIES}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
+list(APPEND DYNAMIC_LIB ${GPERFTOOLS_LIBRARIES})
add_executable(redis_cli redis_cli.cpp)
brpc_example_configure_target(redis_cli)
diff --git a/example/rpcz_echo_c++/CMakeLists.txt
b/example/rpcz_echo_c++/CMakeLists.txt
index 9ca90dc8..f52cf7d8 100644
--- a/example/rpcz_echo_c++/CMakeLists.txt
+++ b/example/rpcz_echo_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(rpcz_echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(rpcz_echo_client)
add_executable(rpcz_echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/selective_echo_c++/CMakeLists.txt
b/example/selective_echo_c++/CMakeLists.txt
index 22990028..3fef550f 100644
--- a/example/selective_echo_c++/CMakeLists.txt
+++ b/example/selective_echo_c++/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(selective_echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(selective_echo_client)
add_executable(selective_echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
diff --git a/example/session_data_and_thread_local/CMakeLists.txt
b/example/session_data_and_thread_local/CMakeLists.txt
index de2302ae..28451c91 100644
--- a/example/session_data_and_thread_local/CMakeLists.txt
+++ b/example/session_data_and_thread_local/CMakeLists.txt
@@ -22,90 +22,13 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h)
find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler)
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
set(BRPC_EXAMPLE_ENABLE_CPU_PROFILER ON)
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(session_data_and_thread_local_client client.cpp ${PROTO_SRC}
${PROTO_HEADER})
brpc_example_configure_target(session_data_and_thread_local_client)
add_executable(session_data_and_thread_local_server server.cpp ${PROTO_SRC}
${PROTO_HEADER})
diff --git a/example/streaming_batch_echo_c++/CMakeLists.txt
b/example/streaming_batch_echo_c++/CMakeLists.txt
index f0093356..b20a8c38 100644
--- a/example/streaming_batch_echo_c++/CMakeLists.txt
+++ b/example/streaming_batch_echo_c++/CMakeLists.txt
@@ -22,82 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
-)
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii")
-endif()
-
add_executable(streaming_batch_echo_client client.cpp ${PROTO_SRC}
${PROTO_HEADER})
brpc_example_configure_target(streaming_batch_echo_client)
add_executable(streaming_batch_echo_server server.cpp ${PROTO_SRC}
${PROTO_HEADER})
diff --git a/example/streaming_echo_c++/CMakeLists.txt
b/example/streaming_echo_c++/CMakeLists.txt
index 47f9373f..33db445d 100644
--- a/example/streaming_echo_c++/CMakeLists.txt
+++ b/example/streaming_echo_c++/CMakeLists.txt
@@ -22,85 +22,10 @@
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake)
option(LINK_SO "Whether examples are linked dynamically" OFF)
-execute_process(
- COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex
\".*output/include$\" | head -n1 | xargs dirname | tr -d '\n'"
- OUTPUT_VARIABLE OUTPUT_PATH
-)
+brpc_example_find_common_deps(DYNAMIC_LIB)
-if(OUTPUT_PATH)
- list(PREPEND CMAKE_PREFIX_PATH ${OUTPUT_PATH})
-endif()
-
-find_package(Threads REQUIRED)
-find_package(Protobuf REQUIRED)
protobuf_generate_cpp(PROTO_SRC PROTO_HEADER echo.proto)
-# Search for libthrift* by best effort. If it is not found and brpc is
-# compiled with thrift protocol enabled, a link error would be reported.
-find_library(THRIFT_LIB NAMES thrift)
-if (NOT THRIFT_LIB)
- set(THRIFT_LIB "")
-endif()
-
-find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h)
-if(LINK_SO)
- find_library(BRPC_LIB NAMES brpc)
-else()
- find_library(BRPC_LIB NAMES libbrpc.a brpc)
-endif()
-if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB))
- message(FATAL_ERROR "Fail to find brpc")
-endif()
-
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h)
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags)
-if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY))
- message(FATAL_ERROR "Fail to find gflags")
-endif()
-
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h)
-find_library(LEVELDB_LIB NAMES leveldb)
-if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB))
- message(FATAL_ERROR "Fail to find leveldb")
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR)
- set(OPENSSL_ROOT_DIR
- "/usr/local/opt/openssl" # Homebrew installed OpenSSL
- )
-endif()
-
-find_package(OpenSSL REQUIRED)
-
-set(DYNAMIC_LIB
- Threads::Threads
- ${GFLAGS_LIBRARY}
- ${PROTOBUF_LIBRARIES}
- ${LEVELDB_LIB}
- ${OPENSSL_CRYPTO_LIBRARY}
- ${OPENSSL_SSL_LIBRARY}
- ${THRIFT_LIB}
- dl
- )
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(DYNAMIC_LIB ${DYNAMIC_LIB}
- pthread
- "-framework CoreFoundation"
- "-framework CoreGraphics"
- "-framework CoreData"
- "-framework CoreText"
- "-framework Security"
- "-framework Foundation"
- "-Wl,-U,_MallocExtension_ReleaseFreeMemory"
- "-Wl,-U,_ProfilerStart"
- "-Wl,-U,_ProfilerStop"
- "-Wl,-U,__Z13GetStackTracePPvii"
- "-Wl,-U,_mallctl"
- "-Wl,-U,_malloc_stats_print"
- )
-endif()
-
add_executable(streaming_echo_client client.cpp ${PROTO_SRC} ${PROTO_HEADER})
brpc_example_configure_target(streaming_echo_client)
add_executable(streaming_echo_server server.cpp ${PROTO_SRC} ${PROTO_HEADER})
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]