From 583aa77b80a31e53ed9df1b8140d00a2870ff035 Mon Sep 17 00:00:00 2001 From: ehds Date: Tue, 30 Apr 2024 21:58:45 +0800 Subject: [PATCH] build: refactor example cmake --- .github/workflows/build.yml | 2 +- CMakeLists.txt | 27 +++++-- example/atomic/CMakeLists.txt | 143 +-------------------------------- example/block/CMakeLists.txt | 131 +----------------------------- example/counter/CMakeLists.txt | 130 +----------------------------- test/CMakeLists.txt | 9 --- tools/CMakeLists.txt | 18 +---- 7 files changed, 32 insertions(+), 428 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bfdc737..77927a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,7 +66,7 @@ jobs: - name: Build with cmake if: ${{ matrix.build_tool == 'cmake' }} run: | - cmake -S "${{ github.workspace }}" -B "${{ env.CMAKE_BUILD_DIR }}" -DWITH_TESTS=ON -DWITH_COVERAGE=ON + cmake -S "${{ github.workspace }}" -B "${{ env.CMAKE_BUILD_DIR }}" -DWITH_TESTS=ON -DWITH_COVERAGE=ON -DWITH_EXAMPLES=ON cmake --build bld --parallel 16 -- brpc-static cmake --build "${{ env.CMAKE_BUILD_DIR }}" --parallel 16 diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a16b35..16ab8b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,9 +12,17 @@ option(WITH_DEBUG_SYMBOLS "With debug symbols" ON) # https://cmake.org/cmake/help/latest/policy/CMP0058.html # suppress this CMP0058 warning cmake_policy(SET CMP0058 OLD) + +option(WITH_EXAMPLES "Whether to build examples" OFF) option(WITH_TESTS "Whether to build unit tests" OFF) option(WITH_COVERAGE "Whether build with coverage report" OFF) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) + +include(FindThreads) +include(FindProtobuf) +include(thirdparty/brpc/SetupBrpc) + set(WITH_GLOG_VAL "0") if(BRPC_WITH_GLOG) set(WITH_GLOG_VAL "1") @@ -24,11 +32,13 @@ if(WITH_DEBUG_SYMBOLS) set(DEBUG_SYMBOL "-g") endif() -set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) - -include(FindThreads) -include(FindProtobuf) -include(thirdparty/brpc/SetupBrpc) +if (WITH_COVERAGE) + if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + link_libraries(gcov) + else() + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") + endif() +endif() if ((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) message(FATAL_ERROR "Fail to find brpc") @@ -233,7 +243,12 @@ add_subdirectory(src) if(WITH_TESTS) add_subdirectory(test) endif() -# add_subdirectory(tools) + +if(WITH_EXAMPLES) + add_subdirectory(example) +endif() + +add_subdirectory(tools) file(COPY ${CMAKE_CURRENT_BINARY_DIR}/braft/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/output/include/braft/ diff --git a/example/atomic/CMakeLists.txt b/example/atomic/CMakeLists.txt index dbbb96d..b2c7bd6 100644 --- a/example/atomic/CMakeLists.txt +++ b/example/atomic/CMakeLists.txt @@ -1,148 +1,11 @@ -cmake_minimum_required(VERSION 2.8.10) -project(atomic C CXX) - -option(EXAMPLE_LINK_SO "Whether examples are linked dynamically" OFF) -option(LINK_TCMALLOC "Link tcmalloc if possible" ON) - -execute_process( - COMMAND bash -c "find ${CMAKE_SOURCE_DIR}/../.. -type d -path \"*output/include/braft\" | xargs dirname | xargs dirname | tr -d '\n'" - OUTPUT_VARIABLE OUTPUT_PATH -) - -set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) - -include(FindThreads) -include(FindProtobuf) - -if (NOT PROTOBUF_PROTOC_EXECUTABLE) - get_filename_component(PROTO_LIB_DIR ${PROTOBUF_LIBRARY} DIRECTORY) - set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") -endif() protobuf_generate_cpp(PROTO_SRC PROTO_HEADER atomic.proto) -# include PROTO_HEADER include_directories(${CMAKE_CURRENT_BINARY_DIR}) -find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h) -if(EXAMPLE_LINK_SO) - find_library(BRPC_LIB NAMES brpc) - find_library(BRAFT_LIB NAMES braft) -else() - find_library(BRPC_LIB NAMES libbrpc.a brpc) - find_library(BRAFT_LIB NAMES libbraft.a braft) -endif() - -if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) - message(FATAL_ERROR "Fail to find brpc") -endif() -include_directories(${BRPC_INCLUDE_PATH}) - -find_path(BRAFT_INCLUDE_PATH NAMES braft/raft.h) -if ((NOT BRAFT_INCLUDE_PATH) OR (NOT BRAFT_LIB)) - message (FATAL_ERROR "Fail to find braft") -endif() -include_directories(${BRAFT_INCLUDE_PATH}) - -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}) - -find_path(GLOG_INCLUDE_PATH glog/logging.h) -find_library(GLOG_LIBRARY NAMES glog libglog) -if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIBRARY)) - message(FATAL_ERROR "Fail to find glog") -endif() -include_directories(${GLOG_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 (LINK_TCMALLOC) - find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h) - find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler) - if (GPERFTOOLS_INCLUDE_DIR AND GPERFTOOLS_LIBRARIES) - set(CMAKE_CXX_FLAGS "-DBRPC_ENABLE_CPU_PROFILER") - include_directories(${GPERFTOOLS_INCLUDE_DIR}) - else () - set (GPERFTOOLS_LIBRARIES "") - endif () -endif () - -set(CMAKE_CPP_FLAGS "-DGFLAGS_NS=${GFLAGS_NS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CXX_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - # require at least gcc 4.8 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) - message(FATAL_ERROR "GCC is too old, please install a newer version supporting C++11") - endif() -elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - # require at least clang 3.3 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) - message(FATAL_ERROR "Clang is too old, please install a newer version supporting C++11") - endif() -else() - message(WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC.") -endif() - -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}) - add_executable(atomic_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) add_executable(atomic_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) add_executable(atomic_test test.cpp ${PROTO_SRC} ${PROTO_HEADER}) -set(DYNAMIC_LIB - ${CMAKE_THREAD_LIBS_INIT} - ${GFLAGS_LIBRARY} - ${GLOG_LIBRARY} - ${PROTOBUF_LIBRARY} - ${GPERFTOOLS_LIBRARIES} - ${LEVELDB_LIB} - ${BRAFT_LIB} - ${BRPC_LIB} - rt - ssl - crypto - dl - z - ) - -target_link_libraries(atomic_client - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") -target_link_libraries(atomic_server - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") -target_link_libraries(atomic_test - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") +target_link_libraries(atomic_client braft-static) +target_link_libraries(atomic_server braft-static) +target_link_libraries(atomic_test braft-static) \ No newline at end of file diff --git a/example/block/CMakeLists.txt b/example/block/CMakeLists.txt index f71e166..d93f92f 100644 --- a/example/block/CMakeLists.txt +++ b/example/block/CMakeLists.txt @@ -1,135 +1,8 @@ -cmake_minimum_required(VERSION 2.8.10) -project(block C CXX) - -option(EXAMPLE_LINK_SO "Whether examples are linked dynamically" OFF) -option(LINK_TCMALLOC "Link tcmalloc if possible" ON) - -execute_process( - COMMAND bash -c "find ${CMAKE_SOURCE_DIR}/../.. -type d -path \"*output/include/braft\" | xargs dirname | xargs dirname | tr -d '\n'" - OUTPUT_VARIABLE OUTPUT_PATH -) - -set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) - -include(FindThreads) -include(FindProtobuf) - -if (NOT PROTOBUF_PROTOC_EXECUTABLE) - get_filename_component(PROTO_LIB_DIR ${PROTOBUF_LIBRARY} DIRECTORY) - set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") -endif() - protobuf_generate_cpp(PROTO_SRC PROTO_HEADER block.proto) -# include PROTO_HEADER include_directories(${CMAKE_CURRENT_BINARY_DIR}) -find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h) -if(EXAMPLE_LINK_SO) - find_library(BRPC_LIB NAMES brpc) - find_library(BRAFT_LIB NAMES braft) -else() - find_library(BRPC_LIB NAMES libbrpc.a brpc) - find_library(BRAFT_LIB NAMES libbraft.a braft) -endif() - -if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) - message(FATAL_ERROR "Fail to find brpc") -endif() -include_directories(${BRPC_INCLUDE_PATH}) - -find_path(BRAFT_INCLUDE_PATH NAMES braft/raft.h) -if ((NOT BRAFT_INCLUDE_PATH) OR (NOT BRAFT_LIB)) - message (FATAL_ERROR "Fail to find braft") -endif() -include_directories(${BRAFT_INCLUDE_PATH}) - -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 (LINK_TCMALLOC) - find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h) - find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler) - if (GPERFTOOLS_INCLUDE_DIR AND GPERFTOOLS_LIBRARIES) - set(CMAKE_CXX_FLAGS "-DBRPC_ENABLE_CPU_PROFILER") - include_directories(${GPERFTOOLS_INCLUDE_DIR}) - else () - set (GPERFTOOLS_LIBRARIES "") - endif () -endif () - -set(CMAKE_CPP_FLAGS "-DGFLAGS_NS=${GFLAGS_NS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - # require at least gcc 4.8 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) - message(FATAL_ERROR "GCC is too old, please install a newer version supporting C++11") - endif() -elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - # require at least clang 3.3 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) - message(FATAL_ERROR "Clang is too old, please install a newer version supporting C++11") - endif() -else() - message(WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC.") -endif() - -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}) - add_executable(block_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) add_executable(block_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) -set(DYNAMIC_LIB - ${CMAKE_THREAD_LIBS_INIT} - ${GFLAGS_LIBRARY} - ${PROTOBUF_LIBRARY} - ${GPERFTOOLS_LIBRARIES} - ${LEVELDB_LIB} - ${BRAFT_LIB} - ${BRPC_LIB} - rt - ssl - crypto - dl - z - ) - -target_link_libraries(block_client - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") -target_link_libraries(block_server - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") +target_link_libraries(block_server braft-static) +target_link_libraries(block_client braft-static) \ No newline at end of file diff --git a/example/counter/CMakeLists.txt b/example/counter/CMakeLists.txt index 42785c8..3bbb6d0 100644 --- a/example/counter/CMakeLists.txt +++ b/example/counter/CMakeLists.txt @@ -1,134 +1,8 @@ -cmake_minimum_required(VERSION 2.8.10) -project(counter C CXX) - -option(EXAMPLE_LINK_SO "Whether examples are linked dynamically" OFF) -option(LINK_TCMALLOC "Link tcmalloc if possible" ON) - -execute_process( - COMMAND bash -c "find ${CMAKE_SOURCE_DIR}/../.. -type d -path \"*output/include/braft\" | xargs dirname | xargs dirname | tr -d '\n'" - OUTPUT_VARIABLE OUTPUT_PATH -) - -set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) - -include(FindThreads) -include(FindProtobuf) - -if (NOT PROTOBUF_PROTOC_EXECUTABLE) - get_filename_component(PROTO_LIB_DIR ${PROTOBUF_LIBRARY} DIRECTORY) - set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") -endif() - protobuf_generate_cpp(PROTO_SRC PROTO_HEADER counter.proto) -# include PROTO_HEADER include_directories(${CMAKE_CURRENT_BINARY_DIR}) -find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h) -if(EXAMPLE_LINK_SO) - find_library(BRPC_LIB NAMES brpc) - find_library(BRAFT_LIB NAMES braft) -else() - find_library(BRPC_LIB NAMES libbrpc.a brpc) - find_library(BRAFT_LIB NAMES libbraft.a braft) -endif() - -if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) - message(FATAL_ERROR "Fail to find brpc") -endif() -include_directories(${BRPC_INCLUDE_PATH}) - -find_path(BRAFT_INCLUDE_PATH NAMES braft/raft.h) -if ((NOT BRAFT_INCLUDE_PATH) OR (NOT BRAFT_LIB)) - message (FATAL_ERROR "Fail to find braft") -endif() -include_directories(${BRAFT_INCLUDE_PATH}) - -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 (LINK_TCMALLOC) - find_path(GPERFTOOLS_INCLUDE_DIR NAMES gperftools/heap-profiler.h) - find_library(GPERFTOOLS_LIBRARIES NAMES tcmalloc_and_profiler) - if (GPERFTOOLS_INCLUDE_DIR AND GPERFTOOLS_LIBRARIES) - set(CMAKE_CXX_FLAGS "-DBRPC_ENABLE_CPU_PROFILER") - include_directories(${GPERFTOOLS_INCLUDE_DIR}) - else () - set (GPERFTOOLS_LIBRARIES "") - endif () -endif () - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CPP_FLAGS} -DGFLAGS_NS=${GFLAGS_NS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - # require at least gcc 4.8 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8) - message(FATAL_ERROR "GCC is too old, please install a newer version supporting C++11") - endif() -elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - # require at least clang 3.3 - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) - message(FATAL_ERROR "Clang is too old, please install a newer version supporting C++11") - endif() -else() - message(WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC.") -endif() - -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}) - add_executable(counter_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) add_executable(counter_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) -set(DYNAMIC_LIB - ${CMAKE_THREAD_LIBS_INIT} - ${GFLAGS_LIBRARY} - ${PROTOBUF_LIBRARY} - ${GPERFTOOLS_LIBRARIES} - ${LEVELDB_LIB} - ${BRAFT_LIB} - ${BRPC_LIB} - rt - ssl - crypto - dl - z - ) - -target_link_libraries(counter_client - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") -target_link_libraries(counter_server - "-Xlinker \"-(\"" - ${DYNAMIC_LIB} - "-Xlinker \"-)\"") +target_link_libraries(counter_server braft-static) +target_link_libraries(counter_client braft-static) \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 244ff95..27ca024 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -9,15 +9,6 @@ set(CMAKE_CPP_FLAGS "-DGFLAGS_NS=${GFLAGS_NS}") set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -D__const__=__unused__ -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DUNIT_TEST -g -Dprivate=public -Dprotected=public -D__STRICT_ANSI__ -include sstream_workaround.h") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CPP_FLAGS} -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer -Wno-unused-result") -if (WITH_COVERAGE) - if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - link_libraries(gcov) - else() - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") - endif() - -endif() - # bthread_* functions are used in logging.cc, and they need to be marked as # weak symbols explicitly in Darwin system. if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 89aa7e4..438330d 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,19 +1,7 @@ -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") - set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/output/bin) include_directories(${CMAKE_CURRENT_BINARY_DIR}) + add_executable(braft_cli braft_cli.cpp) -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") -target_link_libraries(braft_cli - braft-static - ${DYNAMIC_LIB} - ) -else() -target_link_libraries(braft_cli - "-Xlinker \"-(\"" - braft-static - ${DYNAMIC_LIB} - "-Xlinker \"-)\"" - ) -endif() \ No newline at end of file +target_link_libraries(braft_cli braft-static) + \ No newline at end of file