• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3  <PropertyGroup Label="Globals">
4    <ProjectGuid>{CC9B93A2-439D-4058-9D29-6DCF43774405}</ProjectGuid>
5    <Platform Condition="'$(Platform)' == ''">Win32</Platform>
6    <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
7    <IncludeExtensions Condition="'$(IncludeExtensions)' == ''">true</IncludeExtensions>
8    <IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals>
9    <IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests>
10    <IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL>
11    <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter>
12  </PropertyGroup>
13
14  <ItemDefinitionGroup>
15    <Projects>
16      <Platform>$(Platform)</Platform>
17      <Configuration>$(Configuration)</Configuration>
18      <Properties></Properties>
19      <BuildTarget>Build</BuildTarget>
20      <CleanTarget>Clean</CleanTarget>
21      <CleanAllTarget>CleanAll</CleanAllTarget>
22      <BuildInParallel>true</BuildInParallel>
23    </Projects>
24    <Projects2>
25      <Platform>$(Platform)</Platform>
26      <Configuration>$(Configuration)</Configuration>
27      <Properties></Properties>
28      <BuildTarget>Build</BuildTarget>
29      <CleanTarget>Clean</CleanTarget>
30      <CleanAllTarget>CleanAll</CleanAllTarget>
31      <BuildInParallel>false</BuildInParallel>
32    </Projects2>
33  </ItemDefinitionGroup>
34  <ItemGroup>
35    <!-- pythonXY.dll -->
36    <!--
37    Parallel build is explicitly disabled for this project because it
38    causes many conflicts between pythoncore and projects that depend
39    on pythoncore. Once the core DLL has been built, subsequent
40    projects will be built in parallel.
41    -->
42    <Projects Include="pythoncore.vcxproj">
43      <BuildInParallel>false</BuildInParallel>
44    </Projects>
45    <!-- python3.dll -->
46    <Projects Include="python3dll.vcxproj" />
47    <!-- py[w].exe -->
48    <Projects Include="pylauncher.vcxproj;pywlauncher.vcxproj" />
49    <!-- pyshellext.dll -->
50    <Projects Include="pyshellext.vcxproj" />
51    <!-- Extension modules -->
52    <ExtensionModules Include="_asyncio;_ctypes;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;select;unicodedata;winsound" />
53    <!-- Extension modules that require external sources -->
54    <ExternalModules Include="_bz2;_lzma;_sqlite3" />
55    <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
56    <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
57    <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
58    <ExternalModules Include="_tkinter;tix" Condition="$(IncludeTkinter)" />
59    <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
60    <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
61    <!-- Test modules -->
62    <TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testembed;_testimportmultiple;_testmultiphase;_testconsole" />
63    <TestModules Include="xxlimited" Condition="'$(Configuration)' == 'Release'" />
64    <Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)">
65      <!-- Disable parallel build for test modules -->
66      <BuildInParallel>false</BuildInParallel>
67    </Projects>
68
69    <!-- _freeze_importlib -->
70    <Projects2 Include="_freeze_importlib.vcxproj" />
71    <!-- python[w].exe -->
72    <Projects2 Include="python.vcxproj;pythonw.vcxproj" />
73  </ItemGroup>
74
75  <Target Name="Build">
76    <MSBuild Projects="@(Projects)"
77             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
78             BuildInParallel="%(BuildInParallel)"
79             StopOnFirstFailure="true"
80             Targets="%(BuildTarget)" />
81    <MSBuild Projects="@(Projects2)"
82             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
83             BuildInParallel="%(BuildInParallel)"
84             StopOnFirstFailure="true"
85             Targets="%(BuildTarget)" />
86  </Target>
87
88  <Target Name="Clean">
89    <MSBuild Projects="@(Projects2)"
90             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
91             BuildInParallel="%(BuildInParallel)"
92             StopOnFirstFailure="false"
93             Condition="%(CleanTarget) != ''"
94             Targets="%(CleanTarget)" />
95    <MSBuild Projects="@(Projects)"
96             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
97             BuildInParallel="%(BuildInParallel)"
98             StopOnFirstFailure="false"
99             Condition="%(CleanTarget) != ''"
100             Targets="%(CleanTarget)" />
101  </Target>
102
103  <Target Name="CleanAll">
104    <MSBuild Projects="@(Projects2)"
105             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
106             BuildInParallel="%(BuildInParallel)"
107             StopOnFirstFailure="false"
108             Condition="%(CleanAllTarget) != ''"
109             Targets="%(CleanAllTarget)" />
110    <MSBuild Projects="@(Projects)"
111             Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
112             BuildInParallel="%(BuildInParallel)"
113             StopOnFirstFailure="false"
114             Condition="%(CleanAllTarget) != ''"
115             Targets="%(CleanAllTarget)" />
116  </Target>
117
118  <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
119  <Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" />
120</Project>