mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-01 19:18:04 +00:00
Find rdkafka via cmake
This commit is contained in:
43
cmake/FindRdKafka.cmake
Normal file
43
cmake/FindRdKafka.cmake
Normal file
@@ -0,0 +1,43 @@
|
||||
find_path(RDKAFKA_ROOT_DIR
|
||||
NAMES include/librdkafka/rdkafka.h
|
||||
)
|
||||
|
||||
find_path(RDKAFKA_INCLUDE_DIR
|
||||
NAMES librdkafka/rdkafka.h
|
||||
HINTS ${RDKAFKA_ROOT_DIR}/include
|
||||
)
|
||||
|
||||
set (HINT_DIR ${RDKAFKA_ROOT_DIR}/lib)
|
||||
|
||||
find_library(RDKAFKA_LIBRARY
|
||||
NAMES rdkafka
|
||||
HINTS ${HINT_DIR}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(RDKAFKA DEFAULT_MSG
|
||||
RDKAFKA_LIBRARY
|
||||
RDKAFKA_INCLUDE_DIR
|
||||
)
|
||||
|
||||
try_run(_rdkafka_version_check_run_result _rdkafka_version_check_compile_result
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake
|
||||
${CMAKE_MODULE_PATH}/sources/check_rdkafka_version.cpp
|
||||
CMAKE_FLAGS -DINCLUDE_DIRECTORIES:STRING=${RDKAFKA_INCLUDE_DIR}
|
||||
-DLINK_LIBRARIES:STRING=${RDKAFKA_LIBRARY})
|
||||
|
||||
if (${_rdkafka_version_check_compile_result} STREQUAL "TRUE")
|
||||
if (${_rdkafka_version_check_run_result} EQUAL 1)
|
||||
message(STATUS "Found valid rdkafka version")
|
||||
mark_as_advanced(
|
||||
RDKAFKA_ROOT_DIR
|
||||
RDKAFKA_INCLUDE_DIR
|
||||
RDKAFKA_LIBRARY
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "Invalid rdkafka version found (< 0.9)")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Failed to find rdkafka")
|
||||
endif()
|
||||
|
||||
@@ -4,7 +4,7 @@ find_path(ZOOKEEPER_ROOT_DIR
|
||||
|
||||
find_path(ZOOKEEPER_INCLUDE_DIR
|
||||
NAMES zookeeper/zookeeper.h
|
||||
HINTS ${ZOOOKEEPER_ROOT_DIR}/include
|
||||
HINTS ${ZOOKEEPER_ROOT_DIR}/include
|
||||
)
|
||||
|
||||
set (HINT_DIR ${ZOOKEEPER_ROOT_DIR}/lib)
|
||||
@@ -20,12 +20,6 @@ find_package_handle_standard_args(ZOOKEEPER DEFAULT_MSG
|
||||
ZOOKEEPER_INCLUDE_DIR
|
||||
)
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${ZOOKEEPER_LIBRARY})
|
||||
check_cxx_source_compiles("int main() { return 0; }" ZOOKEEPER_LINKS)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
mark_as_advanced(
|
||||
ZOOKEEPER_ROOT_DIR
|
||||
ZOOKEEPER_INCLUDE_DIR
|
||||
|
||||
9
cmake/sources/check_rdkafka_version.cpp
Normal file
9
cmake/sources/check_rdkafka_version.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <librdkafka/rdkafka.h>
|
||||
|
||||
int main() {
|
||||
int version = rd_kafka_version();
|
||||
int major = (version >> 32) & 0xff;
|
||||
int minor = (version >> 24) & 0xff;
|
||||
// We need version >= 0.9
|
||||
return (major > 0 || minor >= 9) ? 0 : 1;
|
||||
}
|
||||
Reference in New Issue
Block a user