mirror of
https://github.com/Telecominfraproject/wlan-cloud-lib-cppkafka.git
synced 2025-11-01 02:57:53 +00:00
Check for rd_kafka_commited to check for valid rdkafka version
This commit is contained in:
@@ -4,6 +4,10 @@ project(cppkafka)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
|
||||
|
||||
# Set output directories
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/cppkafka)
|
||||
|
||||
# Look for Boost (just need boost.optional headers here)
|
||||
@@ -41,4 +45,4 @@ if(EXISTS "${GOOGLETEST_ROOT}/CMakeLists.txt")
|
||||
add_dependencies(cppkafka googletest)
|
||||
else()
|
||||
message(STATUS "Disabling tests")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -20,24 +20,19 @@ find_package_handle_standard_args(RDKAFKA DEFAULT_MSG
|
||||
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})
|
||||
include(CheckFunctionExists)
|
||||
|
||||
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()
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${RDKAFKA_LIBRARY})
|
||||
check_function_exists(rd_kafka_committed HAVE_VALID_KAFKA_VERSION)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
if (HAVE_VALID_KAFKA_VERSION)
|
||||
message(STATUS "Found valid rdkafka version")
|
||||
mark_as_advanced(
|
||||
RDKAFKA_ROOT_DIR
|
||||
RDKAFKA_INCLUDE_DIR
|
||||
RDKAFKA_LIBRARY
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "Failed to find rdkafka")
|
||||
message(FATAL_ERROR "Failed to find valid rdkafka version")
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
#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