* Fixed bugs related to header unit tags in sourcefile metadata cache. (tags are also used for iwyu and compile header paths)
* Added support for UE_ENABLE_INCLUDE_ORDER_DEPRECATED_ tags
#rb chris.waters
[CL 26262059 by henrik karlsson in ue5-main branch]
* Use object type rather than var
* Remove double newlines
* Use pattern matching
#rnx
#preflight 647780095d23eca37d28a387
[CL 25706751 by joe kirchoff in ue5-main branch]
* Added so SourceFileMetadataCache can skip tracking of includes if the include has markup HEADER_UNIT_IGNORE. This is needed for header units path. All includes that are circular needs to be marked up (there are ~10 of them in the engine)
#preflight 63d96320b73528c8f7227dd2
#rb joe.kirchoff
[CL 23939749 by henrik karlsson in ue5-main branch]
* Added tracking of markup containing information saying if a header can be used as a standalone header unit or not. This is also used by IWYU path to figure out if a header can be built stand alone
* Added tracking of includes in headers. This is used in header units path to figure out dependencies between headers (since header units will want to import produced header units from other headers
This increases the file metadata cache from 3mb to 4mb for a large game but should not affect ubt startup times noticable
#rb joe.kirchoff
#preflight skipped
[CL 23602256 by henrik karlsson in ue5-main branch]
This change does a few things:
* Improves compile times because the gen.cpp is inlined so less header parsing is required.
* Allows us to forward declare more types in the headers where we were not able to because the gen.cpp files did not have all the required headers included. The gen.cpp files required the header that generated it to include all the types because of the constructor and desructor in the gen.cpp need to know the full type.
#jira
#preflight 6323b43f8131e92d65aed1d9
[CL 22064061 by bryan sefcik in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 16642197 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16642206 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]
#rb none
#jira UE-71116
#ROBOMERGE-SOURCE: CL 5337196 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5337949 by ben marsh in Main branch]