Skip to content
Snippets Groups Projects
Commit 05ea4307 authored by Erickson, Brian (Contractor) K's avatar Erickson, Brian (Contractor) K
Browse files

Merge branch 'windows-fix' into 'master'

updated hazdevbroker cpp to use rdkafka from vcpkg

See merge request !3
parents c0a70b80 bed43683
No related branches found
No related tags found
1 merge request!3updated hazdevbroker cpp to use rdkafka from vcpkg
Pipeline #445134 waiting for manual action
......@@ -35,9 +35,8 @@ option(GIT_CLONE_PUBLIC "Clone from public git URLs (https)" OFF)
# rapidjson
include(${CMAKE_DIR}/include_rapidjson.cmake)
# ----- BROKER LIBRARIES ----- #
# librdkafka
include(${CMAKE_DIR}/include_librdkafka.cmake)
include(${CMAKE_DIR}/find_rdkafka.cmake)
# ----- SET PROJECT INCLUDE DIRECTORIES ----- #
include_directories(${PROJECT_SOURCE_DIR}/include)
......@@ -64,7 +63,7 @@ include(${CMAKE_DIR}/cpplint.cmake)
if (BUILD_EXAMPLES)
# ----- BUILD EXECUTABLE ----- #
# WARNING: linking order of libraries matters for G++
set(EXE_LIBRARIES HazdevBroker ${LIBRDKAFKA_CPP_LIB} ${LIBRDKAFKA_C_LIB})
set(EXE_LIBRARIES HazdevBroker RdKafka::rdkafka RdKafka::rdkafka++)
# ----- LINIX LIBRARIES ----- #
if (UNIX AND NOT APPLE)
......
# find_librdkafka.cmake - a CMake script that finds the
# librdkafka package, and sets up the includes
#
set(RdKafka_DIR "C:/code/vcpkg/installed/x86-windows/share/RdKafka" CACHE PATH "Path to RdKafka")
# find package should find this include path but doesn't
set(RdKafka_INCLUDE_DIRS "C:/code/vcpkg/installed/x86-windows/include/librdkafka" CACHE PATH "Path to RdKafka include directory")
set(LZ4_DIR "C:/code/vcpkg/installed/x86-windows/share/lz4" CACHE PATH "Path to lz4")
find_package(RdKafka CONFIG REQUIRED)
include_directories("${RdKafka_INCLUDE_DIRS}")
# include_HazdevBroker.cmake - a CMake script that finds the librdkafka
# libraries, and sets up the includes
#
# librdkafka
set(LIBRDKAFKA_PATH "${CURRENT_SOURCE_DIR}/../../rdkafka/" CACHE PATH "Path to the rdkafka library")
# look for the c lib
find_library(LIBRDKAFKA_C_LIB
${LIBRDKAFKA_PATH}/win32/x64/Release/${CMAKE_SHARED_LIBRARY_PREFIX}rdkafka${CMAKE_SHARED_LIBRARY_SUFFIX}
HINTS "${LIBRDKAFKA_PATH}/lib"
)
include_directories(${LIBRDKAFKA_PATH})
# check to see if we found it
if (LIBRDKAFKA_C_LIB STREQUAL "LIBRDKAFKA_C_LIB-NOTFOUND")
message (FATAL_ERROR "Couldn't find the librdkafka c library")
endif ()
include_directories(${LIBRDKAFKA_PATH}/src)
# look for the cpp lib
find_library(LIBRDKAFKA_CPP_LIB
${LIBRDKAFKA_PATH}/win32/x64/Release/${CMAKE_SHARED_LIBRARY_PREFIX}rdkafka++${CMAKE_SHARED_LIBRARY_SUFFIX}
HINTS "${LIBRDKAFKA_PATH}/lib"
)
# check to see if we found it
if (LIBRDKAFKA_CPP_LIB STREQUAL "LIBRDKAFKA_CPP_LIB-NOTFOUND")
message (FATAL_ERROR "Couldn't find the librdkafka cpp library")
endif ()
include_directories(${LIBRDKAFKA_PATH}/src-cpp)
......@@ -2,6 +2,6 @@
# include files
#
# rapidjson
set(RAPIDJSON_PATH "${CMAKE_CURRENT_LIST_DIR}/lib/rapidjson" CACHE PATH "Path to rapidjson")
set(RAPIDJSON_PATH "${CMAKE_CURRENT_LIST_DIR}/../../lib/rapidjson" CACHE PATH "Path to rapidjson")
include_directories(${RAPIDJSON_PATH})
################################################################################
# link_rdkafka_lib
################################################################################
# This CMake file links to the curl library
################################################################################
set(CMAKE_DIR ${CMAKE_SOURCE_DIR}/cmake)
# make sure we have the code
include(${CMAKE_DIR}/find_rdkafka.cmake)
target_link_libraries(${PROJECT_NAME} RdKafka::rdkafka RdKafka::rdkafka++)
......@@ -2,5 +2,5 @@
# NOTE: Make sure to also update the java version strings in ClientBase.java
# when updating this file
set (PROJECT_VERSION_MAJOR 0)
set (PROJECT_VERSION_MINOR 3)
set (PROJECT_VERSION_MINOR 4)
set (PROJECT_VERSION_PATCH 0)
......@@ -10,6 +10,7 @@
// Define configuration type
#define CONFIGTYPE_STRING "ConsumerConfig"
namespace hazdevbroker {
Consumer::Consumer() {
......@@ -185,7 +186,10 @@ byte * Consumer::poll(int64_t timeout, size_t *datalength) {
// Negative value means wait for an arbitrarily long time
if (timeout < 0) {
timeout = std::numeric_limits<int64_t>::max();
// causes windows compiler error due to windows macros
// timeout = std::numeric_limits<int64_t>::max();
// instead use 100 billion ms, which is like 1000 days
timeout = 100000000000;
}
// get any messages pending for our topic(s) from kafka
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment