Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a191b91

Browse files
committed
Issue #15968: Incorporated Tcl, Tk, and Tix builds into the Windows build
solution. Currently, Tix is not built in Debug configuration. This change also: - simplifies some Tcl/Tk-related msbuild properties for _tkinter - copies the Tcl and Tk DLLs into the build output directory, meaning they will always be available after a build without having to copy them manually or change PATH - removes PCbuild/build_tkinter.py: the solution does the build without needing to invoke Python (so Tcl/Tk/Tix can be built in parallel with the rest of the build using the `/m` msbuild command line switch) - removes an outdated README concerning building Tcl/Tk on AMD64
1 parent 04ea84a commit a191b91

18 files changed

Lines changed: 680 additions & 206 deletions

Misc/NEWS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ Tools/Demos
103103
- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
104104
Patch by Arfrever Frehtes Taifersar Arahesis.
105105

106+
Build
107+
-----
108+
109+
- Issue #15968: Incorporated Tcl, Tk, and Tix builds into the Windows build
110+
solution.
111+
106112

107113
What's New in Python 3.4.0?
108114
===========================

PCbuild/_tkinter.vcxproj

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,41 +85,49 @@
8585
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
8686
<Import Project="pyd.props" />
8787
<Import Project="pgupdate.props" />
88+
<Import Project="tcltk.props" />
8889
</ImportGroup>
8990
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'" Label="PropertySheets">
9091
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
9192
<Import Project="pyd.props" />
9293
<Import Project="pginstrument.props" />
94+
<Import Project="tcltk.props" />
9395
</ImportGroup>
9496
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
9597
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
9698
<Import Project="pyd.props" />
99+
<Import Project="tcltk.props" />
97100
</ImportGroup>
98101
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
99102
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
100103
<Import Project="pyd_d.props" />
104+
<Import Project="tcltk.props" />
101105
</ImportGroup>
102106
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGUpdate|x64'" Label="PropertySheets">
103107
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
104108
<Import Project="pyd.props" />
105109
<Import Project="x64.props" />
106110
<Import Project="pgupdate.props" />
111+
<Import Project="tcltk.props" />
107112
</ImportGroup>
108113
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|x64'" Label="PropertySheets">
109114
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
110115
<Import Project="pyd.props" />
111116
<Import Project="x64.props" />
112117
<Import Project="pginstrument.props" />
118+
<Import Project="tcltk.props" />
113119
</ImportGroup>
114120
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
115121
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
116122
<Import Project="pyd.props" />
117123
<Import Project="x64.props" />
124+
<Import Project="tcltk.props" />
118125
</ImportGroup>
119126
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
120127
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
121128
<Import Project="pyd_d.props" />
122129
<Import Project="x64.props" />
130+
<Import Project="tcltk.props" />
123131
</ImportGroup>
124132
<PropertyGroup Label="UserMacros" />
125133
<PropertyGroup>
@@ -155,19 +163,19 @@
155163
<PreprocessorDefinitions>WITH_APPINIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
156164
</ClCompile>
157165
<Link>
158-
<AdditionalDependencies>$(tcltkLibDebug);%(AdditionalDependencies)</AdditionalDependencies>
166+
<AdditionalDependencies>$(tcltkLib);%(AdditionalDependencies)</AdditionalDependencies>
159167
</Link>
160168
</ItemDefinitionGroup>
161169
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
162170
<Midl>
163171
<TargetEnvironment>X64</TargetEnvironment>
164172
</Midl>
165173
<ClCompile>
166-
<AdditionalIncludeDirectories>$(tcltk64Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
174+
<AdditionalIncludeDirectories>$(tcltkDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
167175
<PreprocessorDefinitions>WITH_APPINIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
168176
</ClCompile>
169177
<Link>
170-
<AdditionalDependencies>$(tcltk64LibDebug);%(AdditionalDependencies)</AdditionalDependencies>
178+
<AdditionalDependencies>$(tcltkLib);%(AdditionalDependencies)</AdditionalDependencies>
171179
</Link>
172180
</ItemDefinitionGroup>
173181
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -184,11 +192,11 @@
184192
<TargetEnvironment>X64</TargetEnvironment>
185193
</Midl>
186194
<ClCompile>
187-
<AdditionalIncludeDirectories>$(tcltk64Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
195+
<AdditionalIncludeDirectories>$(tcltkDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
188196
<PreprocessorDefinitions>WITH_APPINIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
189197
</ClCompile>
190198
<Link>
191-
<AdditionalDependencies>$(tcltk64Lib);%(AdditionalDependencies)</AdditionalDependencies>
199+
<AdditionalDependencies>$(tcltkLib);%(AdditionalDependencies)</AdditionalDependencies>
192200
</Link>
193201
</ItemDefinitionGroup>
194202
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='PGInstrument|Win32'">
@@ -205,11 +213,11 @@
205213
<TargetEnvironment>X64</TargetEnvironment>
206214
</Midl>
207215
<ClCompile>
208-
<AdditionalIncludeDirectories>$(tcltk64Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
216+
<AdditionalIncludeDirectories>$(tcltkDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
209217
<PreprocessorDefinitions>WITH_APPINIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
210218
</ClCompile>
211219
<Link>
212-
<AdditionalDependencies>$(tcltk64Lib);%(AdditionalDependencies)</AdditionalDependencies>
220+
<AdditionalDependencies>$(tcltkLib);%(AdditionalDependencies)</AdditionalDependencies>
213221
<TargetMachine>MachineX64</TargetMachine>
214222
</Link>
215223
</ItemDefinitionGroup>
@@ -227,11 +235,11 @@
227235
<TargetEnvironment>X64</TargetEnvironment>
228236
</Midl>
229237
<ClCompile>
230-
<AdditionalIncludeDirectories>$(tcltk64Dir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
238+
<AdditionalIncludeDirectories>$(tcltkDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
231239
<PreprocessorDefinitions>WITH_APPINIT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
232240
</ClCompile>
233241
<Link>
234-
<AdditionalDependencies>$(tcltk64Lib);%(AdditionalDependencies)</AdditionalDependencies>
242+
<AdditionalDependencies>$(tcltkLib);%(AdditionalDependencies)</AdditionalDependencies>
235243
<TargetMachine>MachineX64</TargetMachine>
236244
</Link>
237245
</ItemDefinitionGroup>
@@ -244,6 +252,12 @@
244252
<Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
245253
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
246254
</ProjectReference>
255+
<ProjectReference Include="tcl.vcxproj">
256+
<Project>{b5fd6f1d-129e-4bff-9340-03606fac7283}</Project>
257+
</ProjectReference>
258+
<ProjectReference Include="tk.vcxproj">
259+
<Project>{7e85eccf-a72c-4da4-9e52-884508e80ba1}</Project>
260+
</ProjectReference>
247261
</ItemGroup>
248262
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
249263
<ImportGroup Label="ExtensionTargets">

PCbuild/build_tkinter.py

Lines changed: 0 additions & 78 deletions
This file was deleted.

PCbuild/debug.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<PropertyGroup Label="UserMacros">
44
<PyDebugExt>_d</PyDebugExt>
55
<KillPythonExe>$(OutDir)kill_python_d.exe</KillPythonExe>
6+
<TclDebugExt>g</TclDebugExt>
67
</PropertyGroup>
78
<PropertyGroup>
89
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
@@ -23,5 +24,8 @@
2324
<BuildMacro Include="KillPythonExe">
2425
<Value>$(KillPythonExe)</Value>
2526
</BuildMacro>
27+
<BuildMacro Include="TclDebugExt">
28+
<Value>$(TclDebugExt)</Value>
29+
</BuildMacro>
2630
</ItemGroup>
2731
</Project>

PCbuild/pcbuild.sln

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_overlapped", "_overlapped.
7878
EndProject
7979
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testembed", "_testembed.vcxproj", "{6DAC66D9-E703-4624-BE03-49112AB5AA62}"
8080
EndProject
81+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}"
82+
EndProject
83+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}"
84+
EndProject
85+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}"
86+
EndProject
8187
Global
8288
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8389
Debug|Win32 = Debug|Win32
@@ -645,6 +651,52 @@ Global
645651
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|Win32.Build.0 = Release|Win32
646652
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.ActiveCfg = Release|x64
647653
{6DAC66D9-E703-4624-BE03-49112AB5AA62}.Release|x64.Build.0 = Release|x64
654+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|Win32.ActiveCfg = Debug|Win32
655+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|Win32.Build.0 = Debug|Win32
656+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|x64.ActiveCfg = Debug|x64
657+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|x64.Build.0 = Debug|x64
658+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.ActiveCfg = Release|Win32
659+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.Build.0 = Release|Win32
660+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
661+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.Build.0 = PGInstrument|x64
662+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.ActiveCfg = Release|Win32
663+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.Build.0 = Release|Win32
664+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
665+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.Build.0 = PGUpdate|x64
666+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.ActiveCfg = Release|Win32
667+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.Build.0 = Release|Win32
668+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.ActiveCfg = Release|x64
669+
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.Build.0 = Release|x64
670+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.ActiveCfg = Debug|Win32
671+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.Build.0 = Debug|Win32
672+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.ActiveCfg = Debug|x64
673+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.Build.0 = Debug|x64
674+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.ActiveCfg = Release|Win32
675+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.Build.0 = Release|Win32
676+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
677+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.Build.0 = PGInstrument|x64
678+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.ActiveCfg = Release|Win32
679+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.Build.0 = Release|Win32
680+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
681+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.Build.0 = PGUpdate|x64
682+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.ActiveCfg = Release|Win32
683+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.Build.0 = Release|Win32
684+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.ActiveCfg = Release|x64
685+
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.Build.0 = Release|x64
686+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.ActiveCfg = Debug|Win32
687+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.ActiveCfg = Debug|x64
688+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32
689+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.Build.0 = PGInstrument|Win32
690+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.ActiveCfg = PGInstrument|x64
691+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.Build.0 = PGInstrument|x64
692+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32
693+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
694+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
695+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.Build.0 = PGUpdate|x64
696+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.ActiveCfg = Release|Win32
697+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.Build.0 = Release|Win32
698+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.ActiveCfg = Release|x64
699+
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.Build.0 = Release|x64
648700
EndGlobalSection
649701
GlobalSection(SolutionProperties) = preSolution
650702
HideSolutionNode = FALSE

PCbuild/pyproject.props

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,10 @@
2121
<bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir>
2222
<lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir>
2323
<opensslDir>$(externalsDir)\openssl-1.0.1e</opensslDir>
24+
<tclDir>$(externalsDir)\tcl-8.6.1.0</tclDir>
25+
<tkDir>$(externalsDir)\tk-8.6.1.0</tkDir>
26+
<tixDir>$(externalsDir)\tix-8.4.3.3</tixDir>
2427
<tcltkDir>$(externalsDir)\tcltk</tcltkDir>
25-
<tcltk64Dir>$(externalsDir)\tcltk64</tcltk64Dir>
26-
<tcltkLib>$(tcltkDir)\lib\tcl86t.lib;$(tcltkDir)\lib\tk86t.lib</tcltkLib>
27-
<tcltkLibDebug>$(tcltkDir)\lib\tcl86tg.lib;$(tcltkDir)\lib\tk86tg.lib</tcltkLibDebug>
28-
<tcltk64Lib>$(tcltk64Dir)\lib\tcl86t.lib;$(tcltk64Dir)\lib\tk86t.lib</tcltk64Lib>
29-
<tcltk64LibDebug>$(tcltk64Dir)\lib\tcl86tg.lib;$(tcltk64Dir)\lib\tk86tg.lib</tcltk64LibDebug>
3028
</PropertyGroup>
3129
<ItemDefinitionGroup>
3230
<ClCompile>
@@ -82,23 +80,17 @@
8280
<BuildMacro Include="opensslDir">
8381
<Value>$(opensslDir)</Value>
8482
</BuildMacro>
85-
<BuildMacro Include="tcltkDir">
86-
<Value>$(tcltkDir)</Value>
87-
</BuildMacro>
88-
<BuildMacro Include="tcltk64Dir">
89-
<Value>$(tcltk64Dir)</Value>
83+
<BuildMacro Include="tclDir">
84+
<Value>$(tclDir)</Value>
9085
</BuildMacro>
91-
<BuildMacro Include="tcltkLib">
92-
<Value>$(tcltkLib)</Value>
86+
<BuildMacro Include="tkDir">
87+
<Value>$(tkDir)</Value>
9388
</BuildMacro>
94-
<BuildMacro Include="tcltkLibDebug">
95-
<Value>$(tcltkLibDebug)</Value>
89+
<BuildMacro Include="tixDir">
90+
<Value>$(tixDir)</Value>
9691
</BuildMacro>
97-
<BuildMacro Include="tcltk64Lib">
98-
<Value>$(tcltk64Lib)</Value>
99-
</BuildMacro>
100-
<BuildMacro Include="tcltk64LibDebug">
101-
<Value>$(tcltk64LibDebug)</Value>
92+
<BuildMacro Include="tcltkDir">
93+
<Value>$(tcltkDir)</Value>
10294
</BuildMacro>
10395
</ItemGroup>
104-
</Project>
96+
</Project>

0 commit comments

Comments
 (0)