* Add MaxCppStandard option to the target, so the CppStd can be limited if it would be set higher for any reason. HoloLens for example does not support c++20 because it uses the /ZW flag to enable WinRT and these are incompatible. I will look into making WinRT only be added if it is required for a Module at a later time
* Any module that sets bTreatAsEngineModule will be upgraded to c++20 unless it has already overridden it to c++17, unless MaxCppStandard is set.
* Some modules, mostly in plugins, are set in the ModuleRules to always build with c++17. This is generally because third party source is included that are incompatible with c++20 but there are a few cases that should be looked into later
* VS2019 needed a few extra fixes but also supports c++20. Reminder that support for the 2019 toolchain is going to be removed in 5.5
#jira UE-182121
#rb Francis.Hurteau
#preflight 6441adee434155a8f8688d45
#preflight 6441adfcf030f684d53981c5
[CL 25153700 by Joe Kirchoff in ue5-main branch]
-Moving much of engine/source/runtime/headmounteddisplay to a plugin mainly to reduce minimum UE executable size and memory use. But this is also nice for organization. The ideal would be to move everything except interfaces used by core engine. VREditor pulling in UMotionControllerComponent is the main blocker at this time. That dependency is expected to go away eventually at which point we can do the rest of this transfer.
-Added dependencies to XRBase plugin or module as necessary, refactored to avoid some dependencies, removed a few unnecessary dependencies.
-Stripped vestigial VR references from a few project templates. Mostly just unused HeadMountedDisplay module refs, but a tiny bit of code from TP_Puzzle.
-Fixed dependency cycle ignores related to MaterialShaderQualitySettings PIEPreviewDeviceProfileSelector and UnrealEd. For reasons I do not understand the HeadMountedDisplay dependency on AugmentedReality was preventing the detection of those, long existent, cycles.
#jira UE-181824
#review
#rb Robert.Srinivasiah
#preflight 642f3cbf4c3ccbbdf1990a1f 6434291c28551807175e1142
[CL 24984065 by Jeff Fisher in ue5-main branch]
#preflight 642dca73c6769c6082fc8693
#rb Phil.Pizlo
#rb Andrew.Scheidecker
This patch makes it possible to generate header files in a way that the Verse VM will take advantage of.
[CL 24960308 by saam barati in ue5-main branch]
* Add MinimumCpuArchitectureX64 enum, valid values are None, AVX, AVX2, & AVX512. Default value is None
* Obsolete boolean bUseAVX in favor of MinCpuArchX64
* Add MinCpuArchX64 setting to TargetRules
* Add Optional MinCpuArchX64 to ModuleRules, will override any target setting if not null
* Only pass this /arch for x64 platforms
* Can be controlled on the command line with -MinCpuArchX64=
#jira UE-181851
#rb Bryan.Sefcik
#preflight 6425fc7f91589478cdc7867c
[CL 24861220 by Joe Kirchoff in ue5-main branch]
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Module CppStandard needs to be overridden if it doesn't match the target, rather than if it doesn't match the default
#preflight 640659f02559570cc77b55ed
[CL 24532448 by joe kirchoff in ue5-main branch]
- Added IntermediateDirectoryNoArch to UEBuildModule (we can use this in the future to put generated definitions headers, which can help reduce rebuilds going between multi- and single-arch)
#rb Joe.kirchoff
#jira UE-178211,UE-178589
#preflight 63fd3cb72b1a2765f9a46322
[CL 24441385 by josh adams in ue5-main branch]