Commit Graph

15 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
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
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
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
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
Peter Sauerbrei
281a45a558 bump up the unity file size for compiling to prevent jump distance linker errors
TTP341310
#ue4

[CL 2220696 by Peter Sauerbrei in Main branch]
2014-07-16 12:12:58 -04:00
Keith Judge
b877cb31fc Fix texture corruption when streaming on Xbox One. Disable fast resource setting and change MinLod calls back to working on the resource rather than the shader resource view.
[CL 2121733 by Keith Judge in Main branch]
2014-06-30 07:04:35 -04:00
Jaroslaw Palczynski
a51cded662 UBT: Renamed XmlConfigField to XmlConfig attribute and left only field annotation mechanism. If class has any fields annotated then it's going to be included in the configuration mechanism.
[CL 2097041 by Jaroslaw Palczynski in Main branch]
2014-06-06 07:43:02 -04:00
Jaroslaw Palczynski
32917f05be UBT XML configuration improvements:
- XSD driven IntelliSense
- defaults read from code (default XML file will be regenerated on UBT startup if is different than it should be)
- configurable classes/fields have to be now annotated with XmlConfig and XmlConfigField attributes
#codereview Robert.Manuszewski

[CL 2095741 by Jaroslaw Palczynski in Main branch]
2014-06-05 12:12:32 -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
Keith Judge
86220377dd Remove Monolithic Direct3D switch, as this is now enabled by default.
[CL 2078889 by Keith Judge in Main branch]
2014-05-20 09:43:32 -04:00
Jaroslaw Palczynski
2c1d0143b7 #UE4 Getting rid of environmental variables for UBT configuration.
#codereview Robert.Manuszewski

[CL 2042210 by Jaroslaw Palczynski in Main branch]
2014-04-23 18:00:27 -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