Skip to content

Commit 1bc7eb0

Browse files
authored
Fix incremental build break (#2263)
* Added a targets file to retarget CopyLocalFiles from MUX. * Adding a target for AppX packaging, plus putting the properties in a target so we're sure that IntDir and OutDir have been populated by the time we get to them.
1 parent 7423909 commit 1bc7eb0

File tree

5 files changed

+57
-0
lines changed

5 files changed

+57
-0
lines changed

test/IXMPTestApp/IXMPTestApp.Shared.projitems

+1
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@
196196
<VisualStudioVersion>15.0</VisualStudioVersion>
197197
</PropertyGroup>
198198
<Import Project="$(CSharpTargetsFilePath)" />
199+
<Import Project="..\RetargetCopyLocalFiles.targets" />
199200
<Import Project="$(MSBuildThisFileDirectory)\..\..\CustomInlineTasks.targets" />
200201
<Target Name="CustomAfterGenerateAppPackages" AfterTargets="_GenerateAppxPackage" Condition="$(BuildingWithBuildExe) != 'true'">
201202
<RunPowershellScript Path="$(MSBuildThisFileDirectory)\..\..\tools\ExtractPackageDependencies.ps1" Parameters="-sourceFile $(OutDir)\$(MSBuildProjectName).build.appxrecipe -platform $(PlatformName) -outputFile $(AppxPackageTestDir)$(AppxPackageName).dependencies.txt" FilesWritten="$(AppxPackageTestDir)$(AppxPackageName).dependencies.txt" />

test/MUXControlsAdhocApp/MUXControlsAdhocApp.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@
181181
<VisualStudioVersion>14.0</VisualStudioVersion>
182182
</PropertyGroup>
183183
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
184+
<Import Project="..\RetargetCopyLocalFiles.targets" />
184185
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
185186
Other similar extension points exist, see Microsoft.Common.targets.
186187
<Target Name="BeforeBuild">

test/MUXControlsTestApp/MUXControlsTestApp.Shared.projitems

+1
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@
339339
<VisualStudioVersion>15.0</VisualStudioVersion>
340340
</PropertyGroup>
341341
<Import Project="$(CSharpTargetsFilePath)" />
342+
<Import Project="..\RetargetCopyLocalFiles.targets" />
342343
<Import Project="$(MSBuildThisFileDirectory)\..\..\CustomInlineTasks.targets" />
343344
<Target Name="RemovePagesToTest" BeforeTargets="MarkupCompilePass1">
344345
<ItemGroup>

test/RetargetCopyLocalFiles.targets

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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 ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4+
<!-- We'll put these properties in a target to ensure that IntDir and OutDir have been populated when we set the other properties. -->
5+
<Target Name="_SetMuxDirs">
6+
<PropertyGroup>
7+
<_ThemesSuffix>Themes\</_ThemesSuffix>
8+
<_DensityStylesSuffix>DensityStyles\</_DensityStylesSuffix>
9+
<_MuxIntDir>$([System.IO.Path]::GetFullPath('$(IntDir)..\..\Microsoft.UI.Xaml\obj\Generated Files\'))</_MuxIntDir>
10+
<_MuxIntDirThemes>$(_MuxIntDir)$(_ThemesSuffix)</_MuxIntDirThemes>
11+
<_MuxIntDirDensityStyles>$(_MuxIntDir)$(_DensityStylesSuffix)</_MuxIntDirDensityStyles>
12+
<_MuxOutDir>$([System.IO.Path]::GetFullPath('$(OutDir)..\Microsoft.UI.Xaml\Microsoft.UI.Xaml\'))</_MuxOutDir>
13+
<_MuxOutDirThemes>$(_MuxOutDir)$(_ThemesSuffix)</_MuxOutDirThemes>
14+
<_MuxOutDirDensityStyles>$(_MuxOutDir)$(_DensityStylesSuffix)</_MuxOutDirDensityStyles>
15+
</PropertyGroup>
16+
</Target>
17+
<!-- Microsoft.UI.Xaml lists its CopyToOutputDirectory files as the ones from the IntDir, since that's where
18+
*it* copies to *its* output directory. However, the IncrementalClean target will clean up those files
19+
if they weren't rebuilt, so anything including Microsoft.UI.Xaml will need to retarget the files' sources
20+
to the project's OutDir instead. -->
21+
<Target Name="RetargetCopyLocalFiles" AfterTargets="GetCopyToOutputDirectoryItems" BeforeTargets="_CopyOutOfDateSourceItemsToOutputDirectory" DependsOnTargets="_SetMuxDirs">
22+
<Message Text="_MuxIntDir = $(_MuxIntDir)" />
23+
<Message Text="_MuxOutDir = $(_MuxOutDir)" />
24+
<Message Text="_SourceItemsToCopyToOutputDirectory = @(_SourceItemsToCopyToOutputDirectory)" />
25+
<ItemGroup>
26+
<_MuxCopyLocalXamlThemesFiles Include="@(_SourceItemsToCopyToOutputDirectory)" Condition="'%(RootDir)%(Directory)' == '$(_MuxIntDirThemes)'" />
27+
<_MuxCopyLocalXamlDensityStylesFiles Include="@(_SourceItemsToCopyToOutputDirectory)" Condition="'%(RootDir)%(Directory)' == '$(_MuxIntDirDensityStyles)'" />
28+
<_SourceItemsToCopyToOutputDirectory Remove="@(_MuxCopyLocalXamlThemesFiles)" />
29+
<_SourceItemsToCopyToOutputDirectory Remove="@(_MuxCopyLocalXamlDensityStylesFiles)" />
30+
<_SourceItemsToCopyToOutputDirectory Include="@(_MuxCopyLocalXamlThemesFiles -> '$(_MuxOutDirThemes)%(Filename)%(Extension)')" />
31+
<_SourceItemsToCopyToOutputDirectory Include="@(_MuxCopyLocalXamlDensityStylesFiles -> '$(_MuxOutDirDensityStyles)%(Filename)%(Extension)')" />
32+
</ItemGroup>
33+
<Message Text="_MuxCopyLocalXamlThemesFiles = @(_MuxCopyLocalXamlThemesFiles)" />
34+
<Message Text="_MuxCopyLocalXamlDensityStylesFiles = @(_MuxCopyLocalXamlDensityStylesFiles)" />
35+
<Message Text="_SourceItemsToCopyToOutputDirectory = @(_SourceItemsToCopyToOutputDirectory)" />
36+
</Target>
37+
<Target Name="RetargetAppxPackagePayloadFiles" AfterTargets="_WireUpCoreRuntime" BeforeTargets="_GenerateAppxPackageRecipeFile" DependsOnTargets="_SetMuxDirs">
38+
<Message Text="_MuxIntDir = $(_MuxIntDir)" />
39+
<Message Text="_MuxOutDir = $(_MuxOutDir)" />
40+
<Message Text="AppxPackagePayload = @(AppxPackagePayload)" />
41+
<ItemGroup>
42+
<_MuxPayloadXamlThemesFiles Include="@(AppxPackagePayload)" Condition="'%(RootDir)%(Directory)' == '$(_MuxIntDirThemes)'" />
43+
<_MuxPayloadXamlDensityStylesFiles Include="@(AppxPackagePayload)" Condition="'%(RootDir)%(Directory)' == '$(_MuxIntDirDensityStyles)'" />
44+
<AppxPackagePayload Remove="@(_MuxPayloadXamlThemesFiles)" />
45+
<AppxPackagePayload Remove="@(_MuxPayloadXamlDensityStylesFiles)" />
46+
<AppxPackagePayload Include="@(_MuxPayloadXamlThemesFiles -> '$(_MuxOutDirThemes)%(Filename)%(Extension)')" />
47+
<AppxPackagePayload Include="@(_MuxPayloadXamlDensityStylesFiles -> '$(_MuxOutDirDensityStyles)%(Filename)%(Extension)')" />
48+
</ItemGroup>
49+
<Message Text="_MuxPayloadXamlThemesFiles = @(_MuxPayloadXamlThemesFiles)" />
50+
<Message Text="_MuxPayloadXamlDensityStylesFiles = @(_MuxPayloadXamlDensityStylesFiles)" />
51+
<Message Text="AppxPackagePayload = @(AppxPackagePayload)" />
52+
</Target>
53+
</Project>

test/TestAppCX/TestAppCX.vcxproj

+1
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@
272272
</ProjectReference>
273273
</ItemGroup>
274274
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
275+
<Import Project="..\RetargetCopyLocalFiles.targets" />
275276
<ImportGroup Label="ExtensionTargets">
276277
</ImportGroup>
277278
</Project>

0 commit comments

Comments
 (0)