mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-03 12:07:57 +00:00
Find rdkafka via cmake
This commit is contained in:
@@ -27,6 +27,8 @@ ExternalProject_Add(
|
||||
find_package(Boost REQUIRED)
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
|
||||
find_package(RdKafka REQUIRED)
|
||||
|
||||
option(ENABLE_ZOOKEEPER "Whether to enable zookeeper support" ON)
|
||||
if (ENABLE_ZOOKEEPER)
|
||||
find_package(Zookeeper REQUIRED)
|
||||
|
||||
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;
|
||||
}
|
||||
@@ -2,7 +2,7 @@ include_directories(${GOOGLETEST_INCLUDE})
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include/)
|
||||
|
||||
link_directories(${GOOGLETEST_LIBRARY})
|
||||
link_libraries(cppkafka rdkafka gtest gtest_main pthread)
|
||||
link_libraries(cppkafka ${RDKAFKA_LIBRARY} gtest gtest_main pthread)
|
||||
|
||||
set(KAFKA_TEST_INSTANCE "kafka-vm:9092"
|
||||
CACHE STRING "The kafka instance to which to connect to run tests")
|
||||
|
||||
Reference in New Issue
Block a user