diff options
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/src/CMakeLists.txt')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/src/CMakeLists.txt | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/src/CMakeLists.txt b/fluent-bit/lib/librdkafka-2.1.0/src/CMakeLists.txt new file mode 100644 index 00000000..37b43c49 --- /dev/null +++ b/fluent-bit/lib/librdkafka-2.1.0/src/CMakeLists.txt @@ -0,0 +1,364 @@ +set(LIBVER 1) + +set( + sources + crc32c.c + rdaddr.c + rdavl.c + rdbuf.c + rdcrc32.c + rdfnv1a.c + rdkafka.c + rdkafka_assignor.c + rdkafka_broker.c + rdkafka_buf.c + rdkafka_cgrp.c + rdkafka_conf.c + rdkafka_event.c + rdkafka_feature.c + rdkafka_lz4.c + rdkafka_metadata.c + rdkafka_metadata_cache.c + rdkafka_msg.c + rdkafka_msgset_reader.c + rdkafka_msgset_writer.c + rdkafka_offset.c + rdkafka_op.c + rdkafka_partition.c + rdkafka_pattern.c + rdkafka_queue.c + rdkafka_range_assignor.c + rdkafka_request.c + rdkafka_roundrobin_assignor.c + rdkafka_sasl.c + rdkafka_sasl_plain.c + rdkafka_sticky_assignor.c + rdkafka_subscription.c + rdkafka_assignment.c + rdkafka_timer.c + rdkafka_topic.c + rdkafka_transport.c + rdkafka_interceptor.c + rdkafka_header.c + rdkafka_admin.c + rdkafka_aux.c + rdkafka_background.c + rdkafka_idempotence.c + rdkafka_txnmgr.c + rdkafka_cert.c + rdkafka_coord.c + rdkafka_mock.c + rdkafka_mock_handlers.c + rdkafka_mock_cgrp.c + rdkafka_error.c + rdkafka_fetcher.c + rdlist.c + rdlog.c + rdmurmur2.c + rdports.c + rdrand.c + rdregex.c + rdstring.c + rdunittest.c + rdvarint.c + rdmap.c + snappy.c + tinycthread.c + tinycthread_extra.c + rdxxhash.c + cJSON.c +) + +if(WITH_SSL) + list(APPEND sources rdkafka_ssl.c) +endif() + +if(WITH_CURL) + list(APPEND sources rdhttp.c) +endif() + +if(WITH_HDRHISTOGRAM) + list(APPEND sources rdhdrhistogram.c) +endif() + +if(WITH_LIBDL OR WIN32) + list(APPEND sources rddl.c) +endif() + +if(WITH_PLUGINS) + list(APPEND sources rdkafka_plugin.c) +endif() + +if(WIN32) + list(APPEND sources rdkafka_sasl_win32.c) +elseif(WITH_SASL_CYRUS) + list(APPEND sources rdkafka_sasl_cyrus.c) +endif() + +if(WITH_SASL_SCRAM) + list(APPEND sources rdkafka_sasl_scram.c) +endif() + +if(WITH_SASL_OAUTHBEARER) + list(APPEND sources rdkafka_sasl_oauthbearer.c) +endif() + +if(WITH_OAUTHBEARER_OIDC) + list(APPEND sources rdkafka_sasl_oauthbearer_oidc.c) +endif() + +if(WITH_ZLIB) + list(APPEND sources rdgz.c) +endif() + +if(WITH_ZSTD) + list(APPEND sources rdkafka_zstd.c) +endif() + +if(NOT WITH_LZ4_EXT) + list(APPEND sources lz4.c lz4frame.c lz4hc.c) +endif() + +if(NOT HAVE_REGEX) + list(APPEND sources regexp.c) +endif() + +# Define flags with cmake instead of by defining them on win32_config.h +if(WITHOUT_WIN32_CONFIG) + list(APPEND rdkafka_compile_definitions WITHOUT_WIN32_CONFIG) + if(WITH_SSL) + list(APPEND rdkafka_compile_definitions WITH_SSL=1) + else() + list(APPEND rdkafka_compile_definitions WITH_SSL=0) + endif(WITH_SSL) + if(WITH_ZLIB) + list(APPEND rdkafka_compile_definitions WITH_ZLIB=1) + else() + list(APPEND rdkafka_compile_definitions WITH_ZLIB=0) + endif(WITH_ZLIB) + if(WITH_SNAPPY) + list(APPEND rdkafka_compile_definitions WITH_SNAPPY=1) + else() + list(APPEND rdkafka_compile_definitions WITH_SNAPPY=0) + endif(WITH_SNAPPY) + if(WITH_ZSTD) + list(APPEND rdkafka_compile_definitions WITH_ZSTD=1) + else() + list(APPEND rdkafka_compile_definitions WITH_ZSTD=0) + endif(WITH_ZSTD) + if(WITH_SASL_SCRAM) + list(APPEND rdkafka_compile_definitions WITH_SASL_SCRAM=1) + else() + list(APPEND rdkafka_compile_definitions WITH_SASL_SCRAM=0) + endif(WITH_SASL_SCRAM) + if(WITH_SASL_OAUTHBEARER) + list(APPEND rdkafka_compile_definitions WITH_SASL_OAUTHBEARER=1) + else() + list(APPEND rdkafka_compile_definitions WITH_SASL_OAUTHBEARER=0) + endif(WITH_SASL_OAUTHBEARER) + if(ENABLE_DEVEL) + list(APPEND rdkafka_compile_definitions ENABLE_DEVEL=1) + else() + list(APPEND rdkafka_compile_definitions ENABLE_DEVEL=0) + endif(ENABLE_DEVEL) + if(WITH_PLUGINS) + list(APPEND rdkafka_compile_definitions WITH_PLUGINS=1) + else() + list(APPEND rdkafka_compile_definitions WITH_PLUGINS=0) + endif(WITH_PLUGINS) +endif() + +if(RDKAFKA_BUILD_STATIC) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(RDKAFKA_BUILD_MODE STATIC) +else() + set(RDKAFKA_BUILD_MODE SHARED) +endif() + +add_library(rdkafka ${RDKAFKA_BUILD_MODE} ${sources}) +if(NOT RDKAFKA_BUILD_STATIC) + set_property(TARGET rdkafka PROPERTY SOVERSION ${LIBVER}) +endif() + +if(MINGW) + # Target Windows 8.1 to match the VS projects (MinGW defaults to an older WinAPI version) + list(APPEND rdkafka_compile_definitions WINVER=0x0603 _WIN32_WINNT=0x0603 UNICODE) +endif(MINGW) + +# Support '#include <rdkafka.h>' +target_include_directories(rdkafka PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) +target_compile_definitions(rdkafka PUBLIC ${rdkafka_compile_definitions}) +if(RDKAFKA_BUILD_STATIC) + target_compile_definitions(rdkafka PUBLIC LIBRDKAFKA_STATICLIB) +endif() + +# We need 'dummy' directory to support `#include "../config.h"` path +set(dummy "${GENERATED_DIR}/dummy") +file(MAKE_DIRECTORY "${dummy}") +target_include_directories(rdkafka PUBLIC "$<BUILD_INTERFACE:${dummy}>") + +if(WITH_CURL) + find_package(CURL REQUIRED) + target_include_directories(rdkafka PUBLIC ${CURL_INCLUDE_DIRS}) + target_link_libraries(rdkafka PUBLIC ${CURL_LIBRARIES}) +endif() + +if(WITH_HDRHISTOGRAM) + target_link_libraries(rdkafka PUBLIC m) +endif() + +if(WITH_ZLIB) + find_package(ZLIB REQUIRED) + target_include_directories(rdkafka PRIVATE ${ZLIB_INCLUDE_DIRS}) + target_link_libraries(rdkafka PUBLIC ZLIB::ZLIB) +endif() + +if(WITH_ZSTD) + target_link_libraries(rdkafka PRIVATE ${ZSTD_LIBRARY}) + target_include_directories(rdkafka PRIVATE ${ZSTD_INCLUDE_DIR}) + message(STATUS "Found ZSTD: ${ZSTD_LIBRARY}") +endif() + +if(WITH_SSL) + if(WITH_BUNDLED_SSL) # option from 'h2o' parent project + if(NOT TARGET bundled-ssl) + message(FATAL_ERROR "bundled-ssl target not exist") + endif() + target_include_directories(rdkafka BEFORE PRIVATE ${BUNDLED_SSL_INCLUDE_DIR}) + target_link_libraries(rdkafka PUBLIC ${BUNDLED_SSL_LIBRARIES}) + add_dependencies(rdkafka bundled-ssl) + else() + find_package(OpenSSL REQUIRED) + target_include_directories(rdkafka PRIVATE ${OPENSSL_INCLUDE_DIR}) + target_link_libraries(rdkafka PUBLIC OpenSSL::SSL OpenSSL::Crypto) + get_target_property(OPENSSL_TARGET_TYPE OpenSSL::SSL TYPE) + if(OPENSSL_CRYPTO_LIBRARY MATCHES "\\.a$") + target_compile_definitions(rdkafka PUBLIC WITH_STATIC_LIB_libcrypto) + endif() + endif() +endif() + +if(LINK_ATOMIC) + target_link_libraries(rdkafka PUBLIC "-latomic") +endif() + +find_package(Threads REQUIRED) +target_link_libraries(rdkafka PUBLIC Threads::Threads) + +if(WITH_SASL_CYRUS) + target_include_directories(rdkafka PRIVATE ${SASL_INCLUDE_DIRS}) + target_link_libraries(rdkafka PUBLIC ${SASL_LIBRARIES}) +endif() + +if(WITH_LIBDL) + target_link_libraries(rdkafka PUBLIC ${CMAKE_DL_LIBS}) +endif() + +if(WITH_LZ4_EXT) + target_include_directories(rdkafka PRIVATE ${LZ4_INCLUDE_DIRS}) + target_link_libraries(rdkafka PUBLIC LZ4::LZ4) +endif() + +if(WIN32) + if(WITH_SSL) + target_link_libraries(rdkafka PUBLIC crypt32) + endif() + + target_link_libraries(rdkafka PUBLIC ws2_32 secur32) + if(NOT RDKAFKA_BUILD_STATIC) + target_compile_definitions(rdkafka PRIVATE LIBRDKAFKA_EXPORTS) + endif() +endif() + +# Generate pkg-config file +set(PKG_CONFIG_VERSION "${PROJECT_VERSION}") +set(PKG_CONFIG_REQUIRES "") +if (WIN32) + set(PKG_CONFIG_LIBS_PRIVATE "-lws2_32 -lsecur32 -lcrypt32") +else() + set(PKG_CONFIG_LIBS_PRIVATE "-lpthread") + find_library(RT_LIBRARY rt) + if(RT_LIBRARY) + string(APPEND PKG_CONFIG_LIBS_PRIVATE " -lrt") + endif() + + if(WITH_LIBDL) + string(APPEND PKG_CONFIG_LIBS_PRIVATE " -ldl") + endif() + + if(WITH_HDRHISTOGRAM) + string(APPEND PKG_CONFIG_LIBS_PRIVATE " -lm") + endif() +endif() + +if(NOT RDKAFKA_BUILD_STATIC) + set(PKG_CONFIG_NAME "librdkafka") + set(PKG_CONFIG_DESCRIPTION "The Apache Kafka C/C++ library") + + if(WITH_CURL) + string(APPEND PKG_CONFIG_REQUIRES "curl ") + endif() + + if(WITH_ZLIB) + string(APPEND PKG_CONFIG_REQUIRES "zlib ") + endif() + + if(WITH_SSL) + string(APPEND PKG_CONFIG_REQUIRES "libssl ") + endif() + + if(WITH_SASL_CYRUS) + string(APPEND PKG_CONFIG_REQUIRES "libsasl2 ") + endif() + + if(WITH_ZSTD) + string(APPEND PKG_CONFIG_REQUIRES "libzstd ") + endif() + + if(WITH_LZ4_EXT) + string(APPEND PKG_CONFIG_REQUIRES "liblz4 ") + endif() + + set(PKG_CONFIG_CFLAGS "-I\${includedir}") + set(PKG_CONFIG_LIBS "-L\${libdir} -lrdkafka") + + configure_file( + "../packaging/cmake/rdkafka.pc.in" + "${GENERATED_DIR}/rdkafka.pc" + @ONLY + ) + install( + FILES ${GENERATED_DIR}/rdkafka.pc + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + ) +else() + set(PKG_CONFIG_NAME "librdkafka-static") + set(PKG_CONFIG_DESCRIPTION "The Apache Kafka C/C++ library (static)") + set(PKG_CONFIG_CFLAGS "-I\${includedir} -DLIBRDKAFKA_STATICLIB") + set(PKG_CONFIG_LIBS "-L\${libdir} \${libdir}/librdkafka.a") + string(APPEND PKG_CONFIG_LIBS " ${PKG_CONFIG_LIBS_PRIVATE}") + set(PKG_CONFIG_LIBS_PRIVATE "") + configure_file( + "../packaging/cmake/rdkafka.pc.in" + "${GENERATED_DIR}/rdkafka-static.pc" + @ONLY + ) + install( + FILES ${GENERATED_DIR}/rdkafka-static.pc + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + ) +endif() + +install( + TARGETS rdkafka + EXPORT "${targets_export_name}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) + +install( + FILES "rdkafka.h" "rdkafka_mock.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/librdkafka" +) |