From 442432ea15241a3e9ee3d70c5c24e5565655e55b Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Tue, 23 Nov 2021 05:22:56 -0600 Subject: [PATCH] Fixes the wapproj fast-up-to-date check (#11806) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm working on making the FastUpToDate check in Vs work for the Terminal project. This is one of a few PRs in this area. FastUpToDate lets vs check quickly determine that it doesn't need to do anything for a given project. However, a few of our projects don't produce all the right artifacts, or check too many things, and this eventually causes the `wapproj` to rebuild, EVERY TIME YOU F5 in VS. This third PR deals with the Actual fast up to date check for the CascadiaPackage.wapproj. When #11804, #11805 and this PR are all merged, you should be able to just F5 the Terminal in VS, and then change NOTHING, and F5 it again, without doing a build at all. The wapproj `GetResolvedWinMD` target tries to get a winmd from every cppwinrt executable we put in the package. But we DON'T produce a winmd. This makes the FastUpToDate check fail every time, and leads to the whole wapproj build running even if you're just f5'ing the package. EVEN AFTER A SUCCESSFUL BUILD. Setting GenerateWindowsMetadata=false is enough to tell the build system that we don't produce one, and get it off our backs. ### teams chat where we figured this out [3:38 PM] Dustin Howett however, that's not the only thingĀ that "GetTargetPath" checks. [3:38 PM] Dustin Howett oh yeah more info: wapproj calls GetTargetPath on all projects it references [3:38 PM] Dustin Howett when it calls GTP on WindowsTerminal.vcxproj it is getting back a winmd (!) [3:39 PM] Dustin Howett here's the magic [3:39 PM] Dustin Howett ![image](https://user-images.githubusercontent.com/18356694/142945542-74734836-20d8-4f50-bf3a-be4e1170ae13.png) [3:39 PM] Dustin Howett it checks if any LinkĀ items specify GenerateWindowsMetadata ![image](https://user-images.githubusercontent.com/18356694/142945593-fd232243-0175-4653-8c34-cdc364a16031.png) --- .../WindowExe/WindowExe.vcxproj | 17 +++++++++++++ .../CascadiaPackage/CascadiaPackage.wapproj | 25 ++++++++++++++----- .../TerminalAzBridge/TerminalAzBridge.vcxproj | 17 +++++++++++++ .../WindowsTerminal/WindowsTerminal.vcxproj | 17 +++++++++++++ 4 files changed, 70 insertions(+), 6 deletions(-) diff --git a/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj b/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj index 4332ae5d0..18a5a05fe 100644 --- a/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj +++ b/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj @@ -118,6 +118,23 @@ WindowsLocalDebugger + + + + false + + + diff --git a/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj b/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj index ba722f246..56e0eb2e7 100644 --- a/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj +++ b/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj @@ -61,13 +61,26 @@ + - - - - - - + + {CA5CAD1A-1754-4A9D-93D7-857A9D17CB1B} + + + {067F0A06-FCB7-472C-96E9-B03B54E8E18D} + + + {f2ed628a-db22-446f-a081-4cc845b51a2b} + + + {506fd703-baa7-4f6e-9361-64f550ec8fca} + + + {9CBD7DFA-1754-4A9D-93D7-857A9D17CB1B} + + + {71CC9D78-BA29-4D93-946F-BEF5D9A3A6EF} + diff --git a/src/cascadia/TerminalAzBridge/TerminalAzBridge.vcxproj b/src/cascadia/TerminalAzBridge/TerminalAzBridge.vcxproj index 3e2ee8b36..cf465a2a3 100644 --- a/src/cascadia/TerminalAzBridge/TerminalAzBridge.vcxproj +++ b/src/cascadia/TerminalAzBridge/TerminalAzBridge.vcxproj @@ -68,5 +68,22 @@ + + + + false + + + diff --git a/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj b/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj index 236a60600..2db699c03 100644 --- a/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj +++ b/src/cascadia/WindowsTerminal/WindowsTerminal.vcxproj @@ -115,6 +115,23 @@ WindowsLocalDebugger + + + + false + + +