diff options
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt b/fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt new file mode 100644 index 00000000..7f3dd0fc --- /dev/null +++ b/fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt @@ -0,0 +1,291 @@ +cmake_minimum_required(VERSION 3.2) + +include("packaging/cmake/parseversion.cmake") +parseversion("src/rdkafka.h") + +project(RdKafka VERSION ${RDKAFKA_VERSION}) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/packaging/cmake/Modules/") + +# Options. No 'RDKAFKA_' prefix to match old C++ code. { + +# This option doesn't affect build in fact, only C code +# (see 'rd_kafka_version_str'). In CMake the build type feature usually used +# (like Debug, Release, etc.). +option(WITHOUT_OPTIMIZATION "Disable optimization" OFF) + +option(ENABLE_DEVEL "Enable development asserts, checks, etc" OFF) +option(ENABLE_REFCNT_DEBUG "Enable refcnt debugging" OFF) +set(TRYCOMPILE_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/packaging/cmake/try_compile") +set(BUILT_WITH "CMAKE") + +# Toolchain { +list(APPEND BUILT_WITH "${CMAKE_C_COMPILER_ID}") +list(APPEND BUILT_WITH "${CMAKE_CXX_COMPILER_ID}") +# } + +# PkgConfig { +find_package(PkgConfig QUIET) +if(PkgConfig_FOUND) + set(WITH_PKGCONFIG ON) + list(APPEND BUILT_WITH "PKGCONFIG") +endif() +# } + +# LIBM { +include(CheckLibraryExists) +check_library_exists(m pow "" WITH_HDRHISTOGRAM) +if(WITH_HDRHISTOGRAM) + list(APPEND BUILT_WITH "HDRHISTOGRAM") +endif() +# } + +# ZLIB { +find_package(ZLIB QUIET) +if(ZLIB_FOUND) + set(with_zlib_default ON) +else() + set(with_zlib_default OFF) +endif() +option(WITH_ZLIB "With ZLIB" ${with_zlib_default}) +if(WITH_ZLIB) + list(APPEND BUILT_WITH "ZLIB") +endif() +# } + +# CURL { +find_package(CURL QUIET) +if(CURL_FOUND) + set(with_curl_default ON) +else() + set(with_curl_default OFF) +endif() +option(WITH_CURL "With CURL" ${with_curl_default}) +if(WITH_CURL) + list(APPEND BUILT_WITH "CURL") +endif() +# } + +# ZSTD { +find_package(ZSTD QUIET) +if(ZSTD_FOUND) + set(with_zstd_default ON) +else() + set(with_zstd_default OFF) +endif() +option(WITH_ZSTD "With ZSTD" ${with_zstd_default}) +if(WITH_ZSTD) + list(APPEND BUILT_WITH "ZSTD") +endif() +# } + +# LibDL { +try_compile( + WITH_LIBDL + "${CMAKE_CURRENT_BINARY_DIR}/try_compile" + "${TRYCOMPILE_SRC_DIR}/dlopen_test.c" + LINK_LIBRARIES "${CMAKE_DL_LIBS}" +) +if(WITH_LIBDL) + list(APPEND BUILT_WITH "LIBDL") +endif() +# } + +# WITH_PLUGINS { +if(WITH_LIBDL OR WIN32) + set(with_plugins_default ON) +else() + set(with_plugins_default OFF) +endif() +option(WITH_PLUGINS "With plugin support" ${with_plugins_default}) +if(WITH_PLUGINS) + list(APPEND BUILT_WITH "PLUGINS") +endif() +# } + +# OpenSSL { +if(WITH_BUNDLED_SSL) # option from 'h2o' parent project + set(with_ssl_default ON) +else() + find_package(OpenSSL QUIET) + if(OpenSSL_FOUND) + set(with_ssl_default ON) + else() + set(with_ssl_default OFF) + endif() +endif() +option(WITH_SSL "With SSL" ${with_ssl_default}) +if(WITH_SSL) + list(APPEND BUILT_WITH "SSL") +endif() +# } + +# SASL { +if(WIN32) + set(with_sasl_default ON) +else() + if(PkgConfig_FOUND) + pkg_check_modules(SASL libsasl2) + if(SASL_FOUND) + set(with_sasl_default ON) + else() + try_compile( + WITH_SASL_CYRUS_BOOL + "${CMAKE_CURRENT_BINARY_DIR}/try_compile" + "${TRYCOMPILE_SRC_DIR}/libsasl2_test.c" + LINK_LIBRARIES "-lsasl2" + ) + if(WITH_SASL_CYRUS_BOOL) + set(with_sasl_default ON) + set(SASL_LIBRARIES "-lsasl2") + else() + set(with_sasl_default OFF) + endif() + endif() + endif() +endif() +option(WITH_SASL "With SASL" ${with_sasl_default}) +if(WITH_SASL) + if(SASL_FOUND) + link_directories(${SASL_LIBRARY_DIRS}) + endif() + if(WITH_SSL) + set(WITH_SASL_SCRAM ON) + set(WITH_SASL_OAUTHBEARER ON) + list(APPEND BUILT_WITH "SASL_SCRAM SASL_OAUTHBEARER") + endif() + if(NOT WIN32) + set(WITH_SASL_CYRUS ON) + list(APPEND BUILT_WITH "SASL_CYRUS") + endif() +endif() +# } + +if(WITH_SSL AND WITH_CURL) + set(WITH_OAUTHBEARER_OIDC ON) +endif() + +# LZ4 { +option(ENABLE_LZ4_EXT "Enable external LZ4 library support" ON) +set(WITH_LZ4_EXT OFF) +if(ENABLE_LZ4_EXT) + find_package(LZ4) + if(LZ4_FOUND) + set(WITH_LZ4_EXT ON) + list(APPEND BUILT_WITH "LZ4_EXT") + else() + message(STATUS "Using bundled LZ4 implementation.") + endif() +endif() +# } + +option(RDKAFKA_BUILD_STATIC "Build static rdkafka library" OFF) +option(RDKAFKA_BUILD_EXAMPLES "Build examples" ON) +option(RDKAFKA_BUILD_TESTS "Build tests" ON) +if(WIN32) + option(WITHOUT_WIN32_CONFIG "Avoid including win32_config.h on cmake builds" ON) +endif(WIN32) + +# In: +# * TRYCOMPILE_SRC_DIR +# Out: +# * HAVE_ATOMICS_32 +# * HAVE_ATOMICS_32_SYNC +# * HAVE_ATOMICS_64 +# * HAVE_ATOMICS_64_SYNC +# * HAVE_REGEX +# * HAVE_STRNDUP +# * HAVE_PTHREAD_SETNAME_GNU +# * HAVE_PTHREAD_SETNAME_DARWIN +# * HAVE_PTHREAD_SETNAME_FREEBSD +# * WITH_C11THREADS +# * WITH_CRC32C_HW +# * LINK_ATOMIC +include("packaging/cmake/try_compile/rdkafka_setup.cmake") +if(WITH_C11THREADS) + list(APPEND BUILT_WITH "C11THREADS") +endif() +if(WITH_CRC32C_HW) + list(APPEND BUILT_WITH "CRC32C_HW") +endif() + +set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") + +# In: +# * WITHOUT_OPTIMIZATION +# * ENABLE_DEVEL +# * ENABLE_REFCNT_DEBUG +# * HAVE_ATOMICS_32 +# * HAVE_ATOMICS_32_SYNC +# * HAVE_ATOMICS_64 +# * HAVE_ATOMICS_64_SYNC +# * WITH_ZLIB +# * WITH_SSL +# * WITH_SASL +# * HAVE_REGEX +# * HAVE_STRNDUP +# * HAVE_PTHREAD_SETNAME_GNU +# * HAVE_PTHREAD_SETNAME_DARWIN +# * HAVE_PTHREAD_SETNAME_FREEBSD +list(APPEND BUILT_WITH "SNAPPY") +list(APPEND BUILT_WITH "SOCKEM") +string(REPLACE ";" " " BUILT_WITH "${BUILT_WITH}") +configure_file("packaging/cmake/config.h.in" "${GENERATED_DIR}/config.h") + +# Installation (https://github.com/forexample/package-example) { + +include(GNUInstallDirs) + +set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") + +set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") + +set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") +set(project_version "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") +set(targets_export_name "${PROJECT_NAME}Targets") +set(namespace "${PROJECT_NAME}::") + +include(CMakePackageConfigHelpers) + +# In: +# * targets_export_name +# * PROJECT_NAME +configure_package_config_file( + "packaging/cmake/Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION "${config_install_dir}" +) + +write_basic_package_version_file( + "${project_version}" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +install( + FILES "${project_config}" "${project_version}" "packaging/cmake/Modules/FindLZ4.cmake" + DESTINATION "${config_install_dir}" +) + +install( + EXPORT "${targets_export_name}" + NAMESPACE "${namespace}" + DESTINATION "${config_install_dir}" +) + +install( + FILES LICENSES.txt + DESTINATION "share/licenses/librdkafka" +) + +add_subdirectory(src) +add_subdirectory(src-cpp) + +if(RDKAFKA_BUILD_EXAMPLES) + add_subdirectory(examples) +endif() + +if(RDKAFKA_BUILD_TESTS) + enable_testing() + add_subdirectory(tests) +endif() |