- Exclude source files from unity if their first include is in the working set.
- Compile header files in the working set in their own dedicated source file if there is not an existing source file that includes it first.
#rb Ben.Marsh
#robomerge[STARSHIP] Release-5.0-EarlyAccess
[CL 15639040 by Devin Doucette in ue5-main branch]
- PCHs and unity builds are now automatically disabled when module support is enabled.
- C++20 mode is automatically enabled if module support is enabled.
- Added test for using a module implementation unit. Seems to work with force-included headers after all (but breaks if unity builds are on)
#rb none
[CL 14354711 by Ben Marsh 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]
Mostly a find/replace, though I have looked through the changes and attempted to update references to other things as necessary (eg. renaming IOS plist files for IOS). I'm not set up to test on any platforms other than windows, and was hoping to get your blessing to submit and give QA enough time as possible to uncover issues before the next milestone release.
Particular things that I know I'm not sure about:
- Android references /UE4Game/ paths everywhere (for paths on device, I think). I have no idea if I've got them all.
- I've renamed the iOS mobileprovisions, but I don't know if they need regenerating for the new app name.
- Likewise, not sure what needs to be updated for icon bundles on iOS.
Things that have not been changed:
- Windows still uses IDI_UE4ICON for its icon
- UE4CommandLine.txt
- There's still a UE4Game module which is used by content-only projects
#rb none
[CL 14301890 by Ben Marsh in ue5-main branch]
#jira
#ROBOMERGE-SOURCE: CL 13047766 via CL 13047771 via CL 13047773
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13048573 by ben marsh in Main branch]
#jira
#ROBOMERGE-SOURCE: CL 13044750 via CL 13044751 via CL 13044754
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13048275 by ben marsh in Main branch]