diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/librdkafka | |
Diffstat (limited to 'vcpkg/ports/librdkafka')
| -rw-r--r-- | vcpkg/ports/librdkafka/fix_oauthbearer_check.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/librdkafka/lz4.patch | 27 | ||||
| -rw-r--r-- | vcpkg/ports/librdkafka/portfile.cmake | 77 | ||||
| -rw-r--r-- | vcpkg/ports/librdkafka/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/librdkafka/vcpkg-cmake-wrapper.cmake | 45 | ||||
| -rw-r--r-- | vcpkg/ports/librdkafka/vcpkg.json | 51 |
6 files changed, 217 insertions, 0 deletions
diff --git a/vcpkg/ports/librdkafka/fix_oauthbearer_check.patch b/vcpkg/ports/librdkafka/fix_oauthbearer_check.patch new file mode 100644 index 0000000..e7afcc3 --- /dev/null +++ b/vcpkg/ports/librdkafka/fix_oauthbearer_check.patch @@ -0,0 +1,13 @@ +diff --git a/src/rdkafka_conf.c b/src/rdkafka_conf.c +index 92f3cb5..c11cda9 100644 +--- a/src/rdkafka_conf.c ++++ b/src/rdkafka_conf.c +@@ -56,7 +56,7 @@ + #include <windows.h> + #endif + +-#ifdef WITH_OAUTHBEARER_OIDC ++#if WITH_OAUTHBEARER_OIDC + #include <curl/curl.h> + #endif + diff --git a/vcpkg/ports/librdkafka/lz4.patch b/vcpkg/ports/librdkafka/lz4.patch new file mode 100644 index 0000000..29dd103 --- /dev/null +++ b/vcpkg/ports/librdkafka/lz4.patch @@ -0,0 +1,27 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7f3dd0f..168742c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -169,7 +169,8 @@ endif() + option(ENABLE_LZ4_EXT "Enable external LZ4 library support" ON) + set(WITH_LZ4_EXT OFF) + if(ENABLE_LZ4_EXT) +- find_package(LZ4) ++ find_package(LZ4 NAMES lz4 REQUIRED) ++ add_library(LZ4::LZ4 ALIAS lz4::lz4) + if(LZ4_FOUND) + set(WITH_LZ4_EXT ON) + list(APPEND BUILT_WITH "LZ4_EXT") +diff --git a/packaging/cmake/Config.cmake.in b/packaging/cmake/Config.cmake.in +index 8a6522b..5f0bf25 100644 +--- a/packaging/cmake/Config.cmake.in ++++ b/packaging/cmake/Config.cmake.in +@@ -28,7 +28,7 @@ if(@WITH_SSL@) + endif() + + if(@WITH_LZ4_EXT@) +- find_dependency(LZ4) ++ find_dependency(LZ4 NAMES lz4) + endif() + + find_dependency(Threads) diff --git a/vcpkg/ports/librdkafka/portfile.cmake b/vcpkg/ports/librdkafka/portfile.cmake new file mode 100644 index 0000000..904f0d8 --- /dev/null +++ b/vcpkg/ports/librdkafka/portfile.cmake @@ -0,0 +1,77 @@ +vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO confluentinc/librdkafka
+ REF "v${VERSION}"
+ SHA512 2fe6754e7d2a846f24be39d11bbfbdcc694873e7b9e6fabbe34d150bdd1aef3778360f5c5ae3973374e9e73a6e542468fa58d28aa1fac3289d4dacfdca1c1c1c
+ HEAD_REF master
+ PATCHES
+ lz4.patch
+ # remove it when https://github.com/confluentinc/librdkafka/pull/5136 is merged
+ fix_oauthbearer_check.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ curl WITH_CURL
+ sasl WITH_SASL
+ sasl WITH_SASL_CYRUS
+ ssl WITH_SSL
+ ssl WITH_SASL_OAUTHBEARER
+ ssl WITH_SASL_SCRAM
+ zlib WITH_ZLIB
+ zstd WITH_ZSTD
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DRDKAFKA_BUILD_STATIC=${RDKAFKA_BUILD_STATIC}
+ -DRDKAFKA_BUILD_EXAMPLES=OFF
+ -DRDKAFKA_BUILD_TESTS=OFF
+ -DWITH_BUNDLED_SSL=OFF
+ ${FEATURE_OPTIONS}
+ OPTIONS_DEBUG
+ -DENABLE_SHAREDPTR_DEBUG=ON
+ -DENABLE_DEVEL=ON
+ -DENABLE_REFCNT_DEBUG=OFF
+ -DENABLE_SHAREDPTR_DEBUG=ON
+ -DWITHOUT_OPTIMIZATION=ON
+ OPTIONS_RELEASE
+ -DENABLE_SHAREDPTR_DEBUG=OFF
+ -DENABLE_DEVEL=OFF
+ -DENABLE_REFCNT_DEBUG=OFF
+ -DENABLE_SHAREDPTR_DEBUG=OFF
+ -DWITHOUT_OPTIMIZATION=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_copy_pdbs()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/RdKafka" PACKAGE_NAME "rdkafka")
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/rdkafka/FindLZ4.cmake"
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ foreach(hdr rdkafka.h rdkafkacpp.h)
+ vcpkg_replace_string(
+ "${CURRENT_PACKAGES_DIR}/include/librdkafka/${hdr}"
+ "#ifdef LIBRDKAFKA_STATICLIB"
+ "#if 1 // #ifdef LIBRDKAFKA_STATICLIB"
+ )
+ endforeach()
+endif()
+
+# Handle copyright
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES.txt" )
+
+# Install usage
+configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY)
+
+vcpkg_fixup_pkgconfig()
diff --git a/vcpkg/ports/librdkafka/usage b/vcpkg/ports/librdkafka/usage new file mode 100644 index 0000000..4f00a6a --- /dev/null +++ b/vcpkg/ports/librdkafka/usage @@ -0,0 +1,4 @@ +The package @PORT@:@TARGET_TRIPLET@ provides CMake targets:
+
+ find_package(RdKafka CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE RdKafka::rdkafka RdKafka::rdkafka++)
diff --git a/vcpkg/ports/librdkafka/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/librdkafka/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..6f32a45 --- /dev/null +++ b/vcpkg/ports/librdkafka/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,45 @@ +include(SelectLibraryConfigurations)
+
+list(REMOVE_ITEM ARGS "NO_MODULE")
+list(REMOVE_ITEM ARGS "CONFIG")
+list(REMOVE_ITEM ARGS "MODULE")
+
+_find_package(${ARGS} CONFIG)
+
+if(RdKafka_FOUND)
+ if(TARGET RdKafka::rdkafka)
+ set(TARGET_NAME RdKafka::rdkafka)
+ else(TARGET RdKafka::rdkafka++)
+ set(TARGET_NAME RdKafka::rdkafka++)
+ endif()
+
+ if(TARGET ${TARGET_NAME} AND NOT DEFINED RdKafka_INCLUDE_DIRS)
+ get_target_property(_RdKafka_INCLUDE_DIRS ${TARGET_NAME} INTERFACE_INCLUDE_DIRECTORIES)
+ get_target_property(_RdKafka_LINK_LIBRARIES ${TARGET_NAME} INTERFACE_LINK_LIBRARIES)
+
+ if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_IMPLIB_DEBUG)
+ get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_IMPLIB_RELEASE)
+ endif()
+
+ if(NOT _RdKafka_LIBRARY_DEBUG AND NOT _RdKafka_LIBRARY_RELEASE)
+ get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_LOCATION_DEBUG)
+ get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_LOCATION_RELEASE)
+ endif()
+
+ set(RdKafka_INCLUDE_DIR "${_RdKafka_INCLUDE_DIRS}")
+ set(RdKafka_LIBRARY_DEBUG "${_RdKafka_LIBRARY_DEBUG}")
+ set(RdKafka_LIBRARY_RELEASE "${_RdKafka_LIBRARY_RELEASE}")
+
+ select_library_configurations(RdKafka)
+
+ list(APPEND RdKafka_LIBRARIES ${_RdKafka_LINK_LIBRARIES})
+ list(APPEND RdKafka_LIBRARY ${_RdKafka_LINK_LIBRARIES})
+
+ unset(_RdKafka_INCLUDE_DIRS)
+ unset(_RdKafka_LINK_LIBRARIES)
+ unset(_RdKafka_LIBRARY_DEBUG)
+ unset(_RdKafka_LIBRARY_DEBUG)
+ unset(TARGET_NAME)
+ endif()
+endif()
\ No newline at end of file diff --git a/vcpkg/ports/librdkafka/vcpkg.json b/vcpkg/ports/librdkafka/vcpkg.json new file mode 100644 index 0000000..c55196b --- /dev/null +++ b/vcpkg/ports/librdkafka/vcpkg.json @@ -0,0 +1,51 @@ +{ + "name": "librdkafka", + "version": "2.12.0", + "description": "The Apache Kafka C/C++ library", + "homepage": "https://github.com/confluentinc/librdkafka", + "license": null, + "supports": "!uwp", + "dependencies": [ + "lz4", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "curl": { + "description": "Build with curl", + "dependencies": [ + "curl" + ] + }, + "sasl": { + "description": "Build with sasl/gssapi", + "dependencies": [ + "cyrus-sasl" + ] + }, + "ssl": { + "description": "Build with OpenSSL", + "dependencies": [ + "openssl" + ] + }, + "zlib": { + "description": "Build with zlib", + "dependencies": [ + "zlib" + ] + }, + "zstd": { + "description": "Build with zstd", + "dependencies": [ + "zstd" + ] + } + } +} |