Add a layer of caching to avoid running msbuild as much as possible.
#jira UE-109181
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 17102399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17102408 by jonathan adamczewski in ue5-release-engine-test branch]
Move NativeProjects partially into BuildUtilities - class split to avoid pulling in a larger chain of dependencies.
#jira none
#ROBOMERGE-SOURCE: CL 16608480 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16608488 by jonathan adamczewski in ue5-release-engine-test branch]
RootDirectory, EngineDirectory, UnrealBuildToolPath are now found in BuildUtilities' UnrealBuild namesapce.
The way these are computed has changed. Previously, it was assumed that the application is UnrealBuildTool, and paths were constructed relative to that assembly.
Now, the assumption is that the process is located under a "Engine/Build/DotNET" sub-path and paths are constructed relative to that.
#jira none
#ROBOMERGE-SOURCE: CL 16607440 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16607455 by jonathan adamczewski in ue5-release-engine-test branch]
#jira
#ROBOMERGE-SOURCE: CL 12682307 via CL 12682308 via CL 12682309
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12682312 by ben marsh in Main branch]
Project arg is now optional and will simply sync the engine.
Passing -CL=0 will now require the -force argument before syncing files out of the workspace.
Fixed issue with deep samples (e.g AREnvProbe) not being discovered by FindProjectFileFromName
Added NativeProjects.ClearCache option for the case when syncing a project from P4 that isn't yet on disk
Fixed issue with P4.FileExistsInDepot returning true if passed a path that isn't in the users client view. Relates to UE-78832 but not the entire fix
Fixed issue with BuildEditor not working without a project arg.
Fixed issue building projects that don't have source
[CODEREVIEW] ben.marsh
#jira UE-78832, UE-78826
#rb na
#ROBOMERGE-OWNER: andrew.grant
#ROBOMERGE-AUTHOR: andrew.grant
#ROBOMERGE-SOURCE: CL 8008332 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v396-7974030)
[CL 8008726 by andrew grant in Main branch]