Skip to content

Commit 7fc2f57

Browse files
committed
gh-115119: Switch Windows build to mpdecimal external
1 parent ed1a8da commit 7fc2f57

File tree

5 files changed

+67
-62
lines changed

5 files changed

+67
-62
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Switched from vendored ``libmpdecimal`` code to a separately-hosted external
2+
package in the ``cpython-source-deps`` repository when building the
3+
``_decimal`` module.

PCbuild/_decimal.vcxproj

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -98,46 +98,46 @@
9898
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">CONFIG_32;ANSI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
9999
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">CONFIG_64;ANSI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
100100
<PreprocessorDefinitions Condition="'$(Platform)' == 'x64'">CONFIG_64;MASM;%(PreprocessorDefinitions)</PreprocessorDefinitions>
101-
<AdditionalIncludeDirectories>..\Modules\_decimal;..\Modules\_decimal\libmpdec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
101+
<AdditionalIncludeDirectories>..\Modules\_decimal;$(mpdecimalDir)\libmpdec;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
102102
</ClCompile>
103103
</ItemDefinitionGroup>
104104
<ItemGroup>
105-
<ClInclude Include="..\Modules\_decimal\libmpdec\basearith.h" />
106-
<ClInclude Include="..\Modules\_decimal\libmpdec\bits.h" />
107-
<ClInclude Include="..\Modules\_decimal\libmpdec\constants.h" />
108-
<ClInclude Include="..\Modules\_decimal\libmpdec\convolute.h" />
109-
<ClInclude Include="..\Modules\_decimal\libmpdec\crt.h" />
110-
<ClInclude Include="..\Modules\_decimal\libmpdec\difradix2.h" />
105+
<ClInclude Include="$(mpdecimalDir)\libmpdec\basearith.h" />
106+
<ClInclude Include="$(mpdecimalDir)\libmpdec\bits.h" />
107+
<ClInclude Include="$(mpdecimalDir)\libmpdec\constants.h" />
108+
<ClInclude Include="$(mpdecimalDir)\libmpdec\convolute.h" />
109+
<ClInclude Include="$(mpdecimalDir)\libmpdec\crt.h" />
110+
<ClInclude Include="$(mpdecimalDir)\libmpdec\difradix2.h" />
111111
<ClInclude Include="..\Modules\_decimal\docstrings.h" />
112-
<ClInclude Include="..\Modules\_decimal\libmpdec\fnt.h" />
113-
<ClInclude Include="..\Modules\_decimal\libmpdec\fourstep.h" />
114-
<ClInclude Include="..\Modules\_decimal\libmpdec\mpdecimal.h" />
115-
<ClInclude Include="..\Modules\_decimal\libmpdec\numbertheory.h" />
116-
<ClInclude Include="..\Modules\_decimal\libmpdec\sixstep.h" />
117-
<ClInclude Include="..\Modules\_decimal\libmpdec\transpose.h" />
118-
<ClInclude Include="..\Modules\_decimal\libmpdec\typearith.h" />
119-
<ClInclude Include="..\Modules\_decimal\libmpdec\umodarith.h" />
120-
<ClInclude Include="..\Modules\_decimal\libmpdec\vccompat.h" />
112+
<ClInclude Include="$(mpdecimalDir)\libmpdec\fnt.h" />
113+
<ClInclude Include="$(mpdecimalDir)\libmpdec\fourstep.h" />
114+
<ClInclude Include="$(mpdecimalDir)\libmpdec\mpdecimal.h" />
115+
<ClInclude Include="$(mpdecimalDir)\libmpdec\numbertheory.h" />
116+
<ClInclude Include="$(mpdecimalDir)\libmpdec\sixstep.h" />
117+
<ClInclude Include="$(mpdecimalDir)\libmpdec\transpose.h" />
118+
<ClInclude Include="$(mpdecimalDir)\libmpdec\typearith.h" />
119+
<ClInclude Include="$(mpdecimalDir)\libmpdec\umodarith.h" />
120+
<ClInclude Include="$(mpdecimalDir)\libmpdec\vccompat.h" />
121121
</ItemGroup>
122122
<ItemGroup>
123123
<ClCompile Include="..\Modules\_decimal\_decimal.c" />
124-
<ClCompile Include="..\Modules\_decimal\libmpdec\basearith.c" />
125-
<ClCompile Include="..\Modules\_decimal\libmpdec\constants.c" />
126-
<ClCompile Include="..\Modules\_decimal\libmpdec\context.c" />
127-
<ClCompile Include="..\Modules\_decimal\libmpdec\convolute.c" />
128-
<ClCompile Include="..\Modules\_decimal\libmpdec\crt.c" />
129-
<ClCompile Include="..\Modules\_decimal\libmpdec\difradix2.c" />
130-
<ClCompile Include="..\Modules\_decimal\libmpdec\fnt.c" />
131-
<ClCompile Include="..\Modules\_decimal\libmpdec\fourstep.c" />
132-
<ClCompile Include="..\Modules\_decimal\libmpdec\io.c" />
133-
<ClCompile Include="..\Modules\_decimal\libmpdec\mpalloc.c" />
134-
<ClCompile Include="..\Modules\_decimal\libmpdec\mpdecimal.c" />
135-
<ClCompile Include="..\Modules\_decimal\libmpdec\numbertheory.c" />
136-
<ClCompile Include="..\Modules\_decimal\libmpdec\sixstep.c" />
137-
<ClCompile Include="..\Modules\_decimal\libmpdec\transpose.c" />
124+
<ClCompile Include="$(mpdecimalDir)\libmpdec\basearith.c" />
125+
<ClCompile Include="$(mpdecimalDir)\libmpdec\constants.c" />
126+
<ClCompile Include="$(mpdecimalDir)\libmpdec\context.c" />
127+
<ClCompile Include="$(mpdecimalDir)\libmpdec\convolute.c" />
128+
<ClCompile Include="$(mpdecimalDir)\libmpdec\crt.c" />
129+
<ClCompile Include="$(mpdecimalDir)\libmpdec\difradix2.c" />
130+
<ClCompile Include="$(mpdecimalDir)\libmpdec\fnt.c" />
131+
<ClCompile Include="$(mpdecimalDir)\libmpdec\fourstep.c" />
132+
<ClCompile Include="$(mpdecimalDir)\libmpdec\io.c" />
133+
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpalloc.c" />
134+
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpdecimal.c" />
135+
<ClCompile Include="$(mpdecimalDir)\libmpdec\numbertheory.c" />
136+
<ClCompile Include="$(mpdecimalDir)\libmpdec\sixstep.c" />
137+
<ClCompile Include="$(mpdecimalDir)\libmpdec\transpose.c" />
138138
</ItemGroup>
139139
<ItemGroup>
140-
<CustomBuild Include="..\Modules\_decimal\libmpdec\vcdiv64.asm">
140+
<CustomBuild Include="$(mpdecimalDir)\libmpdec\vcdiv64.asm">
141141
<ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
142142
<ExcludedFromBuild Condition="'$(Platform)'=='ARM'">true</ExcludedFromBuild>
143143
<ExcludedFromBuild Condition="'$(Platform)'=='ARM64'">true</ExcludedFromBuild>

