Skip to content

Commit e6f8e0a

Browse files
authored
GH-132983: Build _zstd on Windows (#133366)
1 parent ea59873 commit e6f8e0a

17 files changed

+454
-9
lines changed

Misc/externals.spdx.json

+21
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,27 @@
190190
"name": "zlib-ng",
191191
"primaryPackagePurpose": "SOURCE",
192192
"versionInfo": "2.2.4"
193+
},
194+
{
195+
"SPDXID": "SPDXRef-PACKAGE-zstd",
196+
"checksums": [
197+
{
198+
"algorithm": "SHA256",
199+
"checksumValue": "f24b52470d12f466e9fa4fcc94e6c530625ada51d7b36de7fdc6ed7e6f499c8e"
200+
}
201+
],
202+
"downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/zstd-1.5.7.tar.gz",
203+
"externalRefs": [
204+
{
205+
"referenceCategory": "SECURITY",
206+
"referenceLocator": "cpe:2.3:a:facebook:zstandard:1.5.7:*:*:*:*:*:*:*",
207+
"referenceType": "cpe23Type"
208+
}
209+
],
210+
"licenseConcluded": "NOASSERTION",
211+
"name": "zstd",
212+
"primaryPackagePurpose": "SOURCE",
213+
"versionInfo": "1.5.7"
193214
}
194215
],
195216
"spdxVersion": "SPDX-2.3"

Modules/Setup

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@ PYTHONPATH=$(COREPYTHONPATH)
200200
#_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT
201201
#_gdbm _gdbmmodule.c -lgdbm
202202
#_lzma _lzmamodule.c -llzma
203-
#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
204203
#_uuid _uuidmodule.c -luuid
204+
#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
205205
#zlib zlibmodule.c -lz
206206

207207
# The readline module also supports libeditline (-leditline).

Modules/Setup.stdlib.in

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
@MODULE_BINASCII_TRUE@binascii binascii.c
7070
@MODULE__BZ2_TRUE@_bz2 _bz2module.c
7171
@MODULE__LZMA_TRUE@_lzma _lzmamodule.c
72-
@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zdict.c _zstd/compressor.c _zstd/decompressor.c
72+
@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zstddict.c _zstd/compressor.c _zstd/decompressor.c
7373
@MODULE_ZLIB_TRUE@zlib zlibmodule.c
7474

7575
# dbm/gdbm
File renamed without changes.

Modules/_zstd/zdict.c renamed to Modules/_zstd/zstddict.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ _zstd_ZstdDict___init___impl(ZstdDict *self, PyObject *dict_content,
136136
}
137137

138138
#define clinic_state() (get_zstd_state(type))
139-
#include "clinic/zdict.c.h"
139+
#include "clinic/zstddict.c.h"
140140
#undef clinic_state
141141

