Imported Upstream version 5.2.0.175

Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-06-07 13:16:24 +00:00
parent 4bdbaf4a88
commit 966bba02bb
8776 changed files with 346420 additions and 149650 deletions

View File

@@ -12,7 +12,7 @@
<!-- Runs during traversal when BuildAllConfigurations is set to expand each project
to a seperate instance for each of its BuildConfigurations -->
<Target Name="ExpandAllBuildConfigurations"
<Target Name="ExpandAllBuildConfigurations"
Condition="'$(BuildAllConfigurations)' == 'true'">
<MSBuild Targets="GetBuildConfigurations"
Projects="@(Project)"
@@ -22,19 +22,49 @@
</MSBuild>
<ItemGroup>
<!-- assign configuration as a seperate step to prevent batching during the transform which can reorder the list.
order or projects matters here since this applies to traversal projects which build projects serially. -->
<_projectBuildConfigurations>
<AdditionalProperties>Configuration=%(Identity);%(_projectBuildConfigurations.AdditionalProperties)</AdditionalProperties>
</_projectBuildConfigurations>
<!-- transform back to project -->
<_ProjectWithConfiguration Include="@(_projectBuildConfigurations->'%(OriginalItemSpec)')">
<AdditionalProperties>Configuration=%(Identity);%(_ProjectBestConfigurations.AdditionalProperties)</AdditionalProperties>
</_ProjectWithConfiguration>
<_projectWithConfiguration Include="@(_projectBuildConfigurations->'%(OriginalItemSpec)')" />
</ItemGroup>
<ItemGroup>
<Project Remove="@(Project)" />
<Project Include="@(_ProjectWithConfiguration)" />
<Project Include="@(_projectWithConfiguration)" />
</ItemGroup>
</Target>
<!-- Runs during traversal to select which projects and configurations of those projects to build
<Target Name="ExpandAllBuildConfigurationsForPkgProj"
BeforeTargets="ExpandProjectReferences"
Condition="'$(MSBuildProjectExtension)' == '.pkgproj'">
<MSBuild Targets="GetPackageConfigurations"
Projects="@(_NonPkgProjProjectReference)">
<Output TaskParameter="TargetOutputs"
ItemName="_NonPkgProjProjectReferenceBuildConfigurations" />
</MSBuild>
<ItemGroup>
<!-- assign configuration as a seperate step to prevent batching during the transform which can reorder the list.
order or projects matters here since this applies to traversal projects which build projects serially. -->
<_NonPkgProjProjectReferenceBuildConfigurations>
<AdditionalProperties>Configuration=%(Identity);%(_NonPkgProjProjectReferenceBuildConfigurations.AdditionalProperties)</AdditionalProperties>
</_NonPkgProjProjectReferenceBuildConfigurations>
<!-- transform back to project -->
<_NonPkgProjProjectReferenceWitnConfiguration Include="@(_NonPkgProjProjectReferenceBuildConfigurations->'%(OriginalItemSpec)')" />
</ItemGroup>
<ItemGroup>
<_NonPkgProjProjectReference Remove="@(_NonPkgProjProjectReference)" />
<_NonPkgProjProjectReference Include="@(_NonPkgProjProjectReferenceWitnConfiguration)" />
</ItemGroup>
</Target>
<!-- Runs during traversal to select which projects and configurations of those projects to build
Batches over the projects because we need to treat BuildConfigurations as a Property
as well as copy the Project based on results of FindBestConfigurations. -->
<Target Name="FilterBuildConfiguration"
@@ -77,9 +107,23 @@
</PropertyGroup>
</Target>
<!-- Runs in a leaf project (eg: csproj) to determine configurations to package -->
<Target Name="GetPackageConfigurations"
Returns="$(PackageConfigurations)">
<ItemGroup Condition="'$(PackageConfigurations)' == ''">
<_buildConfigurations Include="$(BuildConfigurations)" />
<_excludeBuildConfigurations Include="@(_buildConfigurations)" Condition="'$(IsReferenceAssembly)' == 'true' AND ('%(Identity)' == 'netfx' OR $([System.String]::new('%(Identity)').StartsWith('net4'))) AND '$(IncludeDesktopRefInPackage)' != 'true'"/>
<_packageConfigurations Include="@(_buildConfigurations)" Exclude="@(_excludeBuildConfigurations)" />
</ItemGroup>
<PropertyGroup Condition="'$(PackageConfigurations)' == ''">
<PackageConfigurations>@(_packageConfigurations)</PackageConfigurations>
</PropertyGroup>
</Target>
<!-- Runs in a leaf project (csproj) to determine best configuration for ProjectReferences -->
<Target Name="AnnotateProjectReference"
BeforeTargets="BeforeResolveReferences"
BeforeTargets="AssignProjectConfiguration"
Condition="'@(ProjectReference)' != ''"
Inputs="%(ProjectReference.Identity)"
Outputs="unused">
@@ -89,6 +133,15 @@
<Output TaskParameter="TargetOutputs" PropertyName="_projectReferenceBuildConfigurations" />
</MSBuild>
<PropertyGroup>
<!--
When building in VS or using the solution file Configuration for some projects is set to Debug/Release
in such cases we should treat it as an empty configuration and set it to be $BuildConfiguration for the
purposes of annotating project references.
-->
<Configuration Condition="'$(Configuration)' == 'Debug' or '$(Configuration)' == 'Release'">$(BuildConfiguration)</Configuration>
</PropertyGroup>
<!-- Find the best configuration for the current Project's Configuration -->
<FindBestConfigurations Properties="@(Property)"
PropertyValues="@(PropertyValue)"
@@ -103,6 +156,11 @@
<ProjectReference>
<AdditionalProperties>Configuration=$(_projectReferenceConfiguration);%(ProjectReference.AdditionalProperties)</AdditionalProperties>
</ProjectReference>
<!-- Project references for non-test assemblies should never be copied to the output. -->
<ProjectReference Condition="'$(IsTestProject)' != 'true'">
<Private>false</Private>
</ProjectReference>
</ItemGroup>
</Target>