PCbuild/_decimal.vcxproj.filters

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,96 +21,96 @@
2121
<ClInclude Include="..\Modules\_decimal\docstrings.h">
2222
<Filter>Header Files</Filter>
2323
</ClInclude>
24-
<ClInclude Include="..\Modules\_decimal\libmpdec\basearith.h">
24+
<ClInclude Include="$(mpdecimalDir)\libmpdec\basearith.h">
2525
<Filter>Header Files\libmpdec</Filter>
2626
</ClInclude>
27-
<ClInclude Include="..\Modules\_decimal\libmpdec\bits.h">
27+
<ClInclude Include="$(mpdecimalDir)\libmpdec\bits.h">
2828
<Filter>Header Files\libmpdec</Filter>
2929
</ClInclude>
30-
<ClInclude Include="..\Modules\_decimal\libmpdec\constants.h">
30+
<ClInclude Include="$(mpdecimalDir)\libmpdec\constants.h">
3131
<Filter>Header Files\libmpdec</Filter>
3232
</ClInclude>
33-
<ClInclude Include="..\Modules\_decimal\libmpdec\convolute.h">
33+
<ClInclude Include="$(mpdecimalDir)\libmpdec\convolute.h">
3434
<Filter>Header Files\libmpdec</Filter>
3535
</ClInclude>
36-
<ClInclude Include="..\Modules\_decimal\libmpdec\crt.h">
36+
<ClInclude Include="$(mpdecimalDir)\libmpdec\crt.h">
3737
<Filter>Header Files\libmpdec</Filter>
3838
</ClInclude>
39-
<ClInclude Include="..\Modules\_decimal\libmpdec\difradix2.h">
39+
<ClInclude Include="$(mpdecimalDir)\libmpdec\difradix2.h">
4040
<Filter>Header Files\libmpdec</Filter>
4141
</ClInclude>
42-
<ClInclude Include="..\Modules\_decimal\libmpdec\fnt.h">
42+
<ClInclude Include="$(mpdecimalDir)\libmpdec\fnt.h">
4343
<Filter>Header Files\libmpdec</Filter>
4444
</ClInclude>
45-
<ClInclude Include="..\Modules\_decimal\libmpdec\fourstep.h">
45+
<ClInclude Include="$(mpdecimalDir)\libmpdec\fourstep.h">
4646
<Filter>Header Files\libmpdec</Filter>
4747
</ClInclude>
48-
<ClInclude Include="..\Modules\_decimal\libmpdec\mpdecimal.h">
48+
<ClInclude Include="$(mpdecimalDir)\libmpdec\mpdecimal.h">
4949
<Filter>Header Files\libmpdec</Filter>
5050
</ClInclude>
51-
<ClInclude Include="..\Modules\_decimal\libmpdec\numbertheory.h">
51+
<ClInclude Include="$(mpdecimalDir)\libmpdec\numbertheory.h">
5252
<Filter>Header Files\libmpdec</Filter>
5353
</ClInclude>
54-
<ClInclude Include="..\Modules\_decimal\libmpdec\sixstep.h">
54+
<ClInclude Include="$(mpdecimalDir)\libmpdec\sixstep.h">
5555
<Filter>Header Files\libmpdec</Filter>
5656
</ClInclude>
57-
<ClInclude Include="..\Modules\_decimal\libmpdec\transpose.h">
57+
<ClInclude Include="$(mpdecimalDir)\libmpdec\transpose.h">
5858
<Filter>Header Files\libmpdec</Filter>
5959
</ClInclude>
60-
<ClInclude Include="..\Modules\_decimal\libmpdec\typearith.h">
60+
<ClInclude Include="$(mpdecimalDir)\libmpdec\typearith.h">
6161
<Filter>Header Files\libmpdec</Filter>
6262
</ClInclude>
63-
<ClInclude Include="..\Modules\_decimal\libmpdec\umodarith.h">
63+
<ClInclude Include="$(mpdecimalDir)\libmpdec\umodarith.h">
6464
<Filter>Header Files\libmpdec</Filter>
6565
</ClInclude>
66-
<ClInclude Include="..\Modules\_decimal\libmpdec\vccompat.h">
66+
<ClInclude Include="$(mpdecimalDir)\libmpdec\vccompat.h">
6767
<Filter>Header Files\libmpdec</Filter>
6868
</ClInclude>
6969
</ItemGroup>
7070
<ItemGroup>
7171
<ClCompile Include="..\Modules\_decimal\_decimal.c">
7272
<Filter>Source Files</Filter>
7373
</ClCompile>
74-
<ClCompile Include="..\Modules\_decimal\libmpdec\basearith.c">
74+
<ClCompile Include="$(mpdecimalDir)\libmpdec\basearith.c">
7575
<Filter>Source Files\libmpdec</Filter>
7676
</ClCompile>
77-
<ClCompile Include="..\Modules\_decimal\libmpdec\constants.c">
77+
<ClCompile Include="$(mpdecimalDir)\libmpdec\constants.c">
7878
<Filter>Source Files\libmpdec</Filter>
7979
</ClCompile>
80-
<ClCompile Include="..\Modules\_decimal\libmpdec\context.c">
80+
<ClCompile Include="$(mpdecimalDir)\libmpdec\context.c">
8181
<Filter>Source Files\libmpdec</Filter>
8282
</ClCompile>
83-
<ClCompile Include="..\Modules\_decimal\libmpdec\convolute.c">
83+
<ClCompile Include="$(mpdecimalDir)\libmpdec\convolute.c">
8484
<Filter>Source Files\libmpdec</Filter>
8585
</ClCompile>
86-
<ClCompile Include="..\Modules\_decimal\libmpdec\crt.c">
86+
<ClCompile Include="$(mpdecimalDir)\libmpdec\crt.c">
8787
<Filter>Source Files\libmpdec</Filter>
8888
</ClCompile>
89-
<ClCompile Include="..\Modules\_decimal\libmpdec\difradix2.c">
89+
<ClCompile Include="$(mpdecimalDir)\libmpdec\difradix2.c">
9090
<Filter>Source Files\libmpdec</Filter>
9191
</ClCompile>
92-
<ClCompile Include="..\Modules\_decimal\libmpdec\fnt.c">
92+
<ClCompile Include="$(mpdecimalDir)\libmpdec\fnt.c">
9393
<Filter>Source Files\libmpdec</Filter>
9494
</ClCompile>
95-
<ClCompile Include="..\Modules\_decimal\libmpdec\fourstep.c">
95+
<ClCompile Include="$(mpdecimalDir)\libmpdec\fourstep.c">
9696
<Filter>Source Files\libmpdec</Filter>
9797
</ClCompile>
98-
<ClCompile Include="..\Modules\_decimal\libmpdec\io.c">
98+
<ClCompile Include="$(mpdecimalDir)\libmpdec\io.c">
9999
<Filter>Source Files\libmpdec</Filter>
100100
</ClCompile>
101-
<ClCompile Include="..\Modules\_decimal\libmpdec\mpalloc.c">
101+
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpalloc.c">
102102
<Filter>Source Files\libmpdec</Filter>
103103
</ClCompile>
104-
<ClCompile Include="..\Modules\_decimal\libmpdec\mpdecimal.c">
104+
<ClCompile Include="$(mpdecimalDir)\libmpdec\mpdecimal.c">
105105
<Filter>Source Files\libmpdec</Filter>
106106
</ClCompile>
107-
<ClCompile Include="..\Modules\_decimal\libmpdec\numbertheory.c">
107+
<ClCompile Include="$(mpdecimalDir)\libmpdec\numbertheory.c">
108108
<Filter>Source Files\libmpdec</Filter>
109109
</ClCompile>
110-
<ClCompile Include="..\Modules\_decimal\libmpdec\sixstep.c">
110+
<ClCompile Include="$(mpdecimalDir)\libmpdec\sixstep.c">
111111
<Filter>Source Files\libmpdec</Filter>
112112
</ClCompile>
113-
<ClCompile Include="..\Modules\_decimal\libmpdec\transpose.c">
113+
<ClCompile Include="$(mpdecimalDir)\libmpdec\transpose.c">
114114
<Filter>Source Files\libmpdec</Filter>
115115
</ClCompile>
116116
</ItemGroup>
@@ -120,8 +120,8 @@
120120
</ResourceCompile>
121121
</ItemGroup>
122122
<ItemGroup>
123-
<CustomBuild Include="..\Modules\_decimal\libmpdec\vcdiv64.asm">
123+
<CustomBuild Include="$(mpdecimalDir)\libmpdec\vcdiv64.asm">
124124
<Filter>Source Files\libmpdec</Filter>
125125
</CustomBuild>
126126
</ItemGroup>
127-
</Project>
127+
</Project>

