1<?xml version="1.0" encoding="utf-8"?> 2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/> 4 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/> 5 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/> 6 <PropertyGroup Label="Globals"> 7 <ProjectGuid>{CC9B93A2-439D-4058-9D29-6DCF43774405}</ProjectGuid> 8 <Platform Condition="'$(Platform)' == ''">Win32</Platform> 9 <Configuration Condition="'$(Configuration)' == ''">Release</Configuration> 10 <IncludeExtensions Condition="'$(IncludeExtensions)' == ''">true</IncludeExtensions> 11 <IncludeExternals Condition="'$(IncludeExternals)' == ''">true</IncludeExternals> 12 <IncludeTests Condition="'$(IncludeTest)' == ''">true</IncludeTests> 13 <IncludeCTypes Condition="'$(IncludeCTypes)' == ''">true</IncludeCTypes> 14 <IncludeSSL Condition="'$(IncludeSSL)' == ''">true</IncludeSSL> 15 <IncludeTkinter Condition="'$(IncludeTkinter)' == ''">true</IncludeTkinter> 16 <IncludeUwp Condition="'$(IncludeUwp)' == ''">false</IncludeUwp> 17 </PropertyGroup> 18 19 <ItemDefinitionGroup> 20 <FreezeProjects> 21 <Platform>$(PreferredToolArchitecture)</Platform> 22 <Configuration>$(Configuration)</Configuration> 23 <Configuration Condition="$(Configuration) == 'PGInstrument'">Release</Configuration> 24 <Properties></Properties> 25 <BuildTarget>Build</BuildTarget> 26 <CleanTarget>Clean</CleanTarget> 27 <CleanAllTarget>CleanAll</CleanAllTarget> 28 <BuildInParallel>false</BuildInParallel> 29 </FreezeProjects> 30 <Projects> 31 <Platform>$(Platform)</Platform> 32 <Configuration>$(Configuration)</Configuration> 33 <Properties></Properties> 34 <BuildTarget>Build</BuildTarget> 35 <CleanTarget>Clean</CleanTarget> 36 <CleanAllTarget>CleanAll</CleanAllTarget> 37 <BuildInParallel>true</BuildInParallel> 38 </Projects> 39 <Projects2> 40 <Platform>$(Platform)</Platform> 41 <Configuration>$(Configuration)</Configuration> 42 <Properties></Properties> 43 <BuildTarget>Build</BuildTarget> 44 <CleanTarget>Clean</CleanTarget> 45 <CleanAllTarget>CleanAll</CleanAllTarget> 46 <BuildInParallel>false</BuildInParallel> 47 </Projects2> 48 </ItemDefinitionGroup> 49 <ItemGroup> 50 <!-- pythonXY.dll --> 51 <!-- 52 Parallel build is explicitly disabled for this project because it 53 causes many conflicts between pythoncore and projects that depend 54 on pythoncore. Once the core DLL has been built, subsequent 55 projects will be built in parallel. 56 --> 57 <Projects Include="pythoncore.vcxproj"> 58 <BuildInParallel>false</BuildInParallel> 59 </Projects> 60 <!-- python3.dll --> 61 <Projects Include="python3dll.vcxproj" /> 62 <!-- py[w].exe --> 63 <Projects Include="pylauncher.vcxproj;pywlauncher.vcxproj" /> 64 <!-- pyshellext.dll --> 65 <Projects Include="pyshellext.vcxproj" /> 66 <!-- Extension modules --> 67 <ExtensionModules Include="_asyncio;_zoneinfo;_decimal;_elementtree;_msi;_multiprocessing;_overlapped;pyexpat;_queue;select;unicodedata;winsound;_uuid" /> 68 <ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" /> 69 <!-- Extension modules that require external sources --> 70 <ExternalModules Include="_bz2;_lzma;_sqlite3" /> 71 <!-- venv launchers --> 72 <Projects Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" /> 73 <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds --> 74 <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" /> 75 <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" /> 76 <ExternalModules Include="_tkinter" Condition="$(IncludeTkinter)" /> 77 <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" /> 78 <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" /> 79 <!-- Test modules --> 80 <TestModules Include="_ctypes_test;_testbuffer;_testcapi;_testinternalcapi;_testembed;_testimportmultiple;_testmultiphase;_testconsole" /> 81 <TestModules Include="xxlimited" Condition="'$(Configuration)' == 'Release'" /> 82 <TestModules Include="xxlimited_35" Condition="'$(Configuration)' == 'Release'" /> 83 <Projects Include="@(TestModules->'%(Identity).vcxproj')" Condition="$(IncludeTests)"> 84 <!-- Disable parallel build for test modules --> 85 <BuildInParallel>false</BuildInParallel> 86 </Projects> 87 88 <!-- _freeze_module --> 89 <FreezeProjects Include="_freeze_module.vcxproj" /> 90 <!-- python[w].exe --> 91 <Projects2 Include="python.vcxproj;pythonw.vcxproj" /> 92 <Projects2 Include="python_uwp.vcxproj;pythonw_uwp.vcxproj" Condition="$(IncludeUwp)" /> 93 <!-- venv[w]launcher.exe --> 94 <Projects2 Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" /> 95 </ItemGroup> 96 97 <Target Name="Build"> 98 <MSBuild Projects="@(FreezeProjects)" 99 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 100 BuildInParallel="%(BuildInParallel)" 101 StopOnFirstFailure="true" 102 Targets="%(BuildTarget)" /> 103 <MSBuild Projects="@(Projects)" 104 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 105 BuildInParallel="%(BuildInParallel)" 106 StopOnFirstFailure="true" 107 Targets="%(BuildTarget)" /> 108 <MSBuild Projects="@(Projects2)" 109 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 110 BuildInParallel="%(BuildInParallel)" 111 StopOnFirstFailure="true" 112 Targets="%(BuildTarget)" /> 113 </Target> 114 115 <Target Name="Clean"> 116 <MSBuild Projects="@(Projects2)" 117 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 118 BuildInParallel="%(BuildInParallel)" 119 StopOnFirstFailure="false" 120 Condition="%(CleanTarget) != ''" 121 Targets="%(CleanTarget)" /> 122 <MSBuild Projects="@(Projects)" 123 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 124 BuildInParallel="%(BuildInParallel)" 125 StopOnFirstFailure="false" 126 Condition="%(CleanTarget) != ''" 127 Targets="%(CleanTarget)" /> 128 <MSBuild Projects="@(FreezeProjects)" 129 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 130 BuildInParallel="%(BuildInParallel)" 131 StopOnFirstFailure="false" 132 Condition="%(CleanTarget) != ''" 133 Targets="%(CleanTarget)" /> 134 </Target> 135 136 <Target Name="CleanAll"> 137 <MSBuild Projects="@(Projects2)" 138 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 139 BuildInParallel="%(BuildInParallel)" 140 StopOnFirstFailure="false" 141 Condition="%(CleanAllTarget) != ''" 142 Targets="%(CleanAllTarget)" /> 143 <MSBuild Projects="@(Projects)" 144 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 145 BuildInParallel="%(BuildInParallel)" 146 StopOnFirstFailure="false" 147 Condition="%(CleanAllTarget) != ''" 148 Targets="%(CleanAllTarget)" /> 149 <MSBuild Projects="@(FreezeProjects)" 150 Properties="Configuration=%(Configuration);Platform=%(Platform);%(Properties)" 151 BuildInParallel="%(BuildInParallel)" 152 StopOnFirstFailure="false" 153 Condition="%(CleanTarget) != ''" 154 Targets="%(CleanTarget)" /> 155 </Target> 156 157 <Target Name="Rebuild" DependsOnTargets="Clean;Build" /> 158 <Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" /> 159</Project> 160