]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-132983: Build ``_zstd`` on Windows (#133366)
authorAdam Turner <9087854+AA-Turner@users.noreply.github.com>
Mon, 5 May 2025 23:58:47 +0000 (00:58 +0100)
committerGitHub <noreply@github.com>
Mon, 5 May 2025 23:58:47 +0000 (00:58 +0100)
17 files changed:
Misc/externals.spdx.json
Modules/Setup
Modules/Setup.stdlib.in
Modules/_zstd/clinic/zstddict.c.h [moved from Modules/_zstd/clinic/zdict.c.h with 100% similarity]
Modules/_zstd/zstddict.c [moved from Modules/_zstd/zdict.c with 99% similarity]
PCbuild/_zstd.vcxproj [new file with mode: 0644]
PCbuild/_zstd.vcxproj.filters [new file with mode: 0644]
PCbuild/get_externals.bat
PCbuild/pcbuild.proj
PCbuild/pcbuild.sln
PCbuild/python.props
PCbuild/readme.txt
PCbuild/regen.targets
Tools/msi/freethreaded/freethreaded_files.wxs
Tools/msi/lib/lib_files.wxs
configure
configure.ac

index 13be10ca0392869722d3ccbc8c2cde92ebac25cf..69f3beec82ed342a5a6d1882d56c9fcb9d1b9924 100644 (file)
       "name": "zlib-ng",
       "primaryPackagePurpose": "SOURCE",
       "versionInfo": "2.2.4"
+    },
+    {
+      "SPDXID": "SPDXRef-PACKAGE-zstd",
+      "checksums": [
+        {
+          "algorithm": "SHA256",
+          "checksumValue": "f24b52470d12f466e9fa4fcc94e6c530625ada51d7b36de7fdc6ed7e6f499c8e"
+        }
+      ],
+      "downloadLocation": "https://github.com/python/cpython-source-deps/archive/refs/tags/zstd-1.5.7.tar.gz",
+      "externalRefs": [
+        {
+          "referenceCategory": "SECURITY",
+          "referenceLocator": "cpe:2.3:a:facebook:zstandard:1.5.7:*:*:*:*:*:*:*",
+          "referenceType": "cpe23Type"
+        }
+      ],
+      "licenseConcluded": "NOASSERTION",
+      "name": "zstd",
+      "primaryPackagePurpose": "SOURCE",
+      "versionInfo": "1.5.7"
     }
   ],
   "spdxVersion": "SPDX-2.3"
index 81f364abd479cbb8f457536cc2908fff1137be10..a066982df1ae866d40eb8d1f3921eee116507897 100644 (file)
@@ -200,8 +200,8 @@ PYTHONPATH=$(COREPYTHONPATH)
 #_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT
 #_gdbm _gdbmmodule.c -lgdbm
 #_lzma _lzmamodule.c -llzma
-#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
 #_uuid _uuidmodule.c -luuid
+#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
 #zlib  zlibmodule.c -lz
 
 # The readline module also supports libeditline (-leditline).
index 8b676ca69b081b725d7c25a7481b102e0bdcee67..3a38a60a152e8c59e2d09d5930f8717d8eb86006 100644 (file)
@@ -69,7 +69,7 @@
 @MODULE_BINASCII_TRUE@binascii binascii.c
 @MODULE__BZ2_TRUE@_bz2 _bz2module.c
 @MODULE__LZMA_TRUE@_lzma _lzmamodule.c
-@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zdict.c _zstd/compressor.c _zstd/decompressor.c
+@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zstddict.c _zstd/compressor.c _zstd/decompressor.c
 @MODULE_ZLIB_TRUE@zlib zlibmodule.c
 
 # dbm/gdbm
similarity index 99%
rename from Modules/_zstd/zdict.c
rename to Modules/_zstd/zstddict.c
index 28ab964a6caa87e0caa2674aee1391c63678bee7..a19224c4a6403b36ab4e16f8a70287b5044115fc 100644 (file)
@@ -136,7 +136,7 @@ _zstd_ZstdDict___init___impl(ZstdDict *self, PyObject *dict_content,
 }
 
 #define clinic_state() (get_zstd_state(type))
