Commit Graph

16 Commits

Author SHA1 Message Date
Robert Manuszewski
c0b4cfe3bf UBT: Moved ScopedTimer from UAT to UBT, added ScopedCounter
[CL 2245334 by Robert Manuszewski in Main branch]
2014-08-06 04:29:36 -04:00
Mike Fricker
80f6dc9362 UnrealBuildTool: Experimental fast C++ include dependency scanning
- Adds experimental super-fast C++ outdated file checking
- This feature is turned off for now as we continue to test and improve it
      - You can try it out by enabling "bUseExperimentalFastDependencyScan" option in your BuildConfiguration.xml
- Here is the basic idea:
     - We no longer exhaustively scan all includes and build up a big graph every invocation
     - Instead, source files whose build products are missing have their includes scanned asynchronously while being compiled
     - The flat list of dependent includes for every outdated C++ is saved into a new cache file ("FlatCPPIncludes.bin")
     - On the next run, we quickly load that up and "just know" which files to check timestamps on to determine what is out of date
- Lots of "@todo fastubt" comments were added to UnrealBuildTool for potential performance optimizations and further improvements on this feature.

UnrealBuildTool: Determination of which modules have UObjects is now faster
- We now cache which modules have UObjects and load those for the next session

UnrealBuildTool: Module "shared" precompiled header determination is now much faster
- We no longer scan all C++ includes for a module to figure out which "shared" PCH to use
- Instead, we use the module dependencies specified in the module's *.Build.cs file
- For example, if your module depends on "Engine" and "UnrealEd", we choose "UnrealEd"'s shared PCH

