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>{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}</ProjectGuid>
71  </PropertyGroup>
72  <Import Project="python.props" />
73  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
74  <PropertyGroup Label="Configuration">
75    <ConfigurationType>Application</ConfigurationType>
76    <UseOfMfc>false</UseOfMfc>
77    <CharacterSet>MultiByte</CharacterSet>
78  </PropertyGroup>
79  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
80  <ImportGroup Label="ExtensionSettings">
81  </ImportGroup>
82  <ImportGroup Label="PropertySheets">
83    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
84    <Import Project="pyproject.props" />
85    <Import Project="tcltk.props" />
86  </ImportGroup>
87  <PropertyGroup Label="UserMacros" />
88  <PropertyGroup>
89    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
90  </PropertyGroup>
91  <ItemDefinitionGroup>
92    <ClCompile>
93      <PreprocessorDefinitions>Py_BUILD_CORE;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94    </ClCompile>
95    <Link>
96      <SubSystem>Console</SubSystem>
97      <StackReserveSize>2000000</StackReserveSize>
98    </Link>
99  </ItemDefinitionGroup>
100  <ItemGroup>
101    <None Include="..\PC\pycon.ico" />
102  </ItemGroup>
103  <ItemGroup>
104    <ResourceCompile Include="..\PC\python_exe.rc" />
105  </ItemGroup>
106  <ItemGroup>
107    <ClCompile Include="..\Programs\python.c" />
108  </ItemGroup>
109  <ItemGroup>
110    <ProjectReference Include="pythoncore.vcxproj">
111      <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
112      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
113    </ProjectReference>
114  </ItemGroup>
115  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
116  <ImportGroup Label="ExtensionTargets">
117  </ImportGroup>
118  <Target Name="ValidateUcrtbase" AfterTargets="AfterBuild" Condition="$(Configuration) != 'PGInstrument' and $(Platform) != 'ARM' and $(Platform) != 'ARM64'">
119    <PropertyGroup>
120      <UcrtName>ucrtbase</UcrtName>
121      <UcrtName Condition="'$(Configuration)' == 'Debug'">ucrtbased</UcrtName>
122    </PropertyGroup>
123    <Exec Command='setlocal
124set PYTHONPATH=$(PySourcePath)Lib
125"$(OutDir)python$(PyDebugExt).exe" "$(PySourcePath)PC\validate_ucrtbase.py" $(UcrtName)' ContinueOnError="true" />
126  </Target>
127  <Target Name="GeneratePythonBat" AfterTargets="AfterBuild">
128    <PropertyGroup>
129      <_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(Platform) == 'Win32'">@set PATH=%PATH%%3B$(VCInstallDir)bin</_PGOPath>
130      <_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(Platform) == 'x64'">@set PATH=%PATH%%3B$(VCInstallDir)bin\amd64</_PGOPath>
131      <_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(VC_PGO_RunTime_Dir) != ''">@set PATH=%PATH%%3B$(VC_PGO_RunTime_Dir)</_PGOPath>
132      <_Content>@rem This script invokes the most recently built Python with all arguments
133@rem passed through to the interpreter.  This file is generated by the
134@rem build process and any changes *will* be thrown away by the next
135@rem rebuild.
136@rem This is only meant as a convenience for developing CPython
137@rem and using it outside of that context is ill-advised.
138@echo Running $(Configuration)^|$(Platform) interpreter...
139@setlocal
140@set PYTHONHOME=$(PySourcePath)
141$(_PGOPath)
142@"$(OutDir)python$(PyDebugExt).exe" %*
143</_Content>
144      <_ExistingContent Condition="Exists('$(PySourcePath)python.bat')">$([System.IO.File]::ReadAllText('$(PySourcePath)python.bat'))</_ExistingContent>
145    </PropertyGroup>
146    <WriteLinesToFile File="$(PySourcePath)python.bat" Lines="$(_Content)" Overwrite="true" Condition="'$(_Content)' != '$(_ExistingContent)'" />
147  </Target>
148  <Target Name="GenerateLicense" AfterTargets="AfterBuild">
149    <ItemGroup>
150      <LicenseFiles Include="$(PySourcePath)LICENSE;
151                             $(PySourcePath)PC\crtlicense.txt;
152                             $(bz2Dir)LICENSE;
153                             $(opensslOutDir)LICENSE;
154                             $(libffiDir)LICENSE;" />
155      <LicenseFiles Include="$(tcltkDir)tcllicense.terms;
156                             $(tcltkDir)tklicense.terms;
157                             $(tcltkDir)tixlicense.terms" Condition="$(IncludeTkinter)" />
158      <_LicenseFiles Include="@(LicenseFiles)">
159        <Content Condition="Exists(%(FullPath))">$([System.IO.File]::ReadAllText(%(FullPath)))</Content>
160      </_LicenseFiles>
161    </ItemGroup>
162
163    <WriteLinesToFile File="$(OutDir)LICENSE.txt"
164                      Overwrite="true"
165                      Lines="@(_LicenseFiles->'%(Content)')" />
166  </Target>
167</Project>
168