aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/librdkafka
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/librdkafka
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/librdkafka')
-rw-r--r--vcpkg/ports/librdkafka/fix_oauthbearer_check.patch13
-rw-r--r--vcpkg/ports/librdkafka/lz4.patch27
-rw-r--r--vcpkg/ports/librdkafka/portfile.cmake77
-rw-r--r--vcpkg/ports/librdkafka/usage4
-rw-r--r--vcpkg/ports/librdkafka/vcpkg-cmake-wrapper.cmake45
-rw-r--r--vcpkg/ports/librdkafka/vcpkg.json51
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"
+ ]
+ }
+ }
+}