From 45ed3399e901d8eae0b57ae54281a173b7b3e0f4 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 13 Dec 2019 19:02:22 +0800 Subject: [PATCH] cmake: check version of librdkafka Signed-off-by: Kefu Chai (cherry picked from commit 1f8e3bd5e7abee3d8597aaa65fe19430abe23766) Signed-off-by: Yuval Lifshitz --- cmake/modules/FindRDKafka.cmake | 36 +++++++++++++++++++++++---------- src/rgw/CMakeLists.txt | 2 +- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/cmake/modules/FindRDKafka.cmake b/cmake/modules/FindRDKafka.cmake index 0d2f3b74df5cb..78f7d825c0315 100644 --- a/cmake/modules/FindRDKafka.cmake +++ b/cmake/modules/FindRDKafka.cmake @@ -1,19 +1,33 @@ +find_package(PkgConfig QUIET) + +pkg_search_module(PC_rdkafka + rdkafka) + find_path(rdkafka_INCLUDE_DIR - NAMES librdkafka/rdkafka.h) + NAMES librdkafka/rdkafka.h + PATHS ${PC_rdkafka_INCLUDE_DIRS}) find_library(rdkafka_LIBRARY - NAMES rdkafka) + NAMES rdkafka + PATHS ${PC_rdkafka_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(RDKafka + REQUIRED_VARS rdkafka_INCLUDE_DIR rdkafka_LIBRARY + VERSION_VAR PC_rdkafka_VERSION) -find_package_handle_standard_args(RDKafka DEFAULT_MSG - rdkafka_INCLUDE_DIR - rdkafka_LIBRARY) +if(RDKafka_FOUND) + set(RDKafka_VERSION ${PC_rdkafka_VERSION}) + string(REPLACE "." ";" version_list ${PC_rdkafka_VERSION}) + list(GET version_list 0 RDKafka_VERSION_MAJOR) + list(GET version_list 1 RDKafka_VERSION_MINOR) + list(GET version_list 2 RDKafka_VERSION_PATCH) -if(RDKafka_FOUND AND NOT (TARGET RDKafka::RDKafka)) - add_library(RDKafka::RDKafka UNKNOWN IMPORTED) - set_target_properties(RDKafka::RDKafka PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${rdkafka_INCLUDE_DIR}" - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${rdkafka_LIBRARY}") + if(NOT TARGET RDKafka::RDKafka) + add_library(RDKafka::RDKafka UNKNOWN IMPORTED) + set_target_properties(RDKafka::RDKafka PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${rdkafka_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${rdkafka_LIBRARY}") + endif() endif() diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index 8275b4170ace5..d5df1473b469a 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -191,7 +191,7 @@ if(WITH_RADOSGW_AMQP_ENDPOINT) find_package(RabbitMQ REQUIRED) endif() if(WITH_RADOSGW_KAFKA_ENDPOINT) - find_package(RDKafka REQUIRED) + find_package(RDKafka 0.9.2 REQUIRED) endif() target_link_libraries(rgw_a -- 2.39.5