74 строки
3.2 KiB
Plaintext
74 строки
3.2 KiB
Plaintext
|
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||
|
|
||
|
<Target Name="BuildAllProjects">
|
||
|
<PropertyGroup>
|
||
|
<DefaultBuildAllTarget Condition="'$(DefaultBuildAllTarget)'==''">$(MSBuildProjectDefaultTargets)</DefaultBuildAllTarget>
|
||
|
</PropertyGroup>
|
||
|
|
||
|
<!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity
|
||
|
however since the project names are unique it will essentially force each to run in its own batch -->
|
||
|
<MSBuild Targets="$(DefaultBuildAllTarget)"
|
||
|
Projects="@(Project)"
|
||
|
Condition="'$(SerializeProjects)'=='true' AND '%(Identity)' != ''"
|
||
|
Properties="DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true;BuildConfiguration=$(BuildConfiguration)"
|
||
|
ContinueOnError="ErrorAndStop" />
|
||
|
|
||
|
<MSBuild Targets="$(DefaultBuildAllTarget)"
|
||
|
Projects="@(Project)"
|
||
|
Condition="'$(SerializeProjects)'!='true'"
|
||
|
Properties="DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true"
|
||
|
BuildInParallel="true"
|
||
|
ContinueOnError="ErrorAndContinue" />
|
||
|
|
||
|
<!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed -->
|
||
|
<Error Condition="'$(MSBuildLastTaskResult)'=='false'" Text="Build failed. See earlier errors." />
|
||
|
</Target>
|
||
|
|
||
|
<Target Name="CleanAllProjects">
|
||
|
<PropertyGroup>
|
||
|
<DefaultCleanAllTarget Condition="'$(DefaultCleanAllTarget)'==''">Clean</DefaultCleanAllTarget>
|
||
|
</PropertyGroup>
|
||
|
|
||
|
<!-- To Serialize we use msbuild's batching functionality '%' to force it to batch all similar projects with the same identity
|
||
|
however since the project names are unique it will essentially force each to run in its own batch -->
|
||
|
<MSBuild Targets="$(DefaultCleanAllTarget)"
|
||
|
Projects="@(Project)"
|
||
|
Condition="'$(SerializeProjects)'=='true' AND '%(Identity)' != ''"
|
||
|
Properties="CleanAllProjects=true"
|
||
|
ContinueOnError="ErrorAndContinue" />
|
||
|
|
||
|
<MSBuild Targets="$(DefaultCleanAllTarget)"
|
||
|
Projects="@(Project)"
|
||
|
Condition="'$(SerializeProjects)'!='true'"
|
||
|
Properties="CleanAllProjects=true"
|
||
|
BuildInParallel="true"
|
||
|
ContinueOnError="ErrorAndContinue" />
|
||
|
|
||
|
<!-- Given we ErrorAndContinue we need to propagate the error if the overall task failed -->
|
||
|
<Error Condition="'$(MSBuildLastTaskResult)'=='false'" />
|
||
|
</Target>
|
||
|
|
||
|
<PropertyGroup>
|
||
|
<TraversalBuildDependsOn>
|
||
|
BuildAllProjects;
|
||
|
$(TraversalBuildDependsOn);
|
||
|
</TraversalBuildDependsOn>
|
||
|
|
||
|
<TraversalCleanDependsOn>
|
||
|
CleanAllProjects;
|
||
|
$(TraversalCleanDependsOn);
|
||
|
</TraversalCleanDependsOn>
|
||
|
</PropertyGroup>
|
||
|
|
||
|
<Target Name="Build" DependsOnTargets="$(TraversalBuildDependsOn)" />
|
||
|
|
||
|
<Target Name="Clean" DependsOnTargets="$(TraversalCleanDependsOn)" />
|
||
|
|
||
|
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
|
||
|
|
||
|
<Target Name="BuildAndTest" DependsOnTargets="Build;Test" />
|
||
|
<Target Name="RebuildAndTest" DependsOnTargets="Rebuild;Test" />
|
||
|
<Target Name="Test" />
|
||
|
</Project>
|