Other UBT optimizations:
- Reduced calls to string formatting functions when setting up API definitions for all modules
- Added new performance diagnostics when bPrintPerformanceInfo is enabled in BuildConfiguration.xml
- We no longer check for "external" headers when scanning includes (this code didn't work at all)
- Optimized CleanDirectorySeparators() utility function to avoid string copies

Fixed UnrealBuildTool not saving DependencyCache under a platform-named folder

[CL 2238266 by Mike Fricker in Main branch]
2014-07-31 09:34:11 -04:00
Ben Marsh
ed24db2ee1 Pipe the output from Android ndk-build and ant-build to the log, so it's possible to see error messages when they fail.
#codereview Chris.Babcock, Josh.Adams

[CL 2237619 by Ben Marsh in Main branch]
2014-07-30 18:05:40 -04:00
Ben Marsh
66f87e475b Fix scraping of environment variables in non-US locales. Include paths, libraries and programs may be installed to non-ANSI directory names (eg. C:\\Pliki Program≤w\\ in Polish), and CMD.EXE needs to be run with the /U switch to allow Unicode output.
[CL 2169961 by Ben Marsh in Main branch]
2014-07-07 10:26:12 -04:00
Josh Adams
aa3fabd4f4 - SSH/Rsync can now be used in UBT, but is not currently recommended yet (one step is much slower, and IPhonePackager issues)
- Integrated IPhonePackager code directly into IOS Automation (this is not 100% working yet, it's a work-in-progress). Original IPP still in same place untouched
- Added a return code to RunLocalProcess
- Added IPhonePackager UAT script that will pass along params to the internal IPP code (RunUAT IPhonePackager -cmd="<ipp commandline here>" [-nocompile])
#codereview Robert.Manuszewski,peter.sauerbrei

[CL 2123325 by Josh Adams in Main branch]
2014-07-01 10:58:33 -04:00
Jaroslaw Palczynski
220c44b806 [GitHub] 132 : Introduce NativeBuildEnvironmentConfiguration
#github 132
#ttp 334942

[CL 2098971 by Jaroslaw Palczynski in Main branch]
2014-06-09 11:12:01 -04:00
Jaroslaw Palczynski
17d9ce9ab2 [GitHub] 131 : Improve cloning of Environments
#ttp 334941
#codereview Robert.Manuszewski

[CL 2081720 by Jaroslaw Palczynski in Main branch]
2014-05-22 04:16:41 -04:00
Wes Hunt
d964af7252 Added BuildInfo Cleanup script
* Created RocketPeriodicClean command (use -SimulateCDN and/or -Preview for testing locally)
  * repairs inconsistencies in the BI service
  * Recovers manifests from P that are not found on the CDN
  * Ensures labeled builds on Prod are labeled on GameDev
  * removes orphaned BuildInfos
  * removes unlabeled BuildInfos
  * Deletes any manifests that are not referenced after the previous steps.
  * Deletes any labels that are not used after the previous steps.

Added Compactify script
* Created unified Compactify command (use -SimulateCDN and/or -Preview for testing locally)
  * Supports Rocket and Launcher
  * Compactifies all associated CloudDirs on all the associated CDNs
  * Can specify a subset of CDNs using -CDNLocations=XXX,YYY
* Tweaked existing compactify script to use EnumerateFiles and only walk the file list once.
  * This should increase the speed of compactify as we don't have to walk millions of chunks more than once.

MCPBuildDelivery Changes:
* Added ToString() overloads for McpBuildInfo and McpLabel
* GetAppLabelNames() and GetAppNames() changes
  * Flattened result instead of returning dictionaries.
  * Support NULL for AppName to return all Apps.
* Added DeleteLabel() functionality.
* Added CDNLocation and BuildInfoLocation enums to allow programmatic, strongly-typed select of these environments.
  * Used heavily by the cleanup scripts to abstract the operations it performs on all environments.
  * Added conversion functions to go between McpConfigName and these enums.
* Added MountCDNShare(CDNLocation) that allows us to abstract access to the 3 fileshares we use to host chunks.
  * Assert if called on Mac as we can't mount them there yet.
* Added CopyChunksToCDN(SrcCDN, DestCDN) that abstracts transporting chunks from one fileshare to another.
  * Removed legacy support for -CDNDrive cmdline override, as it no longer makes sense globally now.

UBT Changes
* Added HashCodeHelper (from C# MCP) which assists creating IComparable<> implementations with reasonable GetHashCode() implementations.

FortBuild Changes
* Removed several MCP-related commands that are outdated and should no longer be in the code.

#codereview:eric.newman,gil.gribb,robert.manuszewski,carlos.cuello

[CL 2081078 by Wes Hunt in Main branch]
2014-05-21 17:12:44 -04:00
Jaroslaw Palczynski
7606debc6d [GitHub] 66 : Start plumbing for advanced build handling
#ttp 333302
#codereview Robert.Manuszewski

[CL 2080176 by Jaroslaw Palczynski in Main branch]
2014-05-21 06:09:37 -04:00
Ben Marsh
7655980f4b Get UBT to write out progress information while compiling. Also fix missing output if telemetry fails to initialize.
[CL 2074584 by Ben Marsh in Main branch]
2014-05-15 15:33:29 -04:00
Ben Marsh
ca47fadda0 Put UnrealBuildTool.Utils.DisplayProgress back in; it's still called from UAT. Will fixup properly later.
[CL 2068365 by Ben Marsh in Main branch]
2014-05-09 13:37:36 -04:00
Ben Marsh
1eabc9130a Add markup language which can be used to report high-level user feedback from external tools. Change UBT to output the correct syntax when generating project files.
[CL 2068314 by Ben Marsh in Main branch]
2014-05-09 12:32:38 -04:00
Steve Robb
56cb3a80b5 Fix for long paths in a Mac build.
#add Utils.CollapseRelativeDirectories function, translated from FPaths.
#change MacPath now uses CollapseRelativeDirectories instead of GetFullPath.

#codereview robert.manuszewski

[CL 2062367 by Steve Robb in Main branch]
2014-05-02 14:45:05 -04:00
Jaroslaw Palczynski
442befdd2e [GitHub] 60 : Simplify GetFilenameWithoutAnyExtensions
#ttp 333297
#codereview Robert.Manuszewski

[CL 2059728 by Jaroslaw Palczynski in Main branch]
2014-04-30 07:58:55 -04:00
UnrealBot
db494a6e69 Engine source (Main branch up to CL 2037954) 2014-04-02 18:09:23 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00