From 8a57565d4c4f3e90b2fa9bb5c8a5466afb324d6c Mon Sep 17 00:00:00 2001 From: Magnus Edenhill Date: Mon, 4 Mar 2019 20:39:25 +0100 Subject: [PATCH] ZSTD support on Windows --- packaging/nuget/packaging.py | 7 ++++++- src/win32_config.h | 4 ++++ win32/librdkafka.vcxproj | 6 +++++- win32/packages.config | 3 ++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packaging/nuget/packaging.py b/packaging/nuget/packaging.py index cbe9996cdb..02a04b896d 100755 --- a/packaging/nuget/packaging.py +++ b/packaging/nuget/packaging.py @@ -320,6 +320,7 @@ def build (self, buildtype): [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/librdkafka.dll', 'runtimes/win-x64/native/librdkafka.dll'], [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/librdkafkacpp.dll', 'runtimes/win-x64/native/librdkafkacpp.dll'], [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/zlib.dll', 'runtimes/win-x64/native/zlib.dll'], + [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/x64/Release/libzstd.dll', 'runtimes/win-x64/native/libzstd.dll'], # matches librdkafka.{VER}.nupkg [{'arch': 'x64', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']}, 'build/native/lib/v120/x64/Release/librdkafka.lib', 'build/native/lib/win/x64/win-x64-Release/v120/librdkafka.lib'], @@ -331,6 +332,8 @@ def build (self, buildtype): [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/librdkafka.dll', 'runtimes/win-x86/native/librdkafka.dll'], [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/librdkafkacpp.dll', 'runtimes/win-x86/native/librdkafkacpp.dll'], [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/zlib.dll', 'runtimes/win-x86/native/zlib.dll'], + [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka.redist*'}, 'build/native/bin/v120/Win32/Release/libzstd.dll', 'runtimes/win-x86/native/libzstd.dll'], + # matches librdkafka.{VER}.nupkg [{'arch': 'x86', 'plat': 'win', 'fname_glob': 'librdkafka*', 'fname_excludes': ['redist', 'symbols']}, 'build/native/lib/v120/Win32/Release/librdkafka.lib', 'build/native/lib/win/x86/win-x86-Release/v120/librdkafka.lib'], @@ -411,10 +414,12 @@ def verify (self, path): "runtimes/win-x64/native/librdkafkacpp.dll", "runtimes/win-x64/native/msvcr120.dll", "runtimes/win-x64/native/zlib.dll", + "runtimes/win-x64/native/libzstd.dll", "runtimes/win-x86/native/librdkafka.dll", "runtimes/win-x86/native/librdkafkacpp.dll", "runtimes/win-x86/native/msvcr120.dll", - "runtimes/win-x86/native/zlib.dll"] + "runtimes/win-x86/native/zlib.dll", + "runtimes/win-x86/native/libzstd.dll"] missing = list() with zfile.ZFile(path, 'r') as zf: diff --git a/src/win32_config.h b/src/win32_config.h index e1ea2d152a..0b32332431 100644 --- a/src/win32_config.h +++ b/src/win32_config.h @@ -36,6 +36,10 @@ #define WITH_SSL 1 #define WITH_ZLIB 1 #define WITH_SNAPPY 1 +#define WITH_ZSTD 1 +/* zstd is linked dynamically on Windows, but the dynamic library provides + * the experimental/advanced API, just as the static builds on *nix */ +#define WITH_ZSTD_STATIC 1 #define WITH_SASL_SCRAM 1 #define ENABLE_DEVEL 0 #define WITH_PLUGINS 1 diff --git a/win32/librdkafka.vcxproj b/win32/librdkafka.vcxproj index c4694cbd59..0f072cd84d 100644 --- a/win32/librdkafka.vcxproj +++ b/win32/librdkafka.vcxproj @@ -69,6 +69,7 @@ true true true + /SAFESEH:NO kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies);libeay32MT.lib;ssleay32MT.lib @@ -201,6 +202,7 @@ + @@ -231,11 +233,13 @@ + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + - + \ No newline at end of file diff --git a/win32/packages.config b/win32/packages.config index 9d805614c2..024daef529 100644 --- a/win32/packages.config +++ b/win32/packages.config @@ -1,6 +1,7 @@  + - + \ No newline at end of file