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 <IncludeUwp Condition="'$(IncludeUwp)' == ''">false</IncludeUwp> 13 </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 <Projects2> 26 <Platform>$(Platform)</Platform> 27 <Configuration>$(Configuration)</Configuration> 28 <Properties></Properties> 29 <BuildTarget>Build</BuildTarget> 30 <CleanTarget>Clean</CleanTarget> 31 <CleanAllTarget>CleanAll</CleanAllTarget> 32 <BuildInParallel>false</BuildInParallel> 33 </Projects2> 34 </ItemDefinitionGroup> 35 <ItemGroup> 36 <!-- pythonXY.dll --> 37 <!-- 38 Parallel build is explicitly disabled for this project because it 39 causes many conflicts between pythoncore and projects that depend 40 on pythoncore. Once the core DLL has been built, subsequent 41 projects will be built in parallel. 42 --> 43 <Projects Include="pythoncore.vcxproj"> 44 <BuildInParallel>false</BuildInParallel> 45 </Projects> 46 <!-- python3.dll --> 47 <Projects Include="python3dll.vcxproj" /> 48 <!-- py[w].exe --> 49 <Projects Include="pylauncher.vcxproj;pywlauncher.vcxproj" /> 50 <!-- pyshellext.dll --> 51 <Projects Include="pyshellext.vcxproj" /> 52 <!-- Extension modules --> 53 <ExtensionModules Include="_asyncio;_ctypes;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound" /> 54 <!-- Extension modules that require external sources --> 55 <ExternalModules Include="_bz2;_lzma;_sqlite3" /> 56 <!-- venv launchers --> 57 <Projects Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" /> 58 <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds --> 59 <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" /> 60 <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" /> 61 <ExternalModules Include="_tkinter" Condition="$(IncludeTkinter)" /> 62 <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" /> 63 <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" /> 64 <!-- Test modules --> 65 <TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testembed;_testimportmultiple;_testmultiphase;_testconsole" /> 66 <TestModules Include="xxlimited" Condition="'$(Configuration)' == 'Release'" /> 67 <Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)"> 68 <!-- Disable parallel build for test modules --> 69 <BuildInParallel>false</BuildInParallel> 70 </Projects> 71 72 <!-- _freeze_importlib --> 73 <Projects2 Include="_freeze_importlib.vcxproj" /> 74 <!-- python[w].exe --> 75 <Projects2 Include="python.vcxproj;pythonw.vcxproj" /> 76 <Projects2 Include="python_uwp.vcxproj;pythonw_uwp.vcxproj" Condition="$(IncludeUwp)" /> 77 <!-- venv[w]launcher.exe --> 78 <Projects2 Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" /> 79 </ItemGroup> 80 81 <Target Name="Build"> 82 <MSBuild Projects="@(Projects)" 83 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 84 BuildInParallel="%(BuildInParallel)" 85 StopOnFirstFailure="true" 86 Targets="%(BuildTarget)" /> 87 <MSBuild Projects="@(Projects2)" 88 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 89 BuildInParallel="%(BuildInParallel)" 90 StopOnFirstFailure="true" 91 Targets="%(BuildTarget)" /> 92 </Target> 93 94 <Target Name="Clean"> 95 <MSBuild Projects="@(Projects2)" 96 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 97 BuildInParallel="%(BuildInParallel)" 98 StopOnFirstFailure="false" 99 Condition="%(CleanTarget) != ''" 100 Targets="%(CleanTarget)" /> 101 <MSBuild Projects="@(Projects)" 102 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 103 BuildInParallel="%(BuildInParallel)" 104 StopOnFirstFailure="false" 105 Condition="%(CleanTarget) != ''" 106 Targets="%(CleanTarget)" /> 107 </Target> 108 109 <Target Name="CleanAll"> 110 <MSBuild Projects="@(Projects2)" 111 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 112 BuildInParallel="%(BuildInParallel)" 113 StopOnFirstFailure="false" 114 Condition="%(CleanAllTarget) != ''" 115 Targets="%(CleanAllTarget)" /> 116 <MSBuild Projects="@(Projects)" 117 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 118 BuildInParallel="%(BuildInParallel)" 119 StopOnFirstFailure="false" 120 Condition="%(CleanAllTarget) != ''" 121 Targets="%(CleanAllTarget)" /> 122 </Target> 123 124 <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> 125 <Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" /> 126 </Project> 127