PCbuild/get_externals.bat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ set libraries=
5454
set libraries=%libraries% bzip2-1.0.8
5555
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.4
5656
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-3.0.13
57+
set libraries=%libraries% mpdecimal-2.5.1
5758
set libraries=%libraries% sqlite-3.45.1.0
5859
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.13.1
5960
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.13.1

PCbuild/python.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
<libffiDir Condition="$(libffiDir) == ''">$(ExternalsDir)libffi-3.4.4\</libffiDir>
7575
<libffiOutDir Condition="$(libffiOutDir) == ''">$(libffiDir)$(ArchName)\</libffiOutDir>
7676
<libffiIncludeDir Condition="$(libffiIncludeDir) == ''">$(libffiOutDir)include</libffiIncludeDir>
77+
<mpdecimalDir Condition="$(mpdecimalDir) == ''">$(ExternalsDir)\mpdecimal-2.5.1\</mpdecimalDir>
7778
<opensslDir Condition="$(opensslDir) == ''">$(ExternalsDir)openssl-3.0.13\</opensslDir>
7879
<opensslOutDir Condition="$(opensslOutDir) == ''">$(ExternalsDir)openssl-bin-3.0.13\$(ArchName)\</opensslOutDir>
7980
<opensslIncludeDir Condition="$(opensslIncludeDir) == ''">$(opensslOutDir)include</opensslIncludeDir>

0 commit comments

Comments
 (0)