We need to account for source-build which sets the
OfficialBuildId property to replicate the official builds,
so we also look at the DotNetBuildOffline property to
determine that we should still build the all the packages.
Commit migrated from https://github.com/dotnet/corefx/commit/
2219e550dd790a91fe3dd68874c347c711bccc14
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
- <ItemGroup Condition="'$(OfficialBuildId)' == '' Or '$(BuildAllConfigurations)' == 'true'">
+ <ItemGroup Condition="'$(BuildingAnOfficialBuildLeg)' != 'true' Or '$(BuildAllConfigurations)' == 'true'">
<Project Include="Microsoft.NETCore.Platforms.pkgproj" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
- <ItemGroup Condition="'$(OfficialBuildId)' == '' Or '$(BuildAllConfigurations)' == 'true'">
+ <ItemGroup Condition="'$(BuildingAnOfficialBuildLeg)' != 'true' Or '$(BuildAllConfigurations)' == 'true'">
<Project Include="Microsoft.NETCore.Targets.pkgproj"/>
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.traversal.targets))\dir.traversal.targets" />
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\dir.props" />
+ <PropertyGroup>
+ <!-- Used to determine if we should build some packages only once across multiple official build legs.
+ For offline builds we still set OfficialBuildId but we need to build all the packages for a single
+ leg only, so we also take DotNetBuildOffline into account. -->
+ <BuildingAnOfficialBuildLeg Condition="'$(BuildingAnOfficialBuildLeg)' == '' AND '$(OfficialBuildId)' != '' AND '$(DotNetBuildOffline)' != 'true'">true</BuildingAnOfficialBuildLeg>
+ </PropertyGroup>
+
<!-- Packages opt-in to automatic RID-specific builds by placing a *.RID.props next to their project
that defines the OfficialBuildRID item: all RIDs targeted by the package -->
<Import Project="$(MSBuildProjectDirectory)\*.rids.props" />
</BuildRID>
</ItemGroup>
- <!-- create the "Project" item which is the current $(MSBuildProjectName).pkgproj with meta-data for all
+ <!-- create the "Project" item which is the current $(MSBuildProjectName).pkgproj with meta-data for all
supported RIDs -->
<ItemGroup>
<_project Include="@(BuildRID)">
<AdditionalLibPackageExcludes Condition="'$(SymbolFileExtension)' != ''" Include="%2A%2A\%2A$(SymbolFileExtension)" />
<AdditionalSymbolPackageExcludes Condition="'$(LibraryFileExtension)' != ''" Include="%2A%2A\%2A.a;%2A%2A\%2A$(LibraryFileExtension)" />
</ItemGroup>
-
+
<PropertyGroup>
<!-- BlockStable on private packages by default -->
<BlockStable Condition="'$(BlockStable)' == '' and $(MSBuildProjectName.Contains('Private'))">true</BlockStable>
</PropertyGroup>
-
+
</Project>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\dir.traversal.targets" />
-
- <PropertyGroup Condition="'$(OfficialBuildId)' != ''">
+
+ <PropertyGroup Condition="'$(BuildingAnOfficialBuildLeg)' == 'true'">
<!-- During an official build, only build identity packages in the AllConfigurations build -->
<SkipBuildIdentityPackage Condition="'$(BuildAllConfigurations)' != 'true'">true</SkipBuildIdentityPackage>