Common.targets 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See LICENSE in the project root for license information. -->
  3. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  4. <!-- Check TargetPlatformMinVersion during build to block unsupported configurations. -->
  5. <Target Name="MicrosoftUIXamlCheckTargetPlatformVersion" BeforeTargets="PrepareForBuild"
  6. Condition="'$(TargetPlatformVersion)' != '' and '$(TargetPlatformMinVersion)' != '' and '$(SkipMicrosoftUIXamlCheckTargetPlatformVersion)'==''">
  7. <PropertyGroup>
  8. <MicrosoftUIXamlTargetPlatformMinCheckValue>$([System.Version]::Parse('$(TargetPlatformMinVersion)').Build)</MicrosoftUIXamlTargetPlatformMinCheckValue>
  9. </PropertyGroup>
  10. <Error
  11. Text="Microsoft.UI.Xaml nuget package requires TargetPlatformMinVersion &gt;= 10.0.17763.0 (current project is $(MicrosoftUIXamlTargetPlatformMinCheckValue))"
  12. Condition="$(MicrosoftUIXamlTargetPlatformMinCheckValue) &lt; 17763" />
  13. <PropertyGroup>
  14. <MicrosoftUIXamlTargetPlatformCheckValue>$([System.Version]::Parse('$(TargetPlatformVersion)').Build)</MicrosoftUIXamlTargetPlatformCheckValue>
  15. </PropertyGroup>
  16. <Error
  17. Text="Microsoft.UI.Xaml nuget package requires TargetPlatformVersion &gt;= 10.0.18362.0 (current project is $(MicrosoftUIXamlTargetPlatformCheckValue))"
  18. Condition="$(MicrosoftUIXamlTargetPlatformCheckValue) &lt; 18362" />
  19. </Target>
  20. <!-- WACK certification requires that types referenced by dependent packages exist in WinMD files in the root of the AppX.
  21. However, the BuildNativePackage target requires that it *not* be in that location, or else that target will return an error.
  22. In order to enable apps to pass WACK certification that reference packages that reference us, we'll add it to the package payload
  23. after that target has completed. -->
  24. <ItemGroup>
  25. <XamlWinmd Include="$(MSBuildThisFileDirectory)..\lib\uap10.0\Microsoft.UI.Xaml.winmd">
  26. <SkipHarvestingWinmdRegistration Condition="'$(MicrosoftUIXamlAppxVersion)' != ''">true</SkipHarvestingWinmdRegistration>
  27. <TargetPath>Microsoft.UI.Xaml.winmd</TargetPath>
  28. <OutputGroup>CustomOutputGroupForPackaging</OutputGroup>
  29. <ProjectName>$(ProjectName)</ProjectName>
  30. <Implementation Condition="'$(MicrosoftUIXamlAppxVersion)' == ''">Microsoft.UI.Xaml.dll</Implementation>
  31. </XamlWinmd>
  32. </ItemGroup>
  33. <PropertyGroup>
  34. <XamlWinmdName>Microsoft.UI.Xaml.winmd</XamlWinmdName>
  35. <XamlCompactXbfName>Microsoft.UI.Xaml\DensityStyles\Compact.xbf</XamlCompactXbfName>
  36. </PropertyGroup>
  37. <Target Name="_FixWinmdCopyLocal" AfterTargets="ResolveNuGetPackageAssets">
  38. <ItemGroup>
  39. <XamlWinMdCopyLocal Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)' == '$(XamlWinmdName)'" />
  40. </ItemGroup>
  41. <ItemGroup Condition="'@(XamlWinMdCopyLocal)' != ''">
  42. <ReferenceCopyLocalPaths Remove="@(XamlWinMdCopyLocal)" />
  43. </ItemGroup>
  44. </Target>
  45. <Target Name="_FixWinmdPackaging" BeforeTargets="_ComputeAppxPackagePayload">
  46. <ItemGroup>
  47. <XamlWinmdPackagingOutput Include="@(PackagingOutputs)" Condition="'%(PackagingOutputs.Filename)%(PackagingOutputs.Extension)' == '$(XamlWinmdName)'" />
  48. </ItemGroup>
  49. <ItemGroup Condition="'@(XamlWinmdPackagingOutput)' != ''">
  50. <PackagingOutputs Remove="@(XamlWinmdPackagingOutput)" />
  51. </ItemGroup>
  52. <ItemGroup>
  53. <PackagingOutputs Include="@(XamlWinmd)" />
  54. </ItemGroup>
  55. </Target>
  56. <Target Name="_RemoveXamlWinmdFromWinMetadataFolder" AfterTargets="BuildNativePackage" BeforeTargets="_AddXamlWinmdToPackageLayoutRoot">
  57. <ItemGroup>
  58. <XamlWinmdAppxPackagePayload Include="@(AppxPackagePayload)" Condition="'%(AppxPackagePayload.TargetPath)' == '$(WinMetadataDir)\$(XamlWinmdName)'" />
  59. <XamlWinmdAppxUploadPackagePayload Include="@(AppxUploadPackagePayload)" Condition="'%(AppxUploadPackagePayload.TargetPath)' == '$(WinMetadataDir)\$(XamlWinmdName)'" />
  60. </ItemGroup>
  61. <ItemGroup Condition="'@(XamlWinmdAppxPackagePayload)' != ''">
  62. <AppxPackagePayload Remove="@(XamlWinmdAppxPackagePayload)" />
  63. </ItemGroup>
  64. <ItemGroup Condition="'@(XamlWinmdAppxUploadPackagePayload)' != ''">
  65. <AppxUploadPackagePayload Remove="@(XamlWinmdAppxUploadPackagePayload)" />
  66. </ItemGroup>
  67. </Target>
  68. <Target Name="_AddXamlWinmdToPackageLayoutRoot" AfterTargets="BuildNativePackage">
  69. <ItemGroup>
  70. <AppxPackagePayload Include="@(XamlWinmd)">
  71. <TargetPath>Microsoft.UI.Xaml.winmd</TargetPath>
  72. </AppxPackagePayload>
  73. <AppxUploadPackagePayload Include="@(XamlWinmd)">
  74. <TargetPath>Microsoft.UI.Xaml.winmd</TargetPath>
  75. </AppxUploadPackagePayload>
  76. </ItemGroup>
  77. <Copy SourceFiles="@(XamlWinmd)" DestinationFiles="@(XamlWinmd -> '$(OutDir)\%(Filename)%(Extension)')" />
  78. </Target>
  79. </Project>