From a12c0eb1f82fbbb01c0ac7bf64f67d93d43607b0 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Fri, 17 Jun 2016 15:47:26 -0700 Subject: [PATCH] Check for rd_kafka_commited to check for valid rdkafka version --- CMakeLists.txt | 6 ++++- cmake/FindRdKafka.cmake | 31 +++++++++++-------------- cmake/sources/check_rdkafka_version.cpp | 9 ------- 3 files changed, 18 insertions(+), 28 deletions(-) delete mode 100644 cmake/sources/check_rdkafka_version.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 50d8fef..eda111f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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() \ No newline at end of file +endif() diff --git a/cmake/FindRdKafka.cmake b/cmake/FindRdKafka.cmake index 563bd44..82da1ae 100644 --- a/cmake/FindRdKafka.cmake +++ b/cmake/FindRdKafka.cmake @@ -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() - diff --git a/cmake/sources/check_rdkafka_version.cpp b/cmake/sources/check_rdkafka_version.cpp deleted file mode 100644 index 9d35faa..0000000 --- a/cmake/sources/check_rdkafka_version.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include - -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; -} \ No newline at end of file