UEB-261 - Ensure that compiling AutomationTool in VS will compile all other Automation Projects
* Just set AutomationTool as your startup project and pass the command to execute.
* VS will build the script modules at build time, instead of every time at runtime.
* To make this happen, "UBT.exe -ProjectFiles" now generates a companion AutomationTool.csproj.References that make AutomationTool depend on all Automation modules.
* AutomationTool.exe defaults to not building script modules at runtime. Pass -compile if you want to dynamically build them.
* Without the .references file, AutomationTool will only build itself and you will need to pass -compile.
* RunUAT.bat still works that same, defaulting to runtime compilation and supporting -nocompile flag. It then passes -compile (or nothing) to AutomationTool.
Other
* All Automation projects target .Net 4.5. Some already were and had hard dependencies on them (Rocket and SyncGithub -> Octokit). Now that AutomationTool directly depends on them, everything had to use .Net 4.5.
* Decoupled logic for -NoCompile and -NoCompileEditor. The flags are still confusing, but -NoCompile is no longer linked to -NoCompileEditor.
* Had to leave in stub support in UAT for -NoCompile else RunUAT.bat passes it along and UAT complains that it doesn't understand it.
* Added a CommandUtils.Run option to support run command, but still output the run duration.
* Reduced the verbosity when UAT.proj is run from dozens of lines per module to a single Module -> Output line. It was looking like there were problems, but it was just msbuild spew.
#codereview:ben.marsh
[CL 2615060 by Wes Hunt in Main branch]
* Remove ErrorReporter.Error, replace with AutomationException with Error Code.
* Move ErrorCodes to AutomationException.
* Don't return exit codes. Solely rely on exceptions to propagate exit codes.
* Remove MainProc delegate
* Remove setting of Environment.ExitCode as it is ignored when main returns an int.
* ShutdownLogging is nothrow, as all exceptions would be ignored anyway.
* Wrap all shutdown steps so further ones get a chance to run.
* Move HostPlatform.Initialize into the global try/catch block
#codereview:ben.marsh
[CL 2605826 by Wes Hunt in Main branch]
Fix name of bootstrap executable when packaging content-only projects. Should be ProjectName.exe, not UE4Game.exe.
[CL 2534943 by Ben Marsh in Main branch]
- This is a first pass
- Mac uses data outside the .app so that there's only one copy of the content. This should get a bootstrap executable like Windows has
- Only tested on Mac so far, although it doesn't handle D3D11 shaders, or some of the icon updating for the bootstrap working
- Added Desktop platform icons
[CL 2505866 by Josh Adams in Main branch]
Added IsEngineInstalled function to UBT to better explain why some of the Rocket code is different.
#codereview Ben.Marsh
[CL 2472268 by Matthew Griffin in Main branch]
UEBP-34 - Integrate Leap Motion Plugin and Samples to UE4
And because I can't lockdown myself...
#lockdown james.golding
[CL 2458565 by Ben Marsh in Main branch]
Only stage CEF3 if bUsesCEF3 is set to true in the game's target.cs file. Fix for UE-9983.
#codereview Josh.Adams, Matthew.Griffin, Peter.Knepley
[CL 2450041 by Matthew Griffin in Main branch]
Added an error code for missing ue4game binaries when packaging a non code project.
Added a check in main frame actions to determine whether we display a dialog with the error message in it.
Fix for incorrect IOS stub path being logged
Fix for incorrect Android apk path being generated for non ue4game renames in ::GetFinalApkName
[CL 2427458 by Terence Burns in Main branch]