-#include "clinic/zdict.c.h"
+#include "clinic/zstddict.c.h"
 #undef clinic_state
 
 PyDoc_STRVAR(ZstdDict_dictid_doc,
diff --git a/PCbuild/_zstd.vcxproj b/PCbuild/_zstd.vcxproj
new file mode 100644 (file)
index 0000000..b53f93a
--- /dev/null
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|ARM">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM64">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGInstrument|ARM">
+      <Configuration>PGInstrument</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGInstrument|ARM64">
+      <Configuration>PGInstrument</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGInstrument|Win32">
+      <Configuration>PGInstrument</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGInstrument|x64">
+      <Configuration>PGInstrument</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGUpdate|ARM">
+      <Configuration>PGUpdate</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGUpdate|ARM64">
+      <Configuration>PGUpdate</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGUpdate|Win32">
+      <Configuration>PGUpdate</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="PGUpdate|x64">
+      <Configuration>PGUpdate</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM">
+      <Configuration>Release</Configuration>
+      <Platform>ARM</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM64">
+      <Configuration>Release</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{07029b86-f3e9-443e-86fb-78aa6d47fed1}</ProjectGuid>
+    <RootNamespace>_zstd</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="python.props" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Label="Configuration" />
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <PropertyGroup>
+    <TargetExt>$(PyStdlibPydExt)</TargetExt>
+  </PropertyGroup>
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="pyproject.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;ZSTD_MULTITHREAD=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(zstdDir)lib\;$(zstdDir)lib\common;$(zstdDir)lib\compress;$(zstdDir)lib\decompress;$(zstdDir)lib\dictBuilder;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\Modules\_zstd\_zstdmodule.c" />
+    <ClCompile Include="..\Modules\_zstd\compressor.c" />
+    <ClCompile Include="..\Modules\_zstd\decompressor.c" />
+    <ClCompile Include="..\Modules\_zstd\zstddict.c" />
+    <ClCompile Include="$(zstdDir)lib\common\debug.c" />
+    <ClCompile Include="$(zstdDir)lib\common\entropy_common.c" />
+    <ClCompile Include="$(zstdDir)lib\common\error_private.c" />
+    <ClCompile Include="$(zstdDir)lib\common\fse_decompress.c" />
+    <ClCompile Include="$(zstdDir)lib\common\pool.c" />
+    <ClCompile Include="$(zstdDir)lib\common\threading.c" />
+    <ClCompile Include="$(zstdDir)lib\common\xxhash.c" />
+    <ClCompile Include="$(zstdDir)lib\common\zstd_common.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\fse_compress.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\hist.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\huf_compress.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_literals.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_sequences.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_superblock.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_double_fast.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_fast.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_lazy.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_ldm.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_opt.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_preSplit.c" />
+    <ClCompile Include="$(zstdDir)lib\compress\zstdmt_compress.c" />
+    <ClCompile Include="$(zstdDir)lib\decompress\huf_decompress.c" />
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_ddict.c" />
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress.c" />
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress_block.c" />
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\cover.c" />
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\divsufsort.c" />
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\fastcover.c" />
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\zdict.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\Modules\_zstd\_zstdmodule.h" />
+    <ClInclude Include="..\Modules\_zstd\buffer.h" />
+    <ClInclude Include="$(zstdDir)lib\common\bitstream.h" />
+    <ClInclude Include="$(zstdDir)lib\common\error_private.h" />
+    <ClInclude Include="$(zstdDir)lib\common\fse.h" />
+    <ClInclude Include="$(zstdDir)lib\common\huf.h" />
+    <ClInclude Include="$(zstdDir)lib\common\mem.h" />
+    <ClInclude Include="$(zstdDir)lib\common\pool.h" />
+    <ClInclude Include="$(zstdDir)lib\common\threading.h" />
+    <ClInclude Include="$(zstdDir)lib\common\xxhash.h" />
+    <ClInclude Include="$(zstdDir)lib\common\zstd_internal.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_literals.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_sequences.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_superblock.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_cwksp.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_double_fast.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_fast.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_lazy.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_ldm.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_opt.h" />
+    <ClInclude Include="$(zstdDir)lib\compress\zstdmt_compress.h" />
+    <ClInclude Include="$(zstdDir)lib\decompress\zstd_ddict.h" />
+    <ClInclude Include="$(zstdDir)lib\zstd.h" />
+    <ClInclude Include="$(zstdDir)lib\zstd_errors.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\PC\python_nt.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="pythoncore.vcxproj">
+      <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
diff --git a/PCbuild/_zstd.vcxproj.filters b/PCbuild/_zstd.vcxproj.filters
new file mode 100644 (file)
index 0000000..d4d3606
--- /dev/null
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\zstd">
+      <UniqueIdentifier>{971714e1-ff37-4240-87bf-a36f6afe764f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\zstd">
+      <UniqueIdentifier>{deb43fb6-fa77-4c93-a333-85785fe5f68d}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\Modules\_zstd\_zstdmodule.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Modules\_zstd\compressor.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Modules\_zstd\decompressor.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Modules\_zstd\zstddict.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\debug.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\entropy_common.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\error_private.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\fse_decompress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\pool.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\threading.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\xxhash.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\common\zstd_common.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\fse_compress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\hist.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\huf_compress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_literals.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_sequences.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_superblock.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_double_fast.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_fast.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_lazy.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_ldm.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_opt.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstd_preSplit.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\compress\zstdmt_compress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\decompress\huf_decompress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_ddict.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress_block.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\cover.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\divsufsort.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\fastcover.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+    <ClCompile Include="$(zstdDir)lib\dictBuilder\zdict.c">
+      <Filter>Source Files\zstd</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\Modules\_zstd\_zstdmodule.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Modules\_zstd\buffer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\zstd.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\zstd_errors.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\bitstream.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\error_private.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\fse.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\huf.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\mem.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\pool.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\threading.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\xxhash.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\common\zstd_internal.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_literals.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_sequences.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_superblock.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_cwksp.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_double_fast.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_fast.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_lazy.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_ldm.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstd_opt.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\compress\zstdmt_compress.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+    <ClInclude Include="$(zstdDir)lib\decompress\zstd_ddict.h">
+      <Filter>Header Files\zstd</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="..\PC\python_nt.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>
index 49ace616793d8eac0236c26e1fa8f5731655d03c..e29054f5734d49f4d28f58dcf36d51c3f7f52f4b 100644 (file)
@@ -61,6 +61,7 @@ if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.15.
 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.15.0
 set libraries=%libraries%                                       xz-5.2.5
 set libraries=%libraries%                                       zlib-ng-2.2.4
+set libraries=%libraries%                                       zstd-1.5.7
 
 for %%e in (%libraries%) do (
     if exist "%EXTERNALS_DIR%\%%e" (
index da603eed1b332fa15efcb77f43baa30b4b349b59..7a5327bf016cea9d8fe59fde433907c508dcd70a 100644 (file)
@@ -69,7 +69,7 @@
     <ExtensionModules Include="_asyncio;_decimal;_elementtree;_multiprocessing;_overlapped;pyexpat;_queue;_remote_debugging;select;unicodedata;winsound;_uuid;_wmi;_zoneinfo" />
     <ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" />
     <!-- Extension modules that require external sources -->
-    <ExternalModules Include="_bz2;_lzma;_sqlite3" />
+    <ExternalModules Include="_bz2;_lzma;_sqlite3;_zstd" />
     <!-- venv launchers -->
     <Projects Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" />
     <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
index 45e46095c9942e243e4e464c49fb93e78ad303e8..7296ea75301157d80fd8b397a81c062558307da6 100644 (file)
@@ -11,6 +11,7 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcxproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}"
        ProjectSection(ProjectDependencies) = postProject
                {01FDF29A-40A1-46DF-84F5-85EBBD2A2410} = {01FDF29A-40A1-46DF-84F5-85EBBD2A2410}
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1} = {07029B86-F3E9-443E-86FB-78AA6D47FED1}
                {0E9791DB-593A-465F-98BC-681011311617} = {0E9791DB-593A-465F-98BC-681011311617}
                {0E9791DB-593A-465F-98BC-681011311618} = {0E9791DB-593A-465F-98BC-681011311618}
                {12728250-16EC-4DC6-94D7-E21DD88947F8} = {12728250-16EC-4DC6-94D7-E21DD88947F8}
@@ -165,6 +166,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib-ng", "zlib-ng.vcxproj"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_remote_debugging", "_remote_debugging.vcxproj", "{4D7C112F-3083-4D9E-9754-9341C14D9B39}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_zstd", "_zstd.vcxproj", "{07029B86-F3E9-443E-86FB-78AA6D47FED1}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|ARM = Debug|ARM
@@ -1750,6 +1753,38 @@ Global
                {4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|Win32.Build.0 = Release|Win32
                {4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|x64.ActiveCfg = Release|x64
                {4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|x64.Build.0 = Release|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM.ActiveCfg = Debug|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM.Build.0 = Debug|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM64.ActiveCfg = Debug|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM64.Build.0 = Debug|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|Win32.ActiveCfg = Debug|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|Win32.Build.0 = Debug|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|x64.ActiveCfg = Debug|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|x64.Build.0 = Debug|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM.ActiveCfg = PGInstrument|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM.Build.0 = PGInstrument|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM64.ActiveCfg = PGInstrument|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM64.Build.0 = PGInstrument|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|x64.Build.0 = PGInstrument|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM.ActiveCfg = PGUpdate|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM.Build.0 = PGUpdate|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM64.ActiveCfg = PGUpdate|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM64.Build.0 = PGUpdate|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|x64.Build.0 = PGUpdate|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM.ActiveCfg = Release|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM.Build.0 = Release|ARM
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM64.ActiveCfg = Release|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM64.Build.0 = Release|ARM64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|Win32.ActiveCfg = Release|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|Win32.Build.0 = Release|Win32
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|x64.ActiveCfg = Release|x64
+               {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
index 7cb9ad8e65b56e4a0e4411bdc71649f79863f0ae..ddc7696d2762fec962ae8170c7af9cba58dce817 100644 (file)
@@ -87,6 +87,7 @@
     <nasmDir Condition="$(nasmDir) == ''">$(ExternalsDir)\nasm-2.11.06\</nasmDir>
     <zlibDir Condition="$(zlibDir) == ''">$(ExternalsDir)\zlib-1.3.1\</zlibDir>
     <zlibNgDir Condition="$(zlibNgDir) == ''">$(ExternalsDir)\zlib-ng-2.2.4\</zlibNgDir>
+    <zstdDir Condition="$(zstdDir) == ''">$(ExternalsDir)\zstd-1.5.7\</zstdDir>
   </PropertyGroup>
 
   <PropertyGroup>
index 3bf215d907c52cbb24ad6db96464ce4055d55fd4..01e19aabdecdc7178462e001d278d05fb59b5ef3 100644 (file)
@@ -262,6 +262,10 @@ zlib-ng
 
     Sources for zlib-ng are imported unmodified into our source
     repository at https://github.com/python/cpython-source-deps.
+_zstd
+    Python wrapper for version 1.5.7 of the Zstandard compression library
+    Homepage:
+        https://facebook.github.io/zstd/
 
 
 Getting External Sources
index e7822a126c6304195cc92e38d31c64e98b6d379b..3ad177378072359a4f3730bd0c6f9937911a2754 100644 (file)
     <_LicenseSources Include="$(PySourcePath)LICENSE;
                               $(PySourcePath)PC\crtlicense.txt;
                               $(bz2Dir)LICENSE;
-                              $(libffiDir)LICENSE;" />
+                              $(libffiDir)LICENSE;
+                              $(zstdDir)\LICENSE;" />
     <_LicenseSources Include="$(opensslOutDir)LICENSE.txt" Condition="Exists('$(opensslOutDir)LICENSE.txt')" />
     <_LicenseSources Include="$(opensslOutDir)LICENSE" Condition="!Exists('$(opensslOutDir)LICENSE.txt')" />
     <_LicenseSources Include="$(tcltkDir)tcllicense.terms;
index b3ce28e7aedc84b382f1a03eed570b3256169c28..86d9a8b83f65350557a57363bfec38f6d8766e3e 100644 (file)
         </ComponentGroup>
     </Fragment>
 
-    <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic;_testclinic_limited;_tkinter ?>
+    <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_zstd;_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic;_testclinic_limited;_tkinter ?>
     <Fragment>
         <DirectoryRef Id="Lib_venv_scripts_nt__freethreaded" />
 
index b8e16b5fe238a097664ec5a8555c16566cd40c3f..8439518bcbd804be463c89de3332d13b9aa51fe3 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-    <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo ?>
+    <?define exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_zstd ?>
     <Fragment>
         <DirectoryRef Id="Lib_venv_scripts_nt" />
 
index a1069509406a34501c4d36cee88724df896138e0..383b8b53b57d925bb1dd3f70066add0639439c95 100755 (executable)
--- a/configure
+++ b/configure
@@ -29769,9 +29769,9 @@ SRCDIRS="\
   Modules/_testinternalcapi \
   Modules/_testlimitedcapi \
   Modules/_xxtestfuzz \
+  Modules/_zstd \
   Modules/cjkcodecs \
   Modules/expat \
-  Modules/_zstd \
   Objects \
   Objects/mimalloc \
   Objects/mimalloc/prim \
index 4efd0328691d19edf7210bc842e38d8de73142ac..2c77f3ae9fee58b9f420733fc9bd8a3dde2a4e02 100644 (file)
@@ -7119,9 +7119,9 @@ SRCDIRS="\
   Modules/_testinternalcapi \
   Modules/_testlimitedcapi \
   Modules/_xxtestfuzz \
+  Modules/_zstd \
   Modules/cjkcodecs \
   Modules/expat \
-  Modules/_zstd \
   Objects \
   Objects/mimalloc \
   Objects/mimalloc/prim \