Commit Graph

3385 Commits

Author SHA1 Message Date
Wes Hunt
585af51d15 TempStorage Refactor
GUBP High Level
* Temp Storage is zipped into a single archive per node now. This results in ~75% reduction in temp storage usage and network traffic, not to mention the per-file overhead.
* Temp Storage is in P:\\Builds\\{Game}\\TmpStore instead of P:\\Builds\\{Game}\\GUBP (to facilitate easier cleaning of this new structure).
* Temp Storage nodes are in subdirectories of {Branch}\\{CL}\\{NodeName} now instead of a flat directory structure that was hard to manually sift through.

GUBP Mid Level
* Removed -Store= and -StoreSuffix= test parameters.
* Added -NoZipTempStorage parameter to turn off temp storage zipping if necessary.
* Created GUBP.JobInfo class that collects info about the job as a whole to be passed around by GUBP. Mostly used by any code that need to interact with TempStorage.
* Created TempStorageNodeInfo that describes the necessary parameters to find the temp storage location for a node.
* Fully XML commented TempStorage.cs, and commented internals all major functions.
* Added a bunch of telemetry data for storing, retrieving, and cleaning shared temp storage.

UAT Mid Level
* Fixed a bug in Ionic.Zip that make ExtractAll() not work on Mono, checked in new DLLs.
* Added UAT parameter -UseLocalBuildStorage that allows you to test build storage stuff completely locally. Writes to Engine\\Saved\\LocalBuilds\\...

GUBP Low Level
* Refactored some GUBP startup code so temp vars would be limited in scope. Makes it easier to track the impact of refactoring these things.
* CullNodesForPreflight is only called for preflight builds.
* Refactored TempStorage.FindTempStorageManifests to use new TmpStore structure and harden the brittle string/path parsing it was doing. See the new TempStorage FindMatchingSharedTempStorageNodeCLs().
* Refactored TempStorage Saving and Loading to use XDocument instead of older XmlDocument. Removed a bunch of redundant checks.
* Use StripBaseDirectory and MakeRerootedFilePath to remove the brittle directory manipulation code. Directories no longer require a '/' at the end.
* Removed a few redundant caching layers in cleaning temp storage that try to ensure we don't clean a folder twice. None of them were necessary.
* Removed unused single-threaded copy code from temp storage.
* Updated Temp Storage unit test, and fully commented the logic behind it.

UAT Low Level
* UAT top level exception handler is now a single log line now to help parsers find the error.
* Removed several uses of FormatException as it doesn't display the entire exception chain, and is not as good as the default exception formatter.
* Removed ExceptionToString as it used FormatException, which was not a good precedent.
* Fixed several cases of exception propagation that was not properly chaining the inner exception.
* Refactored ThreadedCopyFiles to use Parallel.For because it was just as fast (if not faster) and much simpler to maintain.
* Removed the suffix from Robust_FileExists_NoExceptions because it's sole purpose in life WAS to throw exceptions!
* Added a bunch of XML doc comments to CommandUtils.
* Modernized some container manipulation and iteration to use IEnumerable and extension methods more appropriately.
* Added several @todos for other minor cleanup stuff that should happen eventually.
* Fixed some uses of String.Compare to use invariant culture.
#codereview:ben.marsh

[CL 2644846 by Wes Hunt in Main branch]
2015-08-05 10:22:11 -04:00
Leigh Swift
f3cbd62bfa Merging using UE4-To-UE4-LauncherDev
CL# 2644628 on 05/08/2015 05:12
---------------------
Quick comment fix for BuildPatchTool main cpp

[CL 2644631 by Leigh Swift in Main branch]
2015-08-05 05:13:16 -04:00
Chris Babcock
28d1b83a10 Use gnu-libstdc++ 4.8 for NDK level 19, and allow 4.9 for higher NDK levels
Only use ld.gold for Clang 3.6 if unity build
#jira UE-10647
#ue4
#android

[CL 2644345 by Chris Babcock in Main branch]
2015-08-04 19:58:25 -04:00
Dmitry Rekman
3d4c157110 Revert the previous change and disable XGE again.
- Modular builds (editor, UT server) seem to be broken by this since FixDeps step probably is not listing its prerequisites correctly.

#codereview Ben.Marsh

[CL 2644331 by Dmitry Rekman in Main branch]
2015-08-04 19:39:07 -04:00
Peter Sauerbrei
a277b21917 UE-18895 - can now deploy unicode paths/filenames
#ios

[CL 2644040 by Peter Sauerbrei in Main branch]
2015-08-04 16:36:51 -04:00
Ankit Khare
08ec877c77 Always copy web server during packaging itself too for html5. #jira UE-19556
[CL 2643992 by Ankit Khare in Main branch]
2015-08-04 16:19:39 -04:00
Dmitry Rekman
85c1194619 Enabling XGE for Linux in hopes that the crashes are gone.
#codereview Ben.Marsh

[CL 2643908 by Dmitry Rekman in Main branch]
2015-08-04 15:22:37 -04:00
Bob Tellez
76f066306f [AUTOMERGE]
#UE4 Added a PALTest for string precision

--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2643891 by Bob.Tellez on 2015/08/04 15:18:26.

[CL 2643898 by Bob Tellez in Main branch]
2015-08-04 15:19:39 -04:00
Timothy Reynolds
fae6a68b46 Added missing Source folder to zipping filter list.
UE-19560

[CL 2643666 by Timothy Reynolds in Main branch]
2015-08-04 13:36:36 -04:00
Peter Sauerbrei
0ad0789bfb UE-17831 - fixed issue with non-existent dSYM files being added to the receipt
Also fixed name issue with the ini file
#ios
#codereview ben.marsh

[CL 2643624 by Peter Sauerbrei in Main branch]
2015-08-04 13:08:35 -04:00
Peter Sauerbrei
c39eaa72bc UE-19348 - fixed crash on start up for Strategy Game in iOS 9
UE-19367 - fxied crash on start up for Sun Temple in iOS 9
#ios

[CL 2643590 by Peter Sauerbrei in Main branch]
2015-08-04 12:43:26 -04:00
Ben Marsh
3fb12c7ee6 Call out segmentation fault errors (and other signals) when the editor commandlet terminates abnormally, as well as printing out the exit code.
[CL 2643513 by Ben Marsh in Main branch]
2015-08-04 11:25:24 -04:00
Steve Robb
062ba9412f Makefiles enabled on Mac.
Explicit serialization functions used instead of reflection, to avoid deserialization problems on Mono.
Version number added to makefiles to allow versioning in future.
Makefiles still disabled if the host platform differs from the built platform, to continue to avoid any problems 'when building with RPCUtility'.

#codereview robert.manuszewski,michael.trepka

[CL 2643502 by Steve Robb in Main branch]
2015-08-04 11:20:50 -04:00
Wes Hunt
b54e1e418b #jira UE-19582
Re-added ambiguous Automation ctor that was removed in CL2605826. It is now marked with [Obsolete], and will be removed in the future. CL2643334 already fixed the instances that were mistakenly being routed to the varargs version.
#codereview:richard.fawcett, leigh.swift, ben.marsh

[CL 2643482 by Wes Hunt in Main branch]
2015-08-04 11:05:28 -04:00
Richard Fawcett
95a659a830 Fix up calls to construct AutomationException(string Message, Exception Ex), as this overloaded constructor has been removed.
The overloaded constructor was removed in CL 2605826, so all existing calls are being interpreted as AutomationException(string Message, object[] Params), causing runtime failures when Message does not contain a replacement placeholder "{0}", and potential unwanted behavior if it does.

#jira OPP-3951
#codereview Wes.Hunt, Leigh.Swift

[CL 2643334 by Richard Fawcett in Main branch]
2015-08-04 09:33:03 -04:00
Ben Marsh
9daf29ce73 Prevent using the dedicated network share for ShooterGame from now on. Will be removed in the next few days.
[CL 2643301 by Ben Marsh in Main branch]
2015-08-04 08:47:24 -04:00
Mikolaj Sieluzycki
a53cf2e072 Make UEnums store values as uint8 instead of int8.
#codereview Robert.Manuszewski

[CL 2643276 by Mikolaj Sieluzycki in Main branch]
2015-08-04 08:20:16 -04:00
Keith Judge
ae9f8843de Starting to check in experimental Fast Semantics support, starting with a simple switch (disabled).
[CL 2643242 by Keith Judge in Main branch]
2015-08-04 07:04:38 -04:00
Maciej Mroz
ae93f71eb4 CodeGenerator sets CppType in Enum
UByteProperty::GetCPPType returns proper type

#codereview Steve.Robb

[CL 2641863 by Maciej Mroz in Main branch]
2015-08-03 09:58:36 -04:00
Ben Marsh
3733f73569 When compiling a modular target, write out a manifest of build products to each output directory listing the valid modules in that directory and their version. Allows faster switching of changelists when using UGS (because it's no longer necessary to re-link all modules), and safeguards against stale DLLs from a different target causing loader errors. Uses compiled-in API version if BUILT_FROM_CHANGELIST is non-zero.
[CL 2641800 by Ben Marsh in Main branch]
2015-08-03 08:47:15 -04:00
Ben Marsh
dbde9c8964 Store the full list of input and ordering dependenices for each node, rather than just the ones which are referenced explicitly.
[CL 2641487 by Ben Marsh in Main branch]
2015-08-02 11:30:07 -04:00
Ben Marsh
28771d37c4 Fix a couple of annoying variable names with spelling mistakes ("FullNamesOfPseudosependencies" and "OrdereredToDo")
[CL 2641397 by Ben Marsh in Main branch]
2015-08-01 16:05:47 -04:00
Ben Marsh
d30033495c Remove some GUBPNode dependencies from GUBP.cs.
[CL 2641394 by Ben Marsh in Main branch]
2015-08-01 15:55:12 -04:00
Wes Hunt
0fff2b2d6f Added additional build telemetry when storing to shared temp storage. Outputs the total file count and total size in bytes.
* ie: UAT.StoreToTempStorage.5.1024
* this can be pulled about by downstream telemetry to measure temp storage performance across the system, and how it's being used in general.

Misc
* Fixed CommanUtils.WriteToFile to add a Newline to match old behavior.
* Added a new feature to the telemetry stopwatch to allow setting a dynamically generated string when finishing the timing.
#codereview:ben.marsh

[CL 2640845 by Wes Hunt in Main branch]
2015-07-31 15:51:24 -04:00
Wes Hunt
9f10de8554 Remove unnecessary var
[CL 2640726 by Wes Hunt in Main branch]
2015-07-31 14:49:46 -04:00