Commit Graph

924 Commits

Author SHA1 Message Date
Ben Marsh
46abddb4b7 Add the -WithRocketPromotable argument to allow testing Rocket builds behind promotion triggers locally.
[CL 2529581 by Ben Marsh in Main branch]
2015-04-28 20:46:43 -04:00
Ben Marsh
00f1c194d8 Add dependency on the promotable trigger back in.
[CL 2529577 by Ben Marsh in Main branch]
2015-04-28 20:43:24 -04:00
Ben Marsh
1fbbf3d0d5 Make the promotion trigger depend on the Rocket promotable steps succeeding, so we can select the Shared_LabelPromoted node when manually triggering a build again.
#codereview Kellan.Carr

[CL 2529568 by Ben Marsh in Main branch]
2015-04-28 20:41:07 -04:00
Dmitry Rekman
5f61d39bc7 Fix inability to load some C# assemblies (UE-12883).
[CL 2529346 by Dmitry Rekman in Main branch]
2015-04-28 18:30:10 -04:00
Ben Marsh
6822592edf Second attempt to fix stripping for iOS and Mac builds. Uncovered lots of problems relating to the source host platform not being correct.
[CL 2528984 by Ben Marsh in Main branch]
2015-04-28 15:47:56 -04:00
Ben Marsh
c55900e58c Back out changelist 2528840
[CL 2528887 by Ben Marsh in Main branch]
2015-04-28 14:59:19 -04:00
Ben Marsh
cd02635312 Enable symbol stripping nodes for Mac and IOS.
[CL 2528840 by Ben Marsh in Main branch]
2015-04-28 14:37:58 -04:00
Jaroslaw Palczynski
b07cc86224 Cleaned up unnecessary log message from TestTempStorage.
[CL 2528375 by Jaroslaw Palczynski in Main branch]
2015-04-28 08:55:09 -04:00
Dmitry Rekman
e7b9679132 Linux: packaging fixes (UE-12940).
- Fix for build receipt (related: UE-13763).
- Handling root:/ etc paths which are sometimes passed to the lower level without expansion.

#codereview Terence.Burns

[CL 2527976 by Dmitry Rekman in Main branch]
2015-04-27 23:21:08 -04:00
Ben Marsh
1f950424ea Fix missing headers when gathering Rocket builds - incorrect path specified for root editor node.
[CL 2527904 by Ben Marsh in Main branch]
2015-04-27 22:28:19 -04:00
Ben Marsh
71d9c9120c Include the base engine project when looking for which platforms to build for. HTML5 is only built for the base engine project, so was not being included in CIS/Rocket.
[CL 2527248 by Ben Marsh in Main branch]
2015-04-27 14:26:12 -04:00
Ben Marsh
0414ebfaba Fix missing headers for editor targets (which prevents creation of new code projects), and add UBT/UAT from Windows into Mac install (which was causing an "Engine source not found" error).
[CL 2527135 by Ben Marsh in Main branch]
2015-04-27 12:57:52 -04:00
Ben Marsh
f1d8b60d57 Add symbol stripping at the IUEToolChain level. Implemented for Windows, Linux, Android arm7.
#codereview Dmitry.Rekman, Chris.Babcock

[CL 2527125 by Ben Marsh in Main branch]
2015-04-27 12:53:24 -04:00
Gil Gribb
7abd8dcd30 UAT - test command to look for overlapping .obj files
[CL 2527021 by Gil Gribb in Main branch]
2015-04-27 11:47:14 -04:00
Ben Marsh
b8122f8fc8 Use separate manifests for each node that strips symbols, so we can mix-and-match on different host platforms. Using Win64 Android build products on Mac has a different output folder than the target host platform.
[CL 2526253 by Ben Marsh in Main branch]
2015-04-26 18:28:11 -04:00
Wes Hunt
012e45b913 UBT Utils.cs (New logging system)
* Allows us to use built-in Trace providers (console, file, etc) directly and still use our custom formatting.
* Fat comments explaining why Trace.WriteXXX functions should not be used directly in our system.
* Fixes thread safety by using Trace.WriteXXX under the hood after formatting, which uses a global lock (except on Mono, where a bug appears to be preventing this. Simulating the call on that platform).
* No need for TraceEvent overloads, which saves us the extra parameter cruft.
* Removed non-varargs overloads of Log functions (technically a bit slower, but these are already small messages).
* No longer needed VerbosityFilter and ConsoleListener classes.
* Avoid calling GetSource() if we aren't outputting the source.
* Avoid formatting the string if it won't pass the verbosity level.
* Consolidated all of UAT and UBT options into this class, so they could fully share the implementation.

UBT BuildConfiguration.cs
* Added LogFilename (and --log=<file> arg) that enables logging to a file.
* Added static ctor guard that asserts if someone tries to read a config before we have loaded config files and parsed config-override commandlines. It's a poor man's hack, but better than nothing!

