- Non-engine modules/targets will have to specify the "version" of includes via IncludeOrderVersion in TargetRules or ModuleRules.
- This setting will control the value of UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_XXX where XXX is the version of the engine.
- When moving types out of a header, users will need to include the new location of the type in the header it was removed from but only if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_XXX is set.
- If a target does not change its IncludeOrderVersion to the latest version, UBT will print out a message telling users how to upgrade.
- This change introduces a new set of SharedPCH permutations to make sure modules with older versions get the PCH with UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_XXX set correctly.
#jira none
#rb jonathan.adamczewski, joe.kirchoff
#preflight 623e1d3d196f3ae80b4c37ee
[CL 19518359 by christopher waters in ue5-main branch]
Our stack size defaults to 4.7M on Windows, so allowing functions to use more stack space in favor of going through the heap.
#rb steve.robb
#ROBOMERGE-SOURCE: CL 16653849
#ROBOMERGE-BOT: (v834-16658389)
[CL 16659295 by jeanfrancois dube in ue5-main branch]
* Re-defined CppStandardVersion.Default in terms of existing enums and removed it from maps and switches etc.
* Added C++20 flags for all the recognized compilers.
#jira none
#rb ben.marsh
#rnx
[CL 15801501 by halfdan ingvarsson in ue5-main branch]
Requires Visual Studio 2019 15.8 Preview 3, and targets to specify bEnableCppModules = true. Unsupported on other compilers.
Notes:
- Module interfaces need to be placed in .IXX files.
- Module/module dependencies are determined by a post-makefile/pre-build scan of all module interfaces using the compiler, and cause additional prerequisites to be inserted into the dependency graph before execution.
- Available module IFC search paths use normal UE module dependency rules.
- Header units are not currently supported.
- Regular C++ files cannot currently implement functions defined in module interfaces, due to the macros force included by UBT. These macros need to be placed in the global module fragment, but declaring a global module fragment must be done from the translation unit being compiled (making force-included headers invalid).
#rb none
[CL 14354539 by Ben Marsh in ue5-main branch]