* Staged the wrong Dotnet directory when making CW from Windows (it would stage Dotnet/6.20.00/windows)
* The ScriptModule code that used the Automation.json files to discover the precompiled UAT script dlls didn't handle \'s on Linux in the paths, and since Windows wrote out the files, there are \'s aplenty. I fixed up the known issue, but possibly all paths loaded from the json files should be fixed up, but it's not easy to do automatically
* We moved to using RunUAT.sh instead of calling dotnet directly, however because we make the CW on Windows, dotnet was not executable, and the code in RunUAT.sh to find the dotnet executable and make it executable (chmod `which dotnet`) only works if dotnet is already executable! So, I moved the +x code into SetupDotnet.sh, on Linux and Mac
#rb eric.knapik
#preflight 62ccd2009922f7e512b6e51a
#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 21055451 via CL 21055464 via CL 21055478
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf
[CL 21076349 by josh adams in ue5-main branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
Add a layer of caching to avoid running msbuild as much as possible.
#jira UE-109181
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 17102399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17102408 by jonathan adamczewski in ue5-release-engine-test branch]
RunUAT.sh:
Setup Mono environment on Mac and Linux so that AutomationTool is able to launch xbuild for CsCompile tasks that have not been transitioned to NET Core.
(Linux change is untested)
CsCompileTask.cs:
Don't add the "/restore" argument to command line when building using xbuild as it does not appear to be supported.
InstalledEngineBuild.xml:
Remove CsCompile invocations for UAT projects as these are currently not able to be compiled by UAT: CsCompile does not know how use the bundled dotnet to build NET Core projects, and [our bundled] mono does not support NET Core projects.
This file is consumed by AutomationTool, which is compiled by RunUAT.sh. As such, it can generally be assumed that the UAT build is up to date when the built files are consumed (InstalledEngineBuild.xml has directives to tag the AutomationTool files to ensure they are included.)
#jira UE-112471
[CL 15902338 by jonathan adamczewski in ue5-main branch]
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]
Added CopyLocalLockFileAssemblies to some addins that added new dependencies (nuget packages) to make sure these gets added to the output folder.
UAT now have a dependency on WindowsForms (on Windows) to enable the WinForms usage in Gauntlet and Turnkey, but is still a console application so just making sure the right assemblies are referenced.
Fixed up shootergame csproj were I had accidentally removed EngineDir props which would have prevented it from working for installed builds as a foreign project.
#rb ben.marsh
[CL 14773885 by Joakim Lindqvist in ue5-main branch]
- Use this in RunUAT.sh to control how the background workaround for child processes not dying is used for mono UAT
#rb brandon.schaefer
#fyi joakim.lindqvist
[CL 14504487 by Josh Adams in ue5-main branch]
#rb none
#jira UE-90537
[FYI] Chad.Garyet
#ROBOMERGE-SOURCE: CL 12154683 in //UE4/Release-4.25/... via CL 12154690
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v659-12123632)
[CL 12154702 by ben marsh in Main branch]
#rb josh.adams, ben.marsh
(ushell-p4-cherrypick of 7973988 by Martin.Ridgers)
(ushell-p4-cherrypick of 8124246 by Martin.Ridgers)
[CL 10889764 by Martin Ridgers in Dev-Core branch]
Only use msbuild in mono when using an installed copy and not just when >= 5.0. The UE dist uses 5.16 but does not have the msbuild executable or dependencies (will address for 4.24 - UE-78476)
Explicitly use bash when calling .RunUAT.sh from from root stub file for OSs that are set to use a different shell
#jira UE-78311
[FYI] ben.marsh,arciel.rekman,michael.trepka,tim.gautier
#rb na
#ROBOMERGE-SOURCE: CL 7828884 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v389-7813075)
[CL 7828885 by andrew grant in Main branch]