- 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]
- Partially (except for PS4/XB1) in github PR #242.
#codereview Josh.Adams, Marcus.Wassmer, Jeff.Campeau, Peter.Lamb, Peter.Sauerbrei
[CL 2221545 by Dmitry Rekman in Main branch]
- 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]
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#change Android response files now use relative include paths to prevent overly-large response files.
#remove Rocket-specific UHT execution removed.
#remove iOS header hack removed.
#codereview robert.manuszewski,ben.marsh
[CL 2077472 by Steve Robb in Main branch]
- Added functionality to GameActivity to query for the asset manager and the mode we are using for OBB data
- Added UI element to toggle OBB packing into APK in the project packaging config panel
- Added code to add a command line switch to turn on packing during building
- Changed build system so that it will write out a JavaBuildConfig file so we know at runtime where to find the data
- Change the build system to copy and rename the OBB so that it is in the APK's asset directory uncompressed
- Added IFileHandle implementation to handle reading from an Asset based OBB and changed the OBB locating code so deal with looking for the OBB in the APK
Submitted on behalf of Robert Jones.
#codereview Daniel.Lamb,Robert.Jones
[CL 2071675 by Daniel Lamb in Main branch]