aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/librdkafka/CONTROL2
-rw-r--r--ports/librdkafka/FindZstd.cmake31
-rw-r--r--ports/librdkafka/find_zstd.patch28
-rw-r--r--ports/librdkafka/portfile.cmake24
4 files changed, 82 insertions, 3 deletions
diff --git a/ports/librdkafka/CONTROL b/ports/librdkafka/CONTROL
index 76b8e7683..2612ead87 100644
--- a/ports/librdkafka/CONTROL
+++ b/ports/librdkafka/CONTROL
@@ -1,5 +1,5 @@
Source: librdkafka
-Version: 2019-04-16
+Version: 2019-04-30
Description: The Apache Kafka C/C++ library
Default-Features: ssl
diff --git a/ports/librdkafka/FindZstd.cmake b/ports/librdkafka/FindZstd.cmake
new file mode 100644
index 000000000..415f61324
--- /dev/null
+++ b/ports/librdkafka/FindZstd.cmake
@@ -0,0 +1,31 @@
+#
+# - Try to find Facebook zstd library
+# This will define
+# ZSTD_FOUND
+# ZSTD_INCLUDE_DIR
+# ZSTD_LIBRARY
+#
+
+find_path(ZSTD_INCLUDE_DIR NAMES zstd.h)
+
+find_library(ZSTD_LIBRARY_DEBUG NAMES zstdd zstd_staticd)
+find_library(ZSTD_LIBRARY_RELEASE NAMES zstd zstd_static)
+
+include(SelectLibraryConfigurations)
+SELECT_LIBRARY_CONFIGURATIONS(ZSTD)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+ ZSTD DEFAULT_MSG
+ ZSTD_LIBRARY ZSTD_INCLUDE_DIR
+)
+
+if (ZSTD_FOUND)
+ message(STATUS "Found Zstd: ${ZSTD_LIBRARY}")
+endif()
+
+mark_as_advanced(ZSTD_INCLUDE_DIR ZSTD_LIBRARY)
+
+
+# References:
+# https://github.com/facebook/folly/blob/master/CMake/FindZstd.cmake
diff --git a/ports/librdkafka/find_zstd.patch b/ports/librdkafka/find_zstd.patch
new file mode 100644
index 000000000..8d14a5b73
--- /dev/null
+++ b/ports/librdkafka/find_zstd.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 76e92b70..38b7d5a9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,8 +55,8 @@ endif()
+ # }
+
+ # ZSTD {
+-find_library (ZSTD zstd)
+-if(ZSTD)
++find_package(Zstd)
++if(ZSTD_FOUND)
+ set(with_zstd_default ON)
+ else()
+ set(with_zstd_default OFF)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index aecb3917..52ba9fa4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -169,8 +169,6 @@ if(WITH_ZLIB)
+ endif()
+
+ if(WITH_ZSTD)
+- find_library (ZSTD_LIBRARY zstd)
+- find_path (ZSTD_INCLUDE_DIR NAMES zstd.h)
+ target_link_libraries(rdkafka PUBLIC ${ZSTD_LIBRARY})
+ target_include_directories(rdkafka PUBLIC ${ZSTD_INCLUDE_DIR})
+ message(STATUS "Found ZSTD: ${ZSTD_LIBRARY}")
diff --git a/ports/librdkafka/portfile.cmake b/ports/librdkafka/portfile.cmake
index 2f9446ad7..3acdbbf53 100644
--- a/ports/librdkafka/portfile.cmake
+++ b/ports/librdkafka/portfile.cmake
@@ -3,9 +3,11 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO edenhill/librdkafka
- REF 384565a66b85efdce413d2e22f60e72f1b7d739a
- SHA512 c6ba0f6246465526c3ecd7c23bf24466863a0fbe6c34eb7d89a6ee2d7b28a4e5daba0d85e3d5774f7c65c7b4e8c9c829a458f83f7540d480fed931c7fbffd5d2
+ REF 9b3fce7b882b43302fb983d0e0e555225e672f92
+ SHA512 7edda198fb10a3a005fe4f47af55940051cdb7a350b8f06e7186e70ee9f3b44c7468134f42867303184a807a274507e4fa5b2f7997cd2fd5876993de04949140
HEAD_REF master
+ PATCHES
+ find_zstd.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC)
@@ -34,6 +36,11 @@ else()
set(WITH_ZSTD OFF)
endif()
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/FindZstd.cmake
+ DESTINATION ${SOURCE_PATH}/packaging/cmake/Modules
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -67,6 +74,19 @@ vcpkg_fixup_cmake_targets(
TARGET_PATH share/rdkafka
)
+if(ENABLE_LZ4_EXT)
+ vcpkg_replace_string(
+ ${CURRENT_PACKAGES_DIR}/share/rdkafka/RdKafkaConfig.cmake
+ "find_dependency(LZ4)"
+ "include(\"\${CMAKE_CURRENT_LIST_DIR}/FindLZ4.cmake\")\n find_dependency(LZ4)"
+ )
+endif()
+
+file(COPY
+ ${CMAKE_CURRENT_LIST_DIR}/FindZstd.cmake
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/rdkafka
+)
+
file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include
${CURRENT_PACKAGES_DIR}/debug/share