blob: 1f95fa543ded192c3fce188ef2ed4ad40cc0d7c2 [file] [log] [blame]
Zachary Ware47343722015-07-16 00:24:48 -05001<?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>
Zachary Ware1db43f92015-09-03 23:27:05 -05008 <IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals>
Zachary Ware47343722015-07-16 00:24:48 -05009 <IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests>
10 <IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL>
Zachary Ware1db43f92015-09-03 23:27:05 -050011 <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter>
12 <IncludeBsddb Condition="'$(IncludeBsddb)' == ''">true</IncludeBsddb>
Zachary Ware47343722015-07-16 00:24:48 -050013 </PropertyGroup>
14
15 <ItemDefinitionGroup>
16 <Projects>
17 <Platform>$(Platform)</Platform>
18 <Configuration>$(Configuration)</Configuration>
19 <Properties></Properties>
20 <BuildTarget>Build</BuildTarget>
21 <CleanTarget>Clean</CleanTarget>
22 <CleanAllTarget>CleanAll</CleanAllTarget>
23 <BuildInParallel>true</BuildInParallel>
24 </Projects>
25 </ItemDefinitionGroup>
26 <ItemGroup>
27 <!-- pythonXY.dll -->
28 <!--
29 Parallel build is explicitly disabled for this project because it
30 causes many conflicts between pythoncore and projects that depend
31 on pythoncore. Once the core DLL has been built, subsequent
32 projects will be built in parallel.
33 -->
34 <Projects Include="pythoncore.vcxproj">
35 <BuildInParallel>false</BuildInParallel>
36 </Projects>
37 <!-- python[w].exe -->
38 <Projects Include="python.vcxproj;pythonw.vcxproj" />
39 <!-- Extension modules -->
Zachary Ware1db43f92015-09-03 23:27:05 -050040 <ExtensionModules Include="_ctypes;_elementtree;_msi;_multiprocessing;pyexpat;select;unicodedata;winsound" />
41 <!-- Extension modules that require external sources -->
42 <ExternalModules Include="bz2;_sqlite3" />
Zachary Ware47343722015-07-16 00:24:48 -050043 <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
Zachary Ware1db43f92015-09-03 23:27:05 -050044 <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
45 <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
46 <ExternalModules Include="_tkinter;tix" Condition="$(IncludeTkinter)" />
47 <ExternalModules Include="_bsddb" Condition="$(IncludeBsddb)" />
48 <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
Zachary Ware47343722015-07-16 00:24:48 -050049 <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
50 <!-- Test modules -->
51 <TestModules Include="_ctypes_test;_testcapi" />
52 <Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)">
53 <!-- Disable parallel build for test modules -->
54 <BuildInParallel>false</BuildInParallel>
55 </Projects>
56 </ItemGroup>
57
58 <Target Name="Build">
59 <MSBuild Projects="@(Projects)"
60 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
61 BuildInParallel="%(BuildInParallel)"
62 Targets="%(BuildTarget)" />
63 </Target>
64
65 <Target Name="Clean">
66 <MSBuild Projects="@(Projects)"
67 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
68 BuildInParallel="%(BuildInParallel)"
69 StopOnFirstFailure="false"
70 Condition="%(CleanTarget) != ''"
71 Targets="%(CleanTarget)" />
72 </Target>
73
74 <Target Name="CleanAll">
75 <MSBuild Projects="@(Projects)"
76 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
77 BuildInParallel="%(BuildInParallel)"
78 StopOnFirstFailure="false"
79 Condition="%(CleanAllTarget) != ''"
80 Targets="%(CleanAllTarget)" />
81 </Target>
82
83 <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
84 <Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" />
85</Project>