Skip to content

Commit

Permalink
ZSTD support on Windows
Browse files Browse the repository at this point in the history
  • Loading branch information
edenhill committed Mar 5, 2019
1 parent c20d0dc commit 8a57565
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 3 deletions.
7 changes: 6 additions & 1 deletion packaging/nuget/packaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Expand All @@ -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'],
Expand Down Expand Up @@ -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:
Expand Down
4 changes: 4 additions & 0 deletions src/win32_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion win32/librdkafka.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalOptions>/SAFESEH:NO</AdditionalOptions>
<AdditionalDependencies>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</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
Expand Down Expand Up @@ -201,6 +202,7 @@
<ClCompile Include="..\src\rdkafka_aux.c" />
<ClCompile Include="..\src\rdkafka_background.c" />
<ClCompile Include="..\src\rdkafka_idempotence.c" />
<ClCompile Include="..\src\rdkafka_zstd.c" />
<ClCompile Include="..\src\rdlist.c" />
<ClCompile Include="..\src\rdlog.c" />
<ClCompile Include="..\src\rdmurmur2.c" />
Expand Down Expand Up @@ -231,11 +233,13 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="packages\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\build\native\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.targets" Condition="Exists('packages\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\build\native\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.targets')" />
<Import Project="packages\confluent.libzstd.redist.1.3.8-test8\build\native\confluent.libzstd.redist.targets" Condition="Exists('packages\confluent.libzstd.redist.1.3.8-test8\build\native\confluent.libzstd.redist.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\build\native\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.1.2.8.8\build\native\zlib.$(PlatformToolset).windesktop.msvcstl.dyn.rt-dyn.targets'))" />
<Error Condition="!Exists('packages\confluent.libzstd.redist.1.3.8-test8\build\native\confluent.libzstd.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\confluent.libzstd.redist.1.3.8-test8\build\native\confluent.libzstd.redist.targets'))" />
</Target>
</Project>
</Project>
3 changes: 2 additions & 1 deletion win32/packages.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="confluent.libzstd.redist" version="1.3.8-test8" targetFramework="native" />
<package id="zlib" version="1.2.8.8" targetFramework="Native" />
<package id="zlib.v120.windesktop.msvcstl.dyn.rt-dyn" version="1.2.8.8" targetFramework="Native" />
<package id="zlib.v140.windesktop.msvcstl.dyn.rt-dyn" version="1.2.8.8" targetFramework="Native" />
</packages>
</packages>

0 comments on commit 8a57565

Please sign in to comment.