github.com/rohankumardubey/aresdb@v0.0.2-0.20190517170215-e54e3ca06b9c/rdkafka.cmake (about) 1 # Build only the static C library 2 # Does not build C++ library 3 # Does not build shared libraries 4 # Does not run tests 5 # Does not generate documentation 6 7 8 # Protect multiple-inclusion of this CMake file 9 if( NOT TARGET rdkafka::rdkafka ) 10 11 # librdkafka depends on pthread and zlib 12 find_package(Threads REQUIRED) 13 find_package(ZLIB REQUIRED) # sudo apt install zlib1g-dev 14 15 # The librdkafka build is based on tools './configure' and 'make' 16 include(ExternalProject) 17 ExternalProject_Add( rdkafka 18 # DEPENDS Threads::Threads ZLIB::ZLIB 19 SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/thirdparty/librdkafka 20 BUILD_IN_SOURCE 1 21 # UPDATE_COMMAND echo "Full clean (make clean)" && make clean && rm -f Makefile.config config.cache config.h config.log config.log.old rdkafka.pc 22 UPDATE_COMMAND echo "Full clean (make distclean)" && make distclean 23 CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/librdkafka/configure 24 #--prefix=${CMAKE_BINARY_DIR} 25 --prefix=${CMAKE_CURRENT_SOURCE_DIR} 26 --cc=${CMAKE_C_COMPILER} 27 --cxx=${CMAKE_CXX_COMPILER} 28 # --arch=${MARCH} 29 --CFLAGS=${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}} # TODO(olibre): Retrieve correct flags set by 30 --CXXFLAGS=${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}} # add_compile_options() and add_definitions() 31 --LDFLAGS=${CMAKE_STATIC_LINKER_FLAGS} 32 --ARFLAGS=${CMAKE_STATIC_LINKER_FLAGS} 33 --enable-static 34 BUILD_COMMAND echo "Build only librdkafka.a (make librdkafka.a -j4) => No librdkafka++ No shared library No check" && 35 #make -C src librdkafka.a -j4 36 make 37 INSTALL_COMMAND echo "Install only librdkafka.a" && 38 make install 39 BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/librdkafka.a 40 ) 41 42 # Target 'rdkafka::rdkafka' to define: lib-location, include-dir and dependencies 43 add_library( rdkafka::rdkafka STATIC IMPORTED GLOBAL ) 44 add_dependencies( rdkafka::rdkafka rdkafka ) 45 set_target_properties( rdkafka::rdkafka PROPERTIES 46 IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/librdkafka.a 47 INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/librdkafka/src 48 INTERFACE_LINK_LIBRARIES "Threads::Threads;${ZLIB_LIBRARIES}") #ZLIB::ZLIB 49 endif() 50