142142
PyDoc_STRVAR(ZstdDict_dictid_doc,

PCbuild/_zstd.vcxproj

+176
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|ARM">
5+
<Configuration>Debug</Configuration>
6+
<Platform>ARM</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Debug|ARM64">
9+
<Configuration>Debug</Configuration>
10+
<Platform>ARM64</Platform>
11+
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Debug|Win32">
13+
<Configuration>Debug</Configuration>
14+
<Platform>Win32</Platform>
15+
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Debug|x64">
17+
<Configuration>Debug</Configuration>
18+
<Platform>x64</Platform>
19+
</ProjectConfiguration>
20+
<ProjectConfiguration Include="PGInstrument|ARM">
21+
<Configuration>PGInstrument</Configuration>
22+
<Platform>ARM</Platform>
23+
</ProjectConfiguration>
24+
<ProjectConfiguration Include="PGInstrument|ARM64">
25+
<Configuration>PGInstrument</Configuration>
26+
<Platform>ARM64</Platform>
27+
</ProjectConfiguration>
28+
<ProjectConfiguration Include="PGInstrument|Win32">
29+
<Configuration>PGInstrument</Configuration>
30+
<Platform>Win32</Platform>
31+
</ProjectConfiguration>
32+
<ProjectConfiguration Include="PGInstrument|x64">
33+
<Configuration>PGInstrument</Configuration>
34+
<Platform>x64</Platform>
35+
</ProjectConfiguration>
36+
<ProjectConfiguration Include="PGUpdate|ARM">
37+
<Configuration>PGUpdate</Configuration>
38+
<Platform>ARM</Platform>
39+
</ProjectConfiguration>
40+
<ProjectConfiguration Include="PGUpdate|ARM64">
41+
<Configuration>PGUpdate</Configuration>
42+
<Platform>ARM64</Platform>
43+
</ProjectConfiguration>
44+
<ProjectConfiguration Include="PGUpdate|Win32">
45+
<Configuration>PGUpdate</Configuration>
46+
<Platform>Win32</Platform>
47+
</ProjectConfiguration>
48+
<ProjectConfiguration Include="PGUpdate|x64">
49+
<Configuration>PGUpdate</Configuration>
50+
<Platform>x64</Platform>
51+
</ProjectConfiguration>
52+
<ProjectConfiguration Include="Release|ARM">
53+
<Configuration>Release</Configuration>
54+
<Platform>ARM</Platform>
55+
</ProjectConfiguration>
56+
<ProjectConfiguration Include="Release|ARM64">
57+
<Configuration>Release</Configuration>
58+
<Platform>ARM64</Platform>
59+
</ProjectConfiguration>
60+
<ProjectConfiguration Include="Release|Win32">
61+
<Configuration>Release</Configuration>
62+
<Platform>Win32</Platform>
63+
</ProjectConfiguration>
64+
<ProjectConfiguration Include="Release|x64">
65+
<Configuration>Release</Configuration>
66+
<Platform>x64</Platform>
67+
</ProjectConfiguration>
68+
</ItemGroup>
69+
<PropertyGroup Label="Globals">
70+
<ProjectGuid>{07029b86-f3e9-443e-86fb-78aa6d47fed1}</ProjectGuid>
71+
<RootNamespace>_zstd</RootNamespace>
72+
<Keyword>Win32Proj</Keyword>
73+
</PropertyGroup>
74+
<Import Project="python.props" />
75+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
76+
<PropertyGroup Label="Configuration">
77+
<ConfigurationType>DynamicLibrary</ConfigurationType>
78+
<CharacterSet>NotSet</CharacterSet>
79+
</PropertyGroup>
80+
<PropertyGroup Label="Configuration" />
81+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
82+
<PropertyGroup>
83+
<TargetExt>$(PyStdlibPydExt)</TargetExt>
84+
</PropertyGroup>
85+
<ImportGroup Label="ExtensionSettings">
86+
</ImportGroup>
87+
<ImportGroup Label="PropertySheets">
88+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
89+
<Import Project="pyproject.props" />
90+
</ImportGroup>
91+
<PropertyGroup Label="UserMacros" />
92+
<PropertyGroup>
93+
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
94+
</PropertyGroup>
95+
<ItemDefinitionGroup>
96+
<ClCompile>
97+
<PreprocessorDefinitions>WIN32;ZSTD_MULTITHREAD=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
98+
<AdditionalIncludeDirectories>$(zstdDir)lib\;$(zstdDir)lib\common;$(zstdDir)lib\compress;$(zstdDir)lib\decompress;$(zstdDir)lib\dictBuilder;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
99+
</ClCompile>
100+
</ItemDefinitionGroup>
101+
<ItemGroup>
102+
<ClCompile Include="..\Modules\_zstd\_zstdmodule.c" />
103+
<ClCompile Include="..\Modules\_zstd\compressor.c" />
104+
<ClCompile Include="..\Modules\_zstd\decompressor.c" />
105+
<ClCompile Include="..\Modules\_zstd\zstddict.c" />
106+
<ClCompile Include="$(zstdDir)lib\common\debug.c" />
107+
<ClCompile Include="$(zstdDir)lib\common\entropy_common.c" />
108+
<ClCompile Include="$(zstdDir)lib\common\error_private.c" />
109+
<ClCompile Include="$(zstdDir)lib\common\fse_decompress.c" />
110+
<ClCompile Include="$(zstdDir)lib\common\pool.c" />
111+
<ClCompile Include="$(zstdDir)lib\common\threading.c" />
112+
<ClCompile Include="$(zstdDir)lib\common\xxhash.c" />
113+
<ClCompile Include="$(zstdDir)lib\common\zstd_common.c" />
114+
<ClCompile Include="$(zstdDir)lib\compress\fse_compress.c" />
115+
<ClCompile Include="$(zstdDir)lib\compress\hist.c" />
116+
<ClCompile Include="$(zstdDir)lib\compress\huf_compress.c" />
117+
<ClCompile Include="$(zstdDir)lib\compress\zstd_compress.c" />
118+
<ClCompile Include="$(zstdDir)lib\compress\zstd_compress_literals.c" />
119+
<ClCompile Include="$(zstdDir)lib\compress\zstd_compress_sequences.c" />
120+
<ClCompile Include="$(zstdDir)lib\compress\zstd_compress_superblock.c" />
121+
<ClCompile Include="$(zstdDir)lib\compress\zstd_double_fast.c" />
122+
<ClCompile Include="$(zstdDir)lib\compress\zstd_fast.c" />
123+
<ClCompile Include="$(zstdDir)lib\compress\zstd_lazy.c" />
124+
<ClCompile Include="$(zstdDir)lib\compress\zstd_ldm.c" />
125+
<ClCompile Include="$(zstdDir)lib\compress\zstd_opt.c" />
126+
<ClCompile Include="$(zstdDir)lib\compress\zstd_preSplit.c" />
127+
<ClCompile Include="$(zstdDir)lib\compress\zstdmt_compress.c" />
128+
<ClCompile Include="$(zstdDir)lib\decompress\huf_decompress.c" />
129+
<ClCompile Include="$(zstdDir)lib\decompress\zstd_ddict.c" />
130+
<ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress.c" />
131+
<ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress_block.c" />
132+
<ClCompile Include="$(zstdDir)lib\dictBuilder\cover.c" />
133+
<ClCompile Include="$(zstdDir)lib\dictBuilder\divsufsort.c" />
134+
<ClCompile Include="$(zstdDir)lib\dictBuilder\fastcover.c" />
135+
<ClCompile Include="$(zstdDir)lib\dictBuilder\zdict.c" />
136+
</ItemGroup>
137+
<ItemGroup>
138+
<ClInclude Include="..\Modules\_zstd\_zstdmodule.h" />
139+
<ClInclude Include="..\Modules\_zstd\buffer.h" />
140+
<ClInclude Include="$(zstdDir)lib\common\bitstream.h" />
141+
<ClInclude Include="$(zstdDir)lib\common\error_private.h" />
142+
<ClInclude Include="$(zstdDir)lib\common\fse.h" />
143+
<ClInclude Include="$(zstdDir)lib\common\huf.h" />
144+
<ClInclude Include="$(zstdDir)lib\common\mem.h" />
145+
<ClInclude Include="$(zstdDir)lib\common\pool.h" />
146+
<ClInclude Include="$(zstdDir)lib\common\threading.h" />
147+
<ClInclude Include="$(zstdDir)lib\common\xxhash.h" />
148+
<ClInclude Include="$(zstdDir)lib\common\zstd_internal.h" />
149+
<ClInclude Include="$(zstdDir)lib\compress\zstd_compress.h" />
150+
<ClInclude Include="$(zstdDir)lib\compress\zstd_compress_literals.h" />
151+
<ClInclude Include="$(zstdDir)lib\compress\zstd_compress_sequences.h" />
152+
<ClInclude Include="$(zstdDir)lib\compress\zstd_compress_superblock.h" />
153+
<ClInclude Include="$(zstdDir)lib\compress\zstd_cwksp.h" />
154+
<ClInclude Include="$(zstdDir)lib\compress\zstd_double_fast.h" />
155+
<ClInclude Include="$(zstdDir)lib\compress\zstd_fast.h" />
156+
<ClInclude Include="$(zstdDir)lib\compress\zstd_lazy.h" />
157+
<ClInclude Include="$(zstdDir)lib\compress\zstd_ldm.h" />
158+
<ClInclude Include="$(zstdDir)lib\compress\zstd_opt.h" />
159+
<ClInclude Include="$(zstdDir)lib\compress\zstdmt_compress.h" />
160+
<ClInclude Include="$(zstdDir)lib\decompress\zstd_ddict.h" />
161+
<ClInclude Include="$(zstdDir)lib\zstd.h" />
162+
<ClInclude Include="$(zstdDir)lib\zstd_errors.h" />
163+
</ItemGroup>
164+
<ItemGroup>
165+
<ResourceCompile Include="..\PC\python_nt.rc" />
166+
</ItemGroup>
167+
<ItemGroup>
168+
<ProjectReference Include="pythoncore.vcxproj">
169+
<Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
170+
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
171+
</ProjectReference>
172+
</ItemGroup>
173+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
174+
<ImportGroup Label="ExtensionTargets">
175+
</ImportGroup>
176+
</Project>

0 commit comments

Comments
 (0)