]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: check version of librdkafka
authorKefu Chai <kchai@redhat.com>
Fri, 13 Dec 2019 11:02:22 +0000 (19:02 +0800)
committerYuval Lifshitz <yuvalif@yahoo.com>
Wed, 19 Feb 2020 09:41:41 +0000 (11:41 +0200)
Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 1f8e3bd5e7abee3d8597aaa65fe19430abe23766)
Signed-off-by: Yuval Lifshitz <yuvalif@yahoo.com>
cmake/modules/FindRDKafka.cmake
src/rgw/CMakeLists.txt

index 0d2f3b74df5cb2f7049b89d866c6d6a5a0c72834..78f7d825c0315ccef6f2768787d9ec3eee60f5bf 100644 (file)
@@ -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()
index 8275b4170ace536c7f562a9603cb39df91322c6d..d5df1473b469ad464c2cd3ea037c57eb374b77ec 100644 (file)
@@ -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