Skip to content

Commit 54c1097

Browse files
authored
Fix target override as it doesn't work when the target import order changes. (#977)
* Fix target override as it doesn't work when the target import order changes. * Fix mismatch. * Minor updates.
1 parent 7e730e7 commit 54c1097

File tree

6 files changed

+11
-39
lines changed

6 files changed

+11
-39
lines changed

nuget/Microsoft.Windows.CppWinRT.targets

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
7575
$(AfterMidlTargets);
7676
GetCppWinRTMdMergeInputs;
7777
CppWinRTMergeProjectWinMDInputs;
78-
GetResolvedWinMD;
78+
CppWinRTGetResolvedWinMD;
7979
CppWinRTCopyWinMDToOutputDirectory;
8080
</AfterMidlTargets>
8181
<ResolveReferencesDependsOn>
@@ -104,6 +104,12 @@ Copyright (C) Microsoft Corporation. All rights reserved.
104104
<CleanDependsOn>
105105
$(CleanDependsOn);CppWinRTClean
106106
</CleanDependsOn>
107+
<GetTargetPathDependsOn>
108+
$(GetTargetPathDependsOn);CppWinRTGetResolvedWinMD
109+
</GetTargetPathDependsOn>
110+
<GetPackagingOutputsDependsOn>
111+
$(GetPackagingOutputsDependsOn);CppWinRTGetResolvedWinMD
112+
</GetPackagingOutputsDependsOn>
107113

108114
</PropertyGroup>
109115

@@ -202,7 +208,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
202208

203209
</Target>
204210

205-
<Target Name="ComputeGetResolvedWinMD"
211+
<Target Name="CppWinRTComputeGetResolvedWinMD"
206212
Condition="'$(CppWinRTGenerateWindowsMetadata)' == ''">
207213
<!-- If CppWinRTGenerateWindowsMetadata is not defined, compute it.-->
208214
<!-- We use Calltarget, so we don't run anything including DependsOnTargets
@@ -214,34 +220,10 @@ Copyright (C) Microsoft Corporation. All rights reserved.
214220
so it is aware of the C++/WinRT generated WinMD.
215221
Since not every project that consumes C++/WinRT uses it to generate a WinMD,
216222
we need to keep the CX logic as well. -->
217-
<Target Name="GetResolvedWinMD"
218-
DependsOnTargets="ComputeGetResolvedWinMD"
223+
<Target Name="CppWinRTGetResolvedWinMD"
224+
DependsOnTargets="CppWinRTComputeGetResolvedWinMD"
219225
Returns="@(WinMDFullPath)">
220226

221-
<!-- Copied from the CX GetResolvedWinMD target in Microsoft.CppBuild.targets -->
222-
<ItemGroup>
223-
<!-- To evaluate the GenerateWindowsMetadata value we need @(Link) to contains at least one element-->
224-
<Link Include="tmp" Condition="'@(Link)'==''">
225-
<DeleteSoon>true</DeleteSoon>
226-
</Link>
227-
228-
<!-- Condition is modified to only do this if CppWinRTGenerateWindowsMetadata is not true. -->
229-
<WinMDFullPath Condition="'%(Link.GenerateWindowsMetadata)' == 'true' AND '$(CppWinRTGenerateWindowsMetadata)' != 'true'"
230-
Include="@(Link->Metadata('WindowsMetadataFile')->FullPath()->Distinct()->ClearMetadata())">
231-
<TargetPath>$([System.IO.Path]::GetFileName('%(Link.WindowsMetadataFile)'))</TargetPath>
232-
<Primary>true</Primary>
233-
</WinMDFullPath>
234-
235-
<WinMDFullPath>
236-
<Implementation>$(WinMDImplementationPath)$(TargetName)$(TargetExt)</Implementation>
237-
<FileType>winmd</FileType>
238-
<WinMDFile>true</WinMDFile>
239-
<ProjectType>$(ConfigurationType)</ProjectType>
240-
</WinMDFullPath>
241-
242-
<Link Remove="@(Link)" Condition="'%(Link.DeleteSoon)' == 'true'" />
243-
</ItemGroup>
244-
245227
<!-- Add C++/WinRT primary WinMD to the WinMDFullPath if CppWinRTGenerateWindowsMetadata is true -->
246228
<ItemGroup>
247229
<!-- Create ItemGroup to evaluate FullPath -->

test/nuget/TestApp/TestApp.vcxproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<AppContainerApplication>true</AppContainerApplication>
1414
<ApplicationType>Windows Store</ApplicationType>
1515
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
16-
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion>
16+
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.19041.0</WindowsTargetPlatformVersion>
1717
<WindowsTargetPlatformMinVersion>10.0.17134.0</WindowsTargetPlatformMinVersion>
1818
</PropertyGroup>
1919
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -76,8 +76,6 @@
7676
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
7777
<WarningLevel>Level4</WarningLevel>
7878
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
79-
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
80-
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8179
<DisableSpecificWarnings>
8280
</DisableSpecificWarnings>
8381
</ClCompile>

test/nuget/TestRuntimeComponent1/TestRuntimeComponent1.vcxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@
8080
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
8181
<WarningLevel>Level4</WarningLevel>
8282
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
83-
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
84-
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8583
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
8684
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
8785
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>

test/nuget/TestRuntimeComponent2/TestRuntimeComponent2.vcxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
8282
<WarningLevel>Level4</WarningLevel>
8383
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
84-
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
85-
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8684
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
8785
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
8886
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>

test/nuget/TestRuntimeComponent3/TestRuntimeComponent3.vcxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
8282
<WarningLevel>Level4</WarningLevel>
8383
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
84-
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
85-
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8684
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
8785
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
8886
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>

test/nuget/TestRuntimeComponentEmpty/TestRuntimeComponentEmpty.vcxproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
8282
<WarningLevel>Level4</WarningLevel>
8383
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
84-
<!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use -->
85-
<AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions>
8684
<DisableSpecificWarnings>28204</DisableSpecificWarnings>
8785
<PreprocessorDefinitions>_WINRT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
8886
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>

0 commit comments

Comments
 (0)