summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt')
-rw-r--r--fluent-bit/lib/librdkafka-2.1.0/CMakeLists.txt291
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 000000000..7f3dd0fc6
--- /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()