Commit Graph

119 Commits

Author SHA1 Message Date
Robert Manuszewski
e6072fb050 UnrealBuildTool: Added UnrealHeaderTool version checking when checking if it's up to date.
#change UBT will check for API version of all UnrealHeaderTool binaries to detect partial syncs
#change Added BuildHostPlatform class for runtime platform abstraction

[CL 2245408 by Robert Manuszewski in Main branch]
2014-08-06 07:05:15 -04:00
Steve Robb
7adc9ca97d Generated code information separated into if the module *has* any and if so, *if* we're generating it now... then using the 'has' information to generate the linker fixup file.
#ttp 342622: CRITICAL: Regression: BINARY: PLATFORMERGAME: white square on the screen in cooked version

#codereview robert.manuszewski,ben.marsh

[CL 2240877 by Steve Robb in Main branch]
2014-08-02 09:44:00 -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
Mark Satterthwaite
d922524627 Implemented support for Distcc + DMUCs as an alternative to XGE on Mac OS X.
By either manually configuring distcc & DMUCS as per their documentation, or using the DistCode Xcode plugin compilation can be distributed amongst networked Macs.
All Macs must have the same developer tools installed & the same distcc/DMUCS/DistCode and be on the same local network.
This works for compiling for Mac & iOS and it should be possible to configure distcc & DMUCS manually for use on build farms for remote building from Windows.
Linux could also use this for local builds or remote build farms - but I'm not in a position to test this.

[CL 2238171 by Mark Satterthwaite in Main branch]
2014-07-31 07:33:17 -04:00
Ankit Khare
7dcc3e1c64 #UBT
#TTP 342328 (HTML5: Packaging Blueprint projects fails)

   -  A compiler generated file was missing from the manifest, fixed
   -  clean up -  instead of calling static functions, call virtual function on tool chain, move platform specific code to derived tool chains.

#codereview peter.sauerbrei

[CL 2236049 by Ankit Khare in Main branch]
2014-07-29 13:38:03 -04:00
Michael Trepka
e5fa9d51e7 Initial support for specifying additional files or folders that need to be copied to Mac app bundle in module's Build.cs file. For now only used for Mac CoreAudio's RadioEffectUnit plugin. More files and support for iOS bundles will follow soon.
[CL 2234811 by Michael Trepka in Main branch]
2014-07-28 14:55:48 -04:00
Marcus Wassmer
b7baab74cc Fix XboxOne AutoSDK builds through UAT.
[CL 2232899 by Marcus Wassmer in Main branch]
2014-07-26 12:24:29 -04:00
Marcus Wassmer
64eec3f77a Force all builders into a clean state for autosdks
[CL 2232443 by Marcus Wassmer in Main branch]
2014-07-25 21:56:32 -04:00
Dmitry Rekman
03907dd460 UBT: Fix unnecessary relinking on Linux.
[CL 2230860 by Dmitry Rekman in Main branch]
2014-07-24 18:41:31 -04:00
Marcus Wassmer
bd10ebbf76 Fix child UBT processes incorrectly detecting manual SDKs
#codereview dmitry.rekman

[CL 2230285 by Marcus Wassmer in Main branch]
2014-07-24 14:00:30 -04:00
Marcus Wassmer
8d0a822c1e Add more error printout to AutoSDK. Extra checks for OutputEnvVars
[CL 2229900 by Marcus Wassmer in Main branch]
2014-07-24 10:15:08 -04:00
Jaroslaw Palczynski
876f515115 Temporary disable EULA violation check by default.
#codereview Robert.Manuszewski

[CL 2228425 by Jaroslaw Palczynski in Main branch]
2014-07-23 09:34:56 -04:00
Marcus Wassmer
07fd4b83b0 Non monolithic projects will load AutoSDK environment properly.
#codereview Josh.Adams, dmitry.rekman, michael.trepka, ben.marsh

[CL 2227662 by Marcus Wassmer in Main branch]
2014-07-22 17:59:23 -04:00
Robert Manuszewski
1aa18890fc Temporarily switching off EULA violation warnings
[CL 2225823 by Robert Manuszewski in Main branch]
2014-07-21 15:05:48 -04:00
Jaroslaw Palczynski
1f4ff8519f UBT: EULA check should omit Programs as well.
[CL 2225603 by Jaroslaw Palczynski in Main branch]
2014-07-21 11:05:05 -04:00
Jaroslaw Palczynski
3c666065a6 CIS fix.
Not every AppName is represented as module, hence this additional check cannot be made.

[CL 2225416 by Jaroslaw Palczynski in Main branch]
2014-07-21 06:13:37 -04:00
Jaroslaw Palczynski
51ba0ff826 CORE: UBT should detect and prevent linkage that violates our EULA.
If UBT is building a non-editor configuration it throws an error if the produced binaries has non-redistributable dependencies.

User can avoid throwing error and change it to warning at the end with flag BuildConfiguration.bBreakBuildOnLicenseViolation = false.

In general module to be redistributable it must not be neither Development nor Editor type. This behavior can be overridden though. One have to just assign true or false to IsRedistributableOverride field of ModuleRules in <ModuleName>.Build.cs file.

UBT will not check for the dependencies also if the module being built is non-redistributable (e.g. some internal programs).

#ttp 335755
#codereview Robert.Manuszewski

[CL 2225366 by Jaroslaw Palczynski in Main branch]
2014-07-21 04:28:22 -04:00
Mike Fricker
2e3e66c699 UnrealBuildTool: No longer scans all includes before running UHT, unless UObject modules are out of date (part 2)
- Fixed initial problems with partially rolled back change in CL 22223765

[CL 2223870 by Mike Fricker in Main branch]
2014-07-18 16:34:12 -04:00
Mike Fricker
9744e95b42 Fixed monolithic link errors (regression)
- Partially backed out experimental UBT changes from CL 2223639

[CL 2223765 by Mike Fricker in Main branch]
2014-07-18 14:28:35 -04:00
Marcus Wassmer
460b2d20d1 Refactor AutoSDKs in preparation for doing doing AutoSDK setup for the editor.
[CL 2223660 by Marcus Wassmer in Main branch]
2014-07-18 14:21:02 -04:00
Mike Fricker
1d09e223f1 UnrealBuildTool: No longer scans all includes before running UHT, unless UObject modules are out of date
- This can reduce the time it takes for UBT to run when no UObject files were changed

[CL 2223639 by Mike Fricker in Main branch]
2014-07-18 14:20:08 -04:00
Mike Fricker
120b80ad3d Removed obsoleted UObject source file checking code
- This hasn't been needed for a few months, since the new GetUHTModuleInfo() implementation

[CL 2223479 by Mike Fricker in Main branch]
2014-07-18 10:25:51 -04:00
Mike Fricker
9366024660 Added UnrealBuildTool performance diagnostic for UObject file gather time
[CL 2223430 by Mike Fricker in Main branch]
2014-07-18 10:12:10 -04:00
Lee Clark
895502dfb6 PS4 - Runtime conversion of callstack addresses to function names.
* Linker outputs .map
* External PS4MapFile.exe parses the .map file and generates a compressed symbol info file
* At runtime the stack address is used to find the function name from the symbol info file
* Works for all configs except shipping, including packaged builds

[CL 2223261 by Lee Clark in Main branch]
2014-07-18 10:10:24 -04:00
Dmitry Rekman
263bbe7e0c Support for modular builds (cross and native).
- Parts of PR #242 (with changes).

#codereview Josh.Adams

[CL 2222405 by Dmitry Rekman in Main branch]
2014-07-17 13:49:42 -04:00