Find zookeeper and boost properly using cmake

This commit is contained in:
Matias Fontanini
2016-06-13 20:53:54 -07:00
parent 0f5660710a
commit 5dcf01c1fc
3 changed files with 49 additions and 7 deletions

View File

@@ -2,17 +2,17 @@ cmake_minimum_required(VERSION 2.8.1)
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/")
include_directories(${CMAKE_SOURCE_DIR}/include/cppkafka)
add_subdirectory(src)
set(GOOGLETEST_ROOT ${CMAKE_SOURCE_DIR}/third_party/googletest)
set(GOOGLETEST_INCLUDE ${GOOGLETEST_ROOT}/googletest/include)
set(GOOGLETEST_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/googletest)
set(GOOGLETEST_LIBRARY ${GOOGLETEST_BINARY_DIR}/googletest)
include(ExternalProject)
ExternalProject_Add(
googletest
DOWNLOAD_COMMAND ""
@@ -22,12 +22,18 @@ ExternalProject_Add(
"-Dgtest_force_shared_crt:bool=ON"
INSTALL_COMMAND ""
)
# Make sure we build googletest before anything else
add_dependencies(cppkafka googletest)
# Look for Boost (just need boost.optional headers here)
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
option(ENABLE_ZOOKEEPER "Whether to enable zookeeper support" ON)
if (ENABLE_ZOOKEEPER)
find_package(Zookeeper REQUIRED)
message(STATUS "Found zookeeper library")
include_directories(${ZOOKEEPER_INCLUDE_DIR})
set(CPPKAFKA_HAVE_ZOOKEEPER ON)
endif()
@@ -37,5 +43,8 @@ configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/include/cppkafka/config.h"
)
add_subdirectory(src)
# Make sure we build googletest before anything else
add_dependencies(cppkafka googletest)
enable_testing()
add_subdirectory(tests)
add_subdirectory(tests)

33
cmake/FindZookeeper.cmake Normal file
View File

@@ -0,0 +1,33 @@
find_path(ZOOKEEPER_ROOT_DIR
NAMES include/zookeeper/zookeeper.h
)
find_path(ZOOKEEPER_INCLUDE_DIR
NAMES zookeeper/zookeeper.h
HINTS ${ZOOOKEEPER_ROOT_DIR}/include
)
set (HINT_DIR ${ZOOKEEPER_ROOT_DIR}/lib)
find_library(ZOOKEEPER_LIBRARY
NAMES zookeeper_mt zookeeper_st
HINTS ${HINT_DIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZOOKEEPER DEFAULT_MSG
ZOOKEEPER_LIBRARY
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
ZOOKEEPER_LIBRARY
)

View File

@@ -19,7 +19,7 @@ add_definitions("-DKAFKA_TEST_INSTANCE=\"${KAFKA_TEST_INSTANCE}\"")
add_definitions("-DZOOKEEPER_TEST_INSTANCE=\"${ZOOKEEPER_TEST_INSTANCE}\"")
if (ENABLE_ZOOKEEPER)
link_libraries(zookeeper_mt)
link_libraries(${ZOOKEEPER_LIBRARY})
endif()
create_test(consumer)