From cbf359467a22ec6b163f8c73ba70e346d073aeb0 Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Tue, 17 May 2022 02:55:17 +0800 Subject: [PATCH 1/3] fix check for VCPKG_TOOLCHAIN in Cmake files --- CMakeLists.txt | 8 +++++--- CMakeLists_Headers.txt | 6 +++--- benchmark/CMakeLists.txt | 40 +++++++++++++++++++++++++++++-------- src/CMakeLists.txt | 8 +++----- src/compress/CMakeLists.txt | 16 ++++----------- test/CMakeLists.txt | 35 +++++++++++++++++++++++++++++--- tutorial/CMakeLists.txt | 35 +++++++++++++++++++++++++++++--- 7 files changed, 111 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b1095e3d..3dfd231e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,10 +99,12 @@ add_subdirectory(src) include(CMakePackageConfigHelpers) set(CONFIG_INC_DIR ${INC_DIR}) set(CONFIG_LIB_DIR ${LIB_DIR}) -if(NOT VCPKG_TOOLCHAIN) - set(CONFIG_BIN_DIR ${BIN_DIR}) -else() + +if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") set(CONFIG_BIN_DIR ${CMAKE_INSTALL_PREFIX}/tools/srpc) + message("Install with VCPKG toolchain. Dir ${CMAKE_INSTALL_PREFIX}/tools/srpc.") +else() + set(CONFIG_BIN_DIR ${BIN_DIR}) endif() configure_package_config_file( diff --git a/CMakeLists_Headers.txt b/CMakeLists_Headers.txt index 65ba0873..34ca9316 100644 --- a/CMakeLists_Headers.txt +++ b/CMakeLists_Headers.txt @@ -52,9 +52,9 @@ if (NOT LZ4_INSTALLED) ) endif () -if(NOT VCPKG_TOOLCHAIN) - set(INCLUDE_HEADERS ${SRC_HEADERS} ${SNAPPY_HEADERS} ${LZ4_HEADERS}) -else() +if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") set(INCLUDE_HEADERS ${SRC_HEADERS}) +else() + set(INCLUDE_HEADERS ${SRC_HEADERS} ${SNAPPY_HEADERS} ${LZ4_HEADERS}) endif() diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 21c5ec2a..43805578 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -86,16 +86,40 @@ else () endif () if (APPLE) - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z) + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ) elseif (WIN32) - set(SRPC_LIB srpc workflow ws2_32 wsock32 OpenSSL::SSL OpenSSL::Crypto) + set(SRPC_LIB + srpc + workflow + ws2_32 + wsock32 + OpenSSL::SSL + OpenSSL::Crypto + protobuf::libprotobuf + ZLIB::ZLIB + Snappy::snappy + LZ4::LZ4 + ) else () - if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../third_party/snappy/cmake) - set(SRPC_LIB srpc snappy lz4) - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf snappy lz4 z) - else () - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z) - endif () + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ${SNAPPY_LIB} + ${LZ4_LIB} + ) endif () add_executable(server server.cc ${PROTO_SRCS} ${PROTO_HDRS}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2b00ef5e..84c9ee01 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,8 +25,9 @@ else () set (HAVE_SYS_UIO_H_01 true) endif () -if (NOT VCPKG_TOOLCHAIN) - +if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") + find_package(Workflow REQUIRED CONFIG) +else () # Try to find the package if workflow is not installed, otherwise proceed with find_package() if (NOT WORKFLOW_INSTALLED) find_package(Workflow REQUIRED CONFIG HINTS ../workflow) @@ -44,9 +45,6 @@ if (NOT VCPKG_TOOLCHAIN) if (LZ4_INSTALLED) set(LZ4_LIB lz4) endif () - -else() - find_package(Workflow REQUIRED CONFIG) endif() include_directories( diff --git a/src/compress/CMakeLists.txt b/src/compress/CMakeLists.txt index 84446905..31fec909 100644 --- a/src/compress/CMakeLists.txt +++ b/src/compress/CMakeLists.txt @@ -8,8 +8,10 @@ set(SRC set_property(SOURCE rpc_compress_snappy.cc APPEND PROPERTY COMPILE_OPTIONS "-fno-rtti") -if (NOT VCPKG_TOOLCHAIN) - +if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") + add_library(${PROJECT_NAME} OBJECT ${SRC}) + target_link_libraries(${PROJECT_NAME} lz4 snappy) +else () if (SNAPPY_INSTALLED) set(SNAPPY_LIB snappy) else () @@ -47,15 +49,5 @@ if (NOT VCPKG_TOOLCHAIN) ${SNAPPY_SRC} ${LZ4_SRC} ) - -# if ("${SNAPPY_INSTALLED}${LZ4_INSTALLED}") -# target_link_libraries(${PROJECT_NAME} ${SNAPPY_LIB} ${LZ4_LIB}) -# endif() -else() - add_library( - ${PROJECT_NAME} OBJECT - ${SRC} - ) - target_link_libraries(${PROJECT_NAME} lz4 snappy) endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index acbc9922..657f91d7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -103,9 +103,28 @@ add_custom_target( set(GTEST_LIB GTest::GTest GTest::Main) if (APPLE) - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z) + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ) elseif (WIN32) - set(SRPC_LIB srpc workflow ws2_32 wsock32 OpenSSL::SSL OpenSSL::Crypto) + set(SRPC_LIB + srpc + workflow + ws2_32 + wsock32 + OpenSSL::SSL + OpenSSL::Crypto + protobuf::libprotobuf + ZLIB::ZLIB + Snappy::snappy + LZ4::LZ4 + ) set(GTEST_LIB GTest::gtest GTest::gtest_main) else () if (SNAPPY_INSTALLED) @@ -116,7 +135,17 @@ else () set(LZ4_LIB lz4) endif () - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z ${SNAPPY_LIB} ${LZ4_LIB}) + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ${SNAPPY_LIB} + ${LZ4_LIB} + ) endif () foreach(src ${TEST_LIST}) diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt index f6e3ec15..0dbd6960 100644 --- a/tutorial/CMakeLists.txt +++ b/tutorial/CMakeLists.txt @@ -102,11 +102,40 @@ set(TUTORIAL_PB_LIST ) if (APPLE) - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z) + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ) elseif (WIN32) - set(SRPC_LIB srpc workflow ws2_32 wsock32 OpenSSL::SSL OpenSSL::Crypto protobuf::libprotobuf ZLIB::ZLIB) + set(SRPC_LIB + srpc + workflow + ws2_32 + wsock32 + OpenSSL::SSL + OpenSSL::Crypto + protobuf::libprotobuf + ZLIB::ZLIB + Snappy::snappy + LZ4::LZ4 + ) else () - set(SRPC_LIB srpc workflow pthread OpenSSL::SSL OpenSSL::Crypto protobuf z ${SNAPPY_LIB} ${LZ4_LIB}) + set(SRPC_LIB + srpc + workflow + pthread + OpenSSL::SSL + OpenSSL::Crypto + protobuf + z + ${SNAPPY_LIB} + ${LZ4_LIB} + ) endif () foreach(src ${TUTORIAL_PB_LIST}) From a0655e73a25e7d943fa13e88a63c6127c5dcdc5d Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Wed, 18 May 2022 01:40:25 +0800 Subject: [PATCH 2/3] update cmake to find path for lz4 and snappy as dependencies --- CMakeLists.txt | 18 +++++++++++++++--- CMakeLists_Headers.txt | 2 +- src/CMakeLists.txt | 2 +- src/compress/CMakeLists.txt | 2 +- test/CMakeLists.txt | 1 - tutorial/CMakeLists.txt | 3 ++- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3dfd231e..13add2ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,8 +11,9 @@ project(srpc include(CheckIncludeFile) include(CheckIncludeFileCXX) +find_library(LZ4_LIBRARY NAMES lz4) check_include_file("lz4.h" LZ4_INSTALLED) -if (NOT LZ4_INSTALLED) +if (NOT LZ4_INSTALLED AND ${LZ4_LIBRARY} STREQUAL "LZ4_LIBRARY-NOTFOUND") if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/lz4/lib/lz4.h") message( FATAL_ERROR "Lz4 is neither installed not in third_party!") endif () @@ -20,18 +21,27 @@ else () if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/lz4/lib/lz4.h") message("Lz4 third_party FOUND. Use for source code dependencies.") set(LZ4_INSTALLED 0) + else () + find_path(LZ4_INCLUDE_DIR NAMES "lz4.h") + include_directories(${LZ4_INCLUDE_DIR}) + set(LZ4_INSTALLED 1 CACHE INTERNAL "check_lz4_installed") endif () endif () +find_package(Snappy) check_include_file_cxx("snappy.h" SNAPPY_INSTALLED) -if (NOT SNAPPY_INSTALLED) +if (NOT SNAPPY_INSTALLED AND NOT ${Snappy_FOUND}) if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/snappy/cmake") message( FATAL_ERROR "Snappy is neither installed not in third_party!") endif () else () if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/snappy/cmake") message("Snappy third_party FOUND. Use for source code dependencies.") - set(SNAPPY_INSTALLED 0) + set(SNAPPY_INSTALLED 0 CACHE INTERNAL "check_snappy_installed") + else () + find_path(Snappy_INCLUDE_DIR NAMES "snappy.h") + include_directories(${Snappy_INCLUDE_DIR}) + set(SNAPPY_INSTALLED 1 CACHE INTERNAL "check_snappy_installed") endif () endif () @@ -102,9 +112,11 @@ set(CONFIG_LIB_DIR ${LIB_DIR}) if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") set(CONFIG_BIN_DIR ${CMAKE_INSTALL_PREFIX}/tools/srpc) + set(WITH_VCPKG_TOOLCHAIN 1 CACHE INTERNAL "build_with_vcpkg_toolchain") message("Install with VCPKG toolchain. Dir ${CMAKE_INSTALL_PREFIX}/tools/srpc.") else() set(CONFIG_BIN_DIR ${BIN_DIR}) + set(WITH_VCPKG_TOOLCHAIN 0 CACHE INTERNAL "build_with_vcpkg_toolchain") endif() configure_package_config_file( diff --git a/CMakeLists_Headers.txt b/CMakeLists_Headers.txt index 34ca9316..fd2a9dbe 100644 --- a/CMakeLists_Headers.txt +++ b/CMakeLists_Headers.txt @@ -52,7 +52,7 @@ if (NOT LZ4_INSTALLED) ) endif () -if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") +if (WITH_VCPKG_TOOLCHAIN) set(INCLUDE_HEADERS ${SRC_HEADERS}) else() set(INCLUDE_HEADERS ${SRC_HEADERS} ${SNAPPY_HEADERS} ${LZ4_HEADERS}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 84c9ee01..a0a86cdc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,7 +25,7 @@ else () set (HAVE_SYS_UIO_H_01 true) endif () -if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") +if (WITH_VCPKG_TOOLCHAIN) find_package(Workflow REQUIRED CONFIG) else () # Try to find the package if workflow is not installed, otherwise proceed with find_package() diff --git a/src/compress/CMakeLists.txt b/src/compress/CMakeLists.txt index 31fec909..818b5051 100644 --- a/src/compress/CMakeLists.txt +++ b/src/compress/CMakeLists.txt @@ -8,7 +8,7 @@ set(SRC set_property(SOURCE rpc_compress_snappy.cc APPEND PROPERTY COMPILE_OPTIONS "-fno-rtti") -if (VCPKG_TOOLCHAIN AND EXISTS "${CMAKE_INSTALL_PREFIX}/tools/srpc") +if (WITH_VCPKG_TOOLCHAIN) add_library(${PROJECT_NAME} OBJECT ${SRC}) target_link_libraries(${PROJECT_NAME} lz4 snappy) else () diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 657f91d7..1978f56b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -49,7 +49,6 @@ endif () # find_package(Workflow REQUIRED) #endif() -find_package(srpc REQUIRED CONFIG HINTS ..) include_directories( ${OPENSSL_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt index 0dbd6960..d59f8515 100644 --- a/tutorial/CMakeLists.txt +++ b/tutorial/CMakeLists.txt @@ -24,6 +24,8 @@ find_package(srpc REQUIRED CONFIG HINTS ..) set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "") if (WIN32) find_package(Protobuf CONFIG REQUIRED) + find_library(LZ4_LIBRARY NAMES lz4) + find_package(Snappy CONFIG REQUIRED) else () find_package(Protobuf REQUIRED) endif () @@ -53,7 +55,6 @@ find_package(ZLIB REQUIRED) # find_package(Workflow REQUIRED) #endif() -find_package(srpc REQUIRED CONFIG HINTS ..) include_directories( ${OPENSSL_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} From 9ac467eafa0012feed45ddc2e5eaef980580ecc8 Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Wed, 18 May 2022 14:51:51 +0800 Subject: [PATCH 3/3] Update LZ4_LIBRARY in Cmake; Remove not used variables; --- CMakeLists.txt | 2 +- benchmark/CMakeLists.txt | 4 +++- benchmark/client_cdf.cc | 8 ++++---- src/module/rpc_filter_metrics.cc | 2 -- src/module/rpc_filter_metrics.h | 1 - test/CMakeLists.txt | 2 +- tutorial/CMakeLists.txt | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13add2ea..909e8cc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ if (NOT LZ4_INSTALLED AND ${LZ4_LIBRARY} STREQUAL "LZ4_LIBRARY-NOTFOUND") else () if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/lz4/lib/lz4.h") message("Lz4 third_party FOUND. Use for source code dependencies.") - set(LZ4_INSTALLED 0) + set(LZ4_INSTALLED 0 CACHE INTERNAL "check_lz4_installed") else () find_path(LZ4_INCLUDE_DIR NAMES "lz4.h") include_directories(${LZ4_INCLUDE_DIR}) diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 43805578..c09ec578 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -23,6 +23,8 @@ find_package(OpenSSL REQUIRED) set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "") if (WIN32) find_package(Protobuf CONFIG REQUIRED) + find_library(LZ4_LIBRARY NAMES lz4) + find_package(Snappy CONFIG REQUIRED) else () find_package(Protobuf REQUIRED) endif () @@ -106,7 +108,7 @@ elseif (WIN32) protobuf::libprotobuf ZLIB::ZLIB Snappy::snappy - LZ4::LZ4 + ${LZ4_LIBRARY} ) else () set(SRPC_LIB diff --git a/benchmark/client_cdf.cc b/benchmark/client_cdf.cc index e8036e4a..7241ebe0 100644 --- a/benchmark/client_cdf.cc +++ b/benchmark/client_cdf.cc @@ -44,7 +44,7 @@ static void do_echo_pb(CLIENT *client, int idx) if (++query_count % 100 > 0) { - client->echo_pb(&req, [client, ns_st, &latency_list, &mutex](EmptyPBMsg *response, RPCContext *ctx) { + client->echo_pb(&req, [ns_st, &latency_list, &mutex](EmptyPBMsg *response, RPCContext *ctx) { if (ctx->success()) { //printf("%s\n", ctx->get_remote_ip().c_str()); @@ -65,7 +65,7 @@ static void do_echo_pb(CLIENT *client, int idx) } else { - client->slow_pb(&req, [client, ns_st](EmptyPBMsg *response, RPCContext *ctx) { + client->slow_pb(&req, [](EmptyPBMsg *response, RPCContext *ctx) { slow_count++; if (!ctx->success()) printf("status[%d] error[%d] errmsg:%s\n", ctx->get_status_code(), ctx->get_error(), ctx->get_errmsg()); @@ -93,7 +93,7 @@ static void do_echo_thrift(CLIENT *client, int idx) if (++query_count % 100 > 0) { - client->echo_thrift(&req, [client, ns_st, &latency_list, &mutex](BenchmarkThrift::echo_thriftResponse *response, RPCContext *ctx) { + client->echo_thrift(&req, [ns_st, &latency_list, &mutex](BenchmarkThrift::echo_thriftResponse *response, RPCContext *ctx) { if (ctx->success()) { //printf("%s\n", ctx->get_remote_ip().c_str()); @@ -114,7 +114,7 @@ static void do_echo_thrift(CLIENT *client, int idx) } else { - client->slow_thrift(&slow_req, [client, ns_st](BenchmarkThrift::slow_thriftResponse *response, RPCContext *ctx) { + client->slow_thrift(&slow_req, [](BenchmarkThrift::slow_thriftResponse *response, RPCContext *ctx) { slow_count++; if (!ctx->success()) printf("status[%d] error[%d] errmsg:%s\n", ctx->get_status_code(), ctx->get_error(), ctx->get_errmsg()); diff --git a/src/module/rpc_filter_metrics.cc b/src/module/rpc_filter_metrics.cc index d19f9652..e21f53f4 100644 --- a/src/module/rpc_filter_metrics.cc +++ b/src/module/rpc_filter_metrics.cc @@ -388,7 +388,6 @@ RPCMetricsOTel::RPCMetricsOTel(const std::string& url, redirect_max(redirect_max), retry_max(retry_max), policy(report_threshold, report_interval_msec), - report_status(false), report_counts(0) { } @@ -398,7 +397,6 @@ RPCMetricsOTel::RPCMetricsOTel(const std::string& url) : redirect_max(OTLP_HTTP_REDIRECT_MAX), retry_max(OTLP_HTTP_RETRY_MAX), policy(RPC_REPORT_THREHOLD_DEFAULT, RPC_REPORT_INTERVAL_DEFAULT), - report_status(false), report_counts(0) { } diff --git a/src/module/rpc_filter_metrics.h b/src/module/rpc_filter_metrics.h index 14e7c378..231d4354 100644 --- a/src/module/rpc_filter_metrics.h +++ b/src/module/rpc_filter_metrics.h @@ -252,7 +252,6 @@ class RPCMetricsOTel : public RPCMetricsFilter int retry_max; Collector collector; RPCFilterPolicy policy; - bool report_status; size_t report_counts; std::mutex mutex; std::map attributes; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1978f56b..644fb505 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -122,7 +122,7 @@ elseif (WIN32) protobuf::libprotobuf ZLIB::ZLIB Snappy::snappy - LZ4::LZ4 + ${LZ4_LIBRARY} ) set(GTEST_LIB GTest::gtest GTest::gtest_main) else () diff --git a/tutorial/CMakeLists.txt b/tutorial/CMakeLists.txt index d59f8515..3b89a3c1 100644 --- a/tutorial/CMakeLists.txt +++ b/tutorial/CMakeLists.txt @@ -123,7 +123,7 @@ elseif (WIN32) protobuf::libprotobuf ZLIB::ZLIB Snappy::snappy - LZ4::LZ4 + ${LZ4_LIBRARY} ) else () set(SRPC_LIB