Commit Graph

42 Commits

Author SHA1 Message Date
Mike Fricker
e85564743c [INTEGRATE] Unreal Build Tool: Adaptive unity builds (experimental!)
- New UBT support for "adaptive unity builds", which can greatly increase iterative compile times
- This feature allows UBT to keep track of which source files you're currently editing between runs
- UBT will exclude your "working set" source files from all unity blob files, allowing for fast iterative compiles!
- Currently, adaptive unity builds relies on files being writable vs. read-only to determine what you're working on (P4 edit)
- Enable this new feature in your BuildConfiguration.xml file.

    <BuildConfiguration>
           <bUseAdaptiveUnityBuild>true</bUseAdaptiveUnityBuild>
    </BuildConfiguration>

[CL 2671467 by Mike Fricker in Main branch]
2015-08-27 16:33:06 -04:00
Peter Sauerbrei
17b5b9cea5 add log display type as part of each log message
add -verbose=Level argument to be able to specify the verbosity level of logging, defaults to Log
#codereview ben.marsh, robert.manuszewski, paul.fazio

[CL 2654467 by Peter Sauerbrei in Main branch]
2015-08-13 09:00:22 -04:00
Ori Cohen
e13700b667 Added the ability to turn on release physx libs for all configurations
[CL 2652723 by Ori Cohen in Main branch]
2015-08-12 10:22:52 -04:00
Mark Satterthwaite
d0e5c59013 Remove unnecessary variable declaration to silence unused warning.
[CL 2651432 by Mark Satterthwaite in Main branch]
2015-08-11 14:02:16 -04:00
Mark Satterthwaite
934f141a98 Update Distcc/DMUCS integration for new version of DistCode - must provide the correct DistProp & server for DMUCS and acquire the number of build hosts via Xcode on OS X.
[CL 2651279 by Mark Satterthwaite in Main branch]
2015-08-11 12:16:48 -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
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
Mikolaj Sieluzycki
ddf0f7e588 Add basic UObject thread safety checks to UnrealCodeAnalyzer.
[CL 2631991 by Mikolaj Sieluzycki in Main branch]
2015-07-24 04:48:48 -04:00
Mikolaj Sieluzycki
13819dc17d Make UnrealCodeAnalyzer public.
- Move UnrealCodeAnalyzer to Programs/UnrealCodeAnalyzer
- Move clang/llvm binaries and includes to ThirdParty/llvm
#codereview Robert.Manuszewski

[CL 2613304 by Mikolaj Sieluzycki in Main branch]
2015-07-08 05:11:51 -04:00
Ben Marsh
e0a010415b Treat shadow variable warnings as errors in non-unity builds.
[CL 2582001 by Ben Marsh in Main branch]
2015-06-09 18:14:52 -04:00
Steve Robb
1c3da60ac2 Re-enabling makefiles.
#codereview robert.manuszewski

[CL 2553208 by Steve Robb in Main branch]
2015-05-15 13:57:43 -04:00
Steve Robb
57b2567e3d Makefiles disabled by default.
#codereview robert.manuszewski

[CL 2550488 by Steve Robb in Main branch]
2015-05-14 06:03:17 -04:00
Ben Marsh
6b1d263572 Make bEnableShadowVariableWarnings a per-module setting, so we don't break reuse of shared build intermediates.
#codereview Marc.Audy, Wes.Hunt

[CL 2547047 by Ben Marsh in Main branch]
2015-05-12 08:03:21 -04:00
Martin Mittring
0d85991359 added AyncCompute feature for XboxOne from Lionhead
[CL 2545676 by Martin Mittring in Main branch]
2015-05-11 13:50:05 -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
Marc Audy
5eba946116 Allow -Wshadow to be enabled via build configuration
[CL 2520977 by Marc Audy in Main branch]
2015-04-22 09:58:49 -04:00
Mike Fricker
f669292c9a Enabled UBTMakefiles by default on Windows
- Fast UnrealBuildTool startup and dependency checking
- Preflighted, but needs wider testing and debugging.  More info to come soon.
#codereview michael.trepka

[CL 2401108 by Mike Fricker in Main branch]
2015-01-08 12:59:20 -05:00
Mike Fricker
47381d84ea UnrealBuildTool: Cleaning up UBT Makefile support in preparation for wide testing
- Collapsed and renamed some of the new UBT settings for fast build iteration
- New 'BuildConfiguration.bUseUBTMakefiles' that replaces the old experimental settings (defaults to off in this changelist.)
- Cleaned up some comments
- No effective changes

[CL 2400071 by Mike Fricker in Main branch]
2015-01-07 14:16:46 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Mikolaj Sieluzycki
f893b88f3e Initial implementation of UnrealCodeAnalyzer.
#codereview Robert.Manuszewski

[CL 2375863 by Mikolaj Sieluzycki in Main branch]
2014-12-04 05:35:51 -05:00
Mike Fricker
5b41e9e8d7 GitHub PR #641: Allow XGE to be used when compiling from binary-only version of UE4 (if XGE is installed)
https://github.com/EpicGames/UnrealEngine/pull/641

[CL 2372528 by Mike Fricker in Main branch]
2014-12-01 10:28:18 -05:00
Lee Clark
f3c85eb381 Initial support for SN-DBS distributed build system. Will be used for compiling for PS4 if SN-DBS is installed and Incredibuild isn't available/enabled.
[CL 2335563 by Lee Clark in Main branch]
2014-10-21 06:47:56 -04:00
Jaroslaw Palczynski
354877d63e [GitHub] 450 : Added UBT build option to limit number of jobs.
#ttp 347138

[CL 2309629 by Jaroslaw Palczynski in Main branch]
2014-09-25 08:10:40 -04:00
Josh Adams
7fe7dfe099 - Allow for UAT scripts to set up UBT to have proper engine relative path and UProject path. Only BuildCookRun does it currently
- Fixed .ini parsing of bools to allow for True, true, TRUE, etc.
#codereview Robert.Manuszewski,niklas.smedberg

[CL 2284471 by Josh Adams in Main branch]
2014-09-04 10:24:49 -04:00
Ben Marsh
bcd8c2c8a6 Remove code path from UBT which generates an XML build environment. APIDocTool now scrapes build environment from XGE export instead.
#codereview Mike.Fricker

[CL 2267338 by Ben Marsh in Main branch]
2014-08-22 09:03:54 -04:00