Some behavior changes:
Output paths - Both tools are now output to a subdirectory of Binaries/Dotnet, I believe most hardcoded paths have been fixed up but there may be tools that will fail because of this.
UAT Plugin Building - As .NET Core does not support AppDomain unloading, how we build the plugins has changed quite a bit, these are now built before UAT is started rather then by UAT itself. If you just start UAT via RunUAT.bat/sh this should just continue to work.
#rb ben.marsh
[CL 14834347 by Joakim Lindqvist in ue5-main branch]
This makes it possible to build UAT with these references without having to run UBT first. Thus also fixes net core building of the project.
This adds about 5 seconds to the build time of automation tool but eliminates the need to run UBT and should avoid the need to implement -compile in UAT (in the end saving more then these 5 seconds)
This essentially does the same as UBT did before, create a .reference file on disk that can then be read by msbuild, it just does this in msbuild as well so we have fewer components involved.
#rb ben.marsh
[CL 14640899 by Joakim Lindqvist in ue5-main branch]
* Added support for more complex Msbuild conditions (using static property methods) as we use this to do per platform checks in the csprojs.
* Tweaks to the parsing of csprojs as expecations are different for netcore (mostly for how configurations are defined)
* Lastly if -dotnetcore flag is present when generating projects, use the netcore project files instead.
#rb ben.marsh
[CL 14572331 by Joakim Lindqvist in ue5-main branch]
Added a set of netcore csprojs to BuildUtilities and DotnetUtilities that build to a seperate output folder. This allows other tools to still target .net framework (like UAT for instance).
UBT is still by default targeted as .net framework.
Note that UBT built for net core has a different output directory Engine/Binaries/DotNet/UnrealBuildTool/UnrealBuildTool.exe - this is due to how a netcore project output looks with signficantly more files that are related to that application (that would be overwritten if using a shared directory).
To opt in to this set UE_USE_DOTNET=1 environment variable.
Please note that due to the changed output directory a lot of tooling will likely break at this point.
#rb ben.marsh
[CL 14419918 by Joakim Lindqvist 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]
UBT: When generating visual studio project files, projects with multiple editor targets will use the default editor target config setting, if it exists, to determine which editor target should be added to the main project file. All others will generate separate projects inside the VS solution.
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 13169045 via CL 13169053 via CL 13169054 via CL 13169058 via CL 13169079
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13169085 by graeme thornton in Main branch]
#rnx
#ROBOMERGE-SOURCE: CL 13132309 via CL 13137042 via CL 13137199 via CL 13137212 via CL 13137228
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v687-13115495)
[CL 13137240 by graeme thornton in Main branch]
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 13115425 via CL 13115430 via CL 13115434 via CL 13115440 via CL 13115446
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13115454 by graeme thornton in Main branch]
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 12754541 via CL 12754548 via CL 12754551
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v678-12743200)
[CL 12754556 by josh adams in Main branch]
- Does not have the changes for new .ini file locations
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 12676628 via CL 12676630 via CL 12676633
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12676637 by josh adams in Main branch]
#rb none
#jira
#ROBOMERGE-SOURCE: CL 12232883 in //UE4/Release-4.25/... via CL 12232888
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)
[CL 12234793 by ben marsh in Main branch]