From: Kefu Chai Date: Fri, 13 Dec 2019 11:02:22 +0000 (+0800) Subject: cmake: check version of librdkafka X-Git-Tag: v15.1.0~467^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F32237%2Fhead;p=ceph.git cmake: check version of librdkafka Signed-off-by: Kefu Chai --- diff --git a/cmake/modules/FindRDKafka.cmake b/cmake/modules/FindRDKafka.cmake index 0d2f3b74df5..78f7d825c03 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 0a28f289336..d36d57adad6 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -214,7 +214,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