Skip to content

Commit

Permalink
pythongh-115119: Switch Windows build to mpdecimal external
Browse files Browse the repository at this point in the history
  • Loading branch information
zware committed Feb 8, 2024
1 parent ed1a8da commit 7fc2f57
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 62 deletions.
@@ -0,0 +1,3 @@
Switched from vendored ``libmpdecimal`` code to a separately-hosted external
package in the ``cpython-source-deps`` repository when building the
``_decimal`` module.
62 changes: 31 additions & 31 deletions PCbuild/_decimal.vcxproj
Expand Up @@ -98,46 +98,46 @@
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">CONFIG_32;ANSI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">CONFIG_64;ANSI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Platform)' == 'x64'">CONFIG_64;MASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\Modules\_decimal;$(mpdecimalDir)\libmpdec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\Modules\_decimal\libmpdec\basearith.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\bits.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\constants.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\convolute.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\crt.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\difradix2.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\basearith.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\bits.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\constants.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\convolute.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\crt.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\difradix2.h" />
<ClInclude Include="..\Modules\_decimal\docstrings.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\fnt.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\fourstep.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\mpdecimal.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\numbertheory.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\sixstep.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\transpose.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\typearith.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\umodarith.h" />
<ClInclude Include="..\Modules\_decimal\libmpdec\vccompat.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\fnt.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\fourstep.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\mpdecimal.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\numbertheory.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\sixstep.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\transpose.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\typearith.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\umodarith.h" />
<ClInclude Include="$(mpdecimalDir)\libmpdec\vccompat.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\Modules\_decimal\_decimal.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\basearith.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\constants.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\context.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\convolute.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\crt.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\difradix2.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\fnt.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\fourstep.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\io.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\mpalloc.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\mpdecimal.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\numbertheory.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\sixstep.c" />
<ClCompile Include="..\Modules\_decimal\libmpdec\transpose.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\basearith.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\constants.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\context.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\convolute.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\crt.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\difradix2.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\fnt.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\fourstep.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\io.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpalloc.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpdecimal.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\numbertheory.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\sixstep.c" />
<ClCompile Include="$(mpdecimalDir)\libmpdec\transpose.c" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\Modules\_decimal\libmpdec\vcdiv64.asm">
<CustomBuild Include="$(mpdecimalDir)\libmpdec\vcdiv64.asm">
<ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Platform)'=='ARM'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Platform)'=='ARM64'">true</ExcludedFromBuild>
Expand Down
62 changes: 31 additions & 31 deletions PCbuild/_decimal.vcxproj.filters
Expand Up @@ -21,96 +21,96 @@
<ClInclude Include="..\Modules\_decimal\docstrings.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\basearith.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\basearith.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\bits.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\bits.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\constants.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\constants.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\convolute.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\convolute.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\crt.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\crt.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\difradix2.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\difradix2.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\fnt.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\fnt.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\fourstep.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\fourstep.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\mpdecimal.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\mpdecimal.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\numbertheory.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\numbertheory.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\sixstep.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\sixstep.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\transpose.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\transpose.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\typearith.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\typearith.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\umodarith.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\umodarith.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
<ClInclude Include="..\Modules\_decimal\libmpdec\vccompat.h">
<ClInclude Include="$(mpdecimalDir)\libmpdec\vccompat.h">
<Filter>Header Files\libmpdec</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\Modules\_decimal\_decimal.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\basearith.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\basearith.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\constants.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\constants.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\context.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\context.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\convolute.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\convolute.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\crt.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\crt.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\difradix2.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\difradix2.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\fnt.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\fnt.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\fourstep.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\fourstep.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\io.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\io.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\mpalloc.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpalloc.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\mpdecimal.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpdecimal.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\numbertheory.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\numbertheory.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\sixstep.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\sixstep.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
<ClCompile Include="..\Modules\_decimal\libmpdec\transpose.c">
<ClCompile Include="$(mpdecimalDir)\libmpdec\transpose.c">
<Filter>Source Files\libmpdec</Filter>
</ClCompile>
</ItemGroup>
Expand All @@ -120,8 +120,8 @@
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\Modules\_decimal\libmpdec\vcdiv64.asm">
<CustomBuild Include="$(mpdecimalDir)\libmpdec\vcdiv64.asm">
<Filter>Source Files\libmpdec</Filter>
</CustomBuild>
</ItemGroup>
</Project>
</Project>
1 change: 1 addition & 0 deletions PCbuild/get_externals.bat
Expand Up @@ -54,6 +54,7 @@ set libraries=
set libraries=%libraries% bzip2-1.0.8
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.4
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-3.0.13
set libraries=%libraries% mpdecimal-2.5.1
set libraries=%libraries% sqlite-3.45.1.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.13.1
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.13.1
Expand Down
1 change: 1 addition & 0 deletions PCbuild/python.props
Expand Up @@ -74,6 +74,7 @@
<libffiDir Condition="$(libffiDir) == ''">$(ExternalsDir)libffi-3.4.4\</libffiDir>
<libffiOutDir Condition="$(libffiOutDir) == ''">$(libffiDir)$(ArchName)\</libffiOutDir>
<libffiIncludeDir Condition="$(libffiIncludeDir) == ''">$(libffiOutDir)include</libffiIncludeDir>
<mpdecimalDir Condition="$(mpdecimalDir) == ''">$(ExternalsDir)\mpdecimal-2.5.1\</mpdecimalDir>
<opensslDir Condition="$(opensslDir) == ''">$(ExternalsDir)openssl-3.0.13\</opensslDir>
<opensslOutDir Condition="$(opensslOutDir) == ''">$(ExternalsDir)openssl-bin-3.0.13\$(ArchName)\</opensslOutDir>
<opensslIncludeDir Condition="$(opensslIncludeDir) == ''">$(opensslOutDir)include</opensslIncludeDir>
Expand Down

0 comments on commit 7fc2f57

Please sign in to comment.