- 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]
- UnsafeTypeCastWarningLevel can be set to WarningLevel.Warning or WarningLevel.Error in ModuleName.Build.cs (off by default)
- Currently only supported on MS compilers (Clang ignores the setting for now)
#jira UE-86949
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 11050203 via CL 11050250 via CL 11050262
#ROBOMERGE-BOT: (v637-11041722)
[CL 11050266 by michael noland in Main branch]
Add SSE and AVX defines to allow specifying availability on PC, MAC, and Linux.
SSE and AVX defines have ALWAYS_HAS and MAYBE_HAS variants to distinguish between available to compile and available to run without the need to check cpuid.
Add templated base classes TUnrealPlatformMathSSEBase and TUnrealPlatformMathSSE4Base to remove the boilerplate overrides added by each of the platformmaths that use the sse overrides.
#rb Steve.Robb
#rn Minor
[CL 10942197 by Matt Peters in Dev-Core branch]
#rb Ben.Marsh
#ROBOMERGE-OWNER: michael.lentine
#ROBOMERGE-AUTHOR: michael.lentine
#ROBOMERGE-SOURCE: CL 10727300 via CL 10727303 via CL 10727314 via CL 10727316
#ROBOMERGE-BOT: (v610-10636431)
[CL 10727317 by michael lentine in Main branch]
The engine will always be built with it as an error.
#rb none
[FYI] Marc.Audy
#jira none
#ROBOMERGE-SOURCE: CL 9839163 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)
[CL 9839167 by ben marsh in Main branch]
Thus we renamed bFasterWithoutUnity to bUseUnity (note the inversion of the statement) which is what you should use if a module does not support building in Unity mode.
#jira UE-73054
#rb ben.marsh
[CL 7099374 by Joakim Lindqvist in Dev-Build branch]