blob: 36621c910cd8f0aae3a2ddd891bcedd08c4676fa [file] [log] [blame]
Steve Dower65e4cb12014-11-22 12:54:57 -08001<?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 Wareb27f3c32015-09-03 23:43:54 -05008 <IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals>
Steve Dower65e4cb12014-11-22 12:54:57 -08009 <IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests>
10 <IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL>
Zachary Wareb27f3c32015-09-03 23:43:54 -050011 <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter>
Steve Dower65e4cb12014-11-22 12:54:57 -080012 </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 </ItemDefinitionGroup>
25 <ItemGroup>
26 <!-- pythonXY.dll -->
27 <!--
28 Parallel build is explicitly disabled for this project because it
29 causes many conflicts between pythoncore and projects that depend
Zachary Wareb27f3c32015-09-03 23:43:54 -050030 on pythoncore. Once the core DLL has been built, subsequent
Steve Dower65e4cb12014-11-22 12:54:57 -080031 projects will be built in parallel.
32 -->
33 <Projects Include="pythoncore.vcxproj">
34 <BuildInParallel>false</BuildInParallel>
35 </Projects>
36 <!-- python[w].exe -->
37 <Projects Include="python.vcxproj;pythonw.vcxproj" />
38 <!-- python3.dll -->
39 <Projects Include="python3dll.vcxproj" />
40 <!-- py[w].exe -->
41 <Projects Include="pylauncher.vcxproj;pywlauncher.vcxproj" />
Steve Dower65e4cb12014-11-22 12:54:57 -080042 <!-- _freeze_importlib -->
43 <Projects Include="_freeze_importlib.vcxproj" />
44 <!-- Extension modules -->
Zachary Wareb27f3c32015-09-03 23:43:54 -050045 <ExtensionModules Include="_ctypes;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;select;unicodedata;winsound" />
46 <!-- Extension modules that require external sources -->
47 <ExternalModules Include="_bz2;_lzma;_sqlite3" />
Steve Dower65e4cb12014-11-22 12:54:57 -080048 <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
Zachary Wareb27f3c32015-09-03 23:43:54 -050049 <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
50 <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
51 <ExternalModules Include="_tkinter;tix" Condition="$(IncludeTkinter)" />
52 <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
Steve Dower65e4cb12014-11-22 12:54:57 -080053 <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
54 <!-- Test modules -->
Steve Dower42a059b2015-05-23 17:51:54 -070055 <TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testembed;_testimportmultiple;_testmultiphase" />
Steve Dower65e4cb12014-11-22 12:54:57 -080056 <TestModules Include="xxlimited" Condition="'$(Configuration)' == 'Release'" />
57 <Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)">
58 <!-- Disable parallel build for test modules -->
59 <BuildInParallel>false</BuildInParallel>
60 </Projects>
61 </ItemGroup>
62
63 <Target Name="Build">
64 <MSBuild Projects="@(Projects)"
65 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
66 BuildInParallel="%(BuildInParallel)"
67 Targets="%(BuildTarget)" />
68 </Target>
69
70 <Target Name="Clean">
71 <MSBuild Projects="@(Projects)"
72 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
73 BuildInParallel="%(BuildInParallel)"
74 StopOnFirstFailure="false"
75 Condition="%(CleanTarget) != ''"
76 Targets="%(CleanTarget)" />
77 </Target>
78
79 <Target Name="CleanAll">
80 <MSBuild Projects="@(Projects)"
81 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)"
82 BuildInParallel="%(BuildInParallel)"
83 StopOnFirstFailure="false"
84 Condition="%(CleanAllTarget) != ''"
85 Targets="%(CleanAllTarget)" />
86 </Target>
87
88 <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
89 <Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" />
90</Project>