Home | History | Annotate | Download | only in PCbuild
      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