Optionally consume the Windows SDK via NuGet package

This is for internal Microsoft builds that want to consume prerelease SDK versions
This commit is contained in:
Shawn Hargreaves 2018-03-04 19:42:26 -08:00
Родитель 0f130bb537
Коммит d66c561f8f
7 изменённых файлов: 54 добавлений и 6 удалений

Просмотреть файл

@ -214,7 +214,7 @@
be isolated from the environment that's formed around running
Win2D.proj up to this point, and to suppress the Sandcastle
false positive warning BHT0001 -->
<Exec Command="msbuild $(MSBuildThisFileDirectory)tools\docs\BuildDocs.proj"
<Exec Command="&quot;$(MSBuildBinPath)\msbuild&quot; $(MSBuildThisFileDirectory)tools\docs\BuildDocs.proj"
IgnoreStandardErrorWarningFormat="true"
CustomErrorRegularExpression=": error "
CustomWarningRegularExpression=": warning (?!BHT0001)" />
@ -284,6 +284,9 @@
<NuGetRestore Include="@(ConfigToRestore)" Condition="%(BuildPlatform.Identity) != AnyCPU">
<Platform>%(BuildPlatform.Identity)</Platform>
</NuGetRestore>
<!-- Internal Microsoft builds can optionally consume the Windows SDK via NuGet -->
<NuGetRestore Include="build\pkges\packages.config" Condition="'$(UseNuGetSDK)' != ''" />
</ItemGroup>
</Target>

Просмотреть файл

@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- [[NOT IN SAMPLE]] -->
<!-- Internal Microsoft builds can optionally consume the Windows SDK via NuGet -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.props" Condition="'$(UseNuGetSDK)' != '' and Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.props')" />
<Import Project="$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.props" Condition="'$(UseNuGetSDK)' != '' and Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.props')" />
<!-- [[IN SAMPLE]] -->
<Import Project="Win2D.common.props" />
<ItemGroup Label="ProjectConfigurations">

Просмотреть файл

@ -15,4 +15,21 @@
</PropertyGroup>
<Import Project="Win2D.common.targets" />
<!-- Internal Microsoft builds can optionally consume the Windows SDK via NuGet -->
<ImportGroup Label="ExtensionTargets" Condition="'$(UseNuGetSDK)' != ''">
<Import Project="$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.targets" Condition="Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.targets')" />
<Import Project="$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.targets" Condition="Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" Condition="'$(UseNuGetSDK)' != ''">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.props')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.props'))" />
<Error Condition="!Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.10.0.16299.15\build\MS.Uwp.rs3rls.targets'))" />
<Error Condition="!Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.props')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.props'))" />
<Error Condition="!Exists('$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\MS.Uwp.rs3rls.Native.10.0.16299.15\build\MS.Uwp.rs3rls.Native.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,4 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Win2D.common.targets" />
<!-- [[NOT IN SAMPLE]] -->
<!-- Internal Microsoft builds can optionally consume the Windows SDK via NuGet -->
<ItemGroup Condition="'$(UseNuGetSDK)' != '' and '$(TargetPlatformIdentifier)' == 'UAP'">
<PackageReference Include="MS.Uwp.rs3rls">
<Version>10.0.16299.15</Version>
</PackageReference>
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MS.Uwp.rs3rls" version="10.0.16299.15" targetFramework="native" />
<package id="MS.Uwp.rs3rls.Native" version="10.0.16299.15" targetFramework="native" />
</packages>

2
build/pkges/readme.txt Normal file
Просмотреть файл

@ -0,0 +1,2 @@
This directory contains support files for internal Microsoft builds of Win2D,
which can optionally consume prerelease versions of the Windows SDK via NuGet.

Просмотреть файл

@ -44,16 +44,19 @@
</ClCompile>
</ItemDefinitionGroup>
<Target Name="mdmerge" AfterTargets="Midl" Inputs="@(Midl -> '%(MetadataFileName)')" Outputs="$(MergedWinmdDirectory)\$(RootNamespace).winmd">
<!-- MdMerge and reference paths differ depending on locally installed vs. NuGet SDK -->
<PropertyGroup>
<MdMergeExe>"$(WindowsSdkDir)\bin\$(PreferredToolArchitecture)\mdmerge.exe"</MdMergeExe>
<MdMergeExe Condition="'$(UseNuGetSDK)' == ''">"$(WindowsSdkDir)\bin\$(PreferredToolArchitecture)\mdmerge.exe"</MdMergeExe>
<MdMergeExe Condition="'$(UseNuGetSDK)' != ''">"$(WindowsSdkDir)\bin\$(TargetPlatformVersion)\$(PreferredToolArchitecture)\mdmerge.exe"</MdMergeExe>
</PropertyGroup>
<ItemGroup Condition="'$(ApplicationTypeRevision)' == '8.1'">
<MetaDataDir Include="$(WindowsSDK_MetadataPath)" />
</ItemGroup>
<ItemGroup Condition="'$(ApplicationTypeRevision)' == '10.0'">
<ItemGroup Condition="'$(UseNuGetSDK)' == ''">
<MetaDataDir Include="$(WindowsSDK_MetadataPath)\Windows.Foundation.FoundationContract\2.0.0.0" />
<MetaDataDir Include="$(WindowsSDK_MetadataPath)\Windows.Foundation.UniversalApiContract\3.0.0.0" />
</ItemGroup>
<ItemGroup Condition="'$(UseNuGetSDK)' != ''">
<MetaDataDir Include="$(WindowsSDK_MetadataPath)\$(TargetPlatformVersion)\Windows.Foundation.FoundationContract\3.0.0.0" />
<MetaDataDir Include="$(WindowsSDK_MetadataPath)\$(TargetPlatformVersion)\030\5.0.0.0" /> <!-- Windows.Foundation.UniversalApiContract lives here -->
</ItemGroup>
<Exec Command="$(MdMergeExe) -v @(MetaDataDir -> '-metadata_dir &quot;%(Identity)&quot;', ' ') -o &quot;$(MergedWinmdDirectory)&quot; -i &quot;$(UnmergedWinmdDirectory)&quot; -partial -n:Microsoft.Graphics.Canvas:3" />
</Target>
<Target Name="mc" AfterTargets="mdmerge" Inputs="@(mc)" Outputs="$(EtwDirectory)\%(filename).rc">