UBT UEBuildConfiguration.cs
* Same static ctor guard as above.

UBT UnrealBuildTools.cs (initialization refactoring)
* In general I tried to de-mystify some of the rationale behind our startup code via fat comments.
* Broke main into 3 stages:
1. "early code" that should not try to read a config value.
  * Very little code here. Mostly setting the current directory.
  * Does an early init of logging to ensure logging is around, but config values won't be ready.
2. "Init Configuration code" that loads config files and parses command lines that may override them.
  * I isolated two locations in startup that parsed long sets of switches and moved ones that trivially affected BuildConfiguration and UEBuildConfiguration in here. Those two locations seemed to have mostly copies of the same switches, indicating serious param parsing issues at some point in time.
  * This allows switches to override config files more easily than the patchwork of re-parsing that was currently used (particularly for -verbose).
  * I did a cursory examination of later code that indicated this double (actually, triple) parsing was no longer necessary with the refactors above. Any insight into why things may have ended up this way would be helpful.
3. "Post Init code" that is actually the meat of UBT.
  * I left this code largely untouched.
  * Removed 2 of 3 different command line logging statements.
  * Removed two redundant parses of config overrides (ParseBuildConfigurationFlags).
* Guarded all of main in a try/catch block to ensure no exceptions can leak from UBT without returning a valid error code. It ALMOST already did this, but only covered the part surrounded by the Mutex.
* There was a perplexing bit that redundantly called XmlConfigLoader.Reset<> (line 683) that I struggled to understand. It turns out UEBuildConfiguration was sensitive to the current directory being set before files were loaded, and the old code called XmlConfigLoader.Init() super early, which required it to be called again after the current directory was set (see UEBuldConfiguration.UEThirdPartySourceDirectory for the cause). After my changes, I verified as best I could that these calls are no longer needed and removed them.

XmlConfigLoader.cs
* Add support for Properties in XmlConfigLoader.

AutomationTool Program.cs
* Guard logging shutdown code in try/finally so it can't be missed.

AutomationTool Log.cs
* Uses new logging system from UBT
* Removed unnecessary classes (VerbosityFilter, AutomationConsoleTraceListener, and AutomationFileTraceListener)
* Console trace logic is handled by UBT code now, moved UTF8Output handling to InitLogging.
* A custom TraceListener for file logging was unnecessary.
  * Logic to handle creating the log file and retry loops was move into InitLogging, and the result passed to a regular TextFileTraceListener.
  * Logic to handle copying the log on shutdown was moved to a ShutdownLogging function.
#codereview:robert.manuszewski,michael.trepka,kellan.carr

[CL 2526245 by Wes Hunt in Main branch]
2015-04-26 18:19:28 -04:00
Richard Fawcett
3b4f321020 Merging using UE4-To-UE4-LauncherDev
[CL 2526058 by Richard Fawcett in Main branch]
2015-04-26 07:33:29 -04:00
Ben Marsh
70ce761777 Re-enable separate gather and publish steps for Rocket, so improve throughput with chunking.
[CL 2525671 by Ben Marsh in Main branch]
2015-04-25 10:33:07 -04:00
Ben Marsh
4a24a8f5e8 Change spec used to determine failure emails; was only checking source folders under a top level directory (not plugins, samples, etc...)
[CL 2525630 by Ben Marsh in Main branch]
2015-04-25 09:23:03 -04:00
Ben Marsh
36132993a5 Prevent overlapping build products from stripping the editor and tools nodes.
[CL 2525283 by Ben Marsh in Main branch]
2015-04-24 20:29:44 -04:00
Ben Marsh
430d9f08f4 Proper fix for frequency barriers. Nodes behind a barrier now include all pseudodependencies, and frequency is correctly propagated to dependents.
[CL 2525281 by Ben Marsh in Main branch]
2015-04-24 20:25:23 -04:00
Ben Marsh
33d173cbdf Fix order of node frequency calculation.
[CL 2525106 by Ben Marsh in Main branch]
2015-04-24 18:14:37 -04:00
Ben Marsh
c4d4132b2e Back out changelist 2524890
[CL 2525065 by Ben Marsh in Main branch]
2015-04-24 17:57:13 -04:00
Ben Marsh
46cd31f16a Split Rocket publish steps up, so chunking is done from a build assembled locally without passing build products through GUBP, and the final copy to network happens downstream of everything else.
[CL 2524890 by Ben Marsh in Main branch]
2015-04-24 16:12:03 -04:00
Ben Marsh
7f82423eb7 Don't compute dependent frequencies until after the frequency barriers have been applied. Increase frequency for promotables in the release branches to 2h20m.
[CL 2524699 by Ben Marsh in Main branch]
2015-04-24 14:22:40 -04:00