Commit Graph

18 Commits

Author SHA1 Message Date
Ben Marsh
3d6c0e0a81 Convert target receipts to JSON, so they can be read early at startup like version manifests, and unify the way that target receipts and version manifests are loaded and saved.
[CL 2669100 by Ben Marsh in Main branch]
2015-08-26 08:25:10 -04:00
Ben Marsh
4dce26f266 Catch exception when searching for Incredibuild paths, rather than spawning where.exe.
#codereview Chris.Babcock

[CL 2666521 by Ben Marsh in Main branch]
2015-08-24 15:37:21 -04:00
Chris Babcock
41c78e55ca Better way to locate IncrediBuild xgConsole.exe (avoids illegal characters in path)
#jira UE-20312
#ue4
#codereview Josh.Adams,Ben.Marsh

[CL 2666206 by Chris Babcock in Main branch]
2015-08-24 12:40:11 -04:00
Peter Sauerbrei
34146c450d refactored Log to LogLog and LogConsole to Log
#uat

[CL 2662556 by Peter Sauerbrei in Main branch]
2015-08-20 09:37:11 -04:00
Ben Marsh
c7355c6ac9 Add a UAT command to sync and build a project from Perforce, similar to UGS.
[CL 2659547 by Ben Marsh in Main branch]
2015-08-18 13:16:16 -04:00
Ben Marsh
f3c4e9a21f Don't add build.version as a build product; it's never meant to be checked in (legacy code from when we used to submit build.properties).
[CL 2657300 by Ben Marsh in Main branch]
2015-08-15 19:33:28 -04:00
Peter Sauerbrei
42cc6d1f4d real fix for logging verbosity.
#uat

[CL 2634621 by Peter Sauerbrei in Main branch]
2015-07-27 17:28:09 -04:00
Peter Sauerbrei
dc1d815f84 refactored the logging system for UAT/UBT to be more like UE4
we now use an enum similar to UE4 with Fatal, Error, Warning, Display, Log, Verbose, and VeryVerbose
Log will only go to the log file unless -verbose is passed on the command line
reduced some of the output from UAT to be Log only

[CL 2631062 by Peter Sauerbrei in Main branch]
2015-07-23 14:51:46 -04:00
Ben Marsh
a5f534451b Remove the ENGINE_VERSION define from Version.h and ObjectVersion.cpp; it's superceded by GEngineVersion. EngineVersion.cpp now defines the constants GEngineVersionChangelist and GCompatibleWithEngineVersionChangelist, which are used to construct GEngineVersion and GCompatibleWithEngineVersion. Modifying those constants allows updating the engine version separately to the defines used for resource files (allowing UGS to update the version number without triggering all files to be relinked).
[CL 2625344 by Ben Marsh in Main branch]
2015-07-18 16:57:53 -04:00
Ben Marsh
96b6932640 Fix case of build.version for Linux.
[CL 2617529 by Ben Marsh in Main branch]
2015-07-10 22:01:36 -04:00
Ben Marsh
417d294f48 Ensure build.version is writeable before updating it.
[CL 2617103 by Ben Marsh in Main branch]
2015-07-10 15:37:22 -04:00
Ben Marsh
9be95b3c51 Add a function to IDesktopPlatform to query the version of an engine (either from the new JSON build.version file, or from Version.h if that fails). Make UE4Build.cs update it during builds.
[CL 2617067 by Ben Marsh in Main branch]
2015-07-10 15:21:32 -04:00
Ben Marsh
dcaec587e9 Add AutomationUtils.Automation.dll to UAT build products.
[CL 2616035 by Ben Marsh in Main branch]
2015-07-09 20:05:56 -04:00
Wes Hunt
7fa290bb33 Summary: running UAT from VS is simpler and faster.
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]
2015-07-09 10:15:37 -04:00
Ben Marsh
6e67d700e6 Add a scoped stopwatch class for writing out telemetry events.
[CL 2609657 by Ben Marsh in Main branch]
2015-07-02 16:16:19 -04:00
Wes Hunt
b4757a05f6 Add ParallelExecutor telemetry
[CL 2606724 by Wes Hunt in Main branch]
2015-06-30 19:35:44 -04:00
Wes Hunt
7d1463eede Restore Build Telemetry that was accidentally clobbered.
[CL 2606402 by Wes Hunt in Main branch]
2015-06-30 16:32:35 -04:00
Wes Hunt
506f7e64a4 UEB-260 - Break AutomationTool into AutomationUtils that all automation projects depend on, and AutomationTool, which essentially only contains the startup code.
* 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]
2015-06-30 11:40:05 -04:00