Ben Marsh
af44f007b1
Only determine the module distribution level when it's actually required, and don't do it when generating project files.
...
[CL 2680154 by Ben Marsh in Main branch]
2015-09-04 08:02:30 -04:00
Ben Marsh
8aec191675
Remove some esoteric options from the project file generator (for only showing public headers, and hiding NoRedist folders) to improve performance of directory scanning.
...
[CL 2679439 by Ben Marsh in Main branch]
2015-09-03 17:31:11 -04:00
Ben Marsh
9610023ca5
Use FileReference and DirectoryReference classes instead of strings for paths. Massively reduces the amount of paranoid calls to GetFullPath(), CleanDirectorySeparators() et al., and improves performance for really common UBT operations like making relative paths or checking if files are under a directory. Strong typing ensures that intention of parameters is explicit.
...
[CL 2678429 by Ben Marsh in Main branch]
2015-09-03 08:47:24 -04:00
Ben Marsh
28f7c6d8f9
Move the AddDefaultIncludePathsToModuleRules() function into UEBuildTarget, since it's not related to the RulesCompiler.
...
[CL 2674243 by Ben Marsh in Main branch]
2015-08-31 12:47:36 -04:00
Ben Marsh
d06ce0c4a0
Compile rules for the engine into separate assemblies than rules for each project, so we aren't redundantly compiling them more than once. Also compile rules for each foreign plugin into its own assembly. Reduces time taken to generate project files by almost half (~40s to ~26s) in local testing.
...
#codereview Peter.Sauerbrei
[CL 2674225 by Ben Marsh in Main branch]
2015-08-31 12:39:51 -04:00
Ben Marsh
0a89383b5a
Explicitly compile the rules assembly and pass it around as a parameter, rather than caching it as global state in RulesCompiler.
...
[CL 2674051 by Ben Marsh in Main branch]
2015-08-31 10:33:16 -04:00
Ben Marsh
6f3e34fcae
Track references to dependent modules rather than just keeping their name. Saves having to look up module names repeatedly.
...
[CL 2672889 by Ben Marsh in Main branch]
2015-08-28 15:47:20 -04:00
Ben Marsh
766278f542
Pass the module rules into the constructor module instances, rather than passing all the parameters individually. The number of things that get passed around is getting silly, and keeping the two things as ideologically separate is time consuming and hard to maintain.
...
[CL 2672163 by Ben Marsh in Main branch]
2015-08-28 08:39:42 -04:00
Ben Marsh
42c53cf179
Change IUEBuildPlatform.ModifyNewlyLoadedModule to IUEBuildPlatform.ModifyModuleRules(). Only modifying the rules object rather than the implementation itself makes it easier to optimize caching module references.
...
[CL 2672146 by Ben Marsh in Main branch]
2015-08-28 07:27:26 -04:00
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
Ben Marsh
3d6c0e0a81
Convert target receipts to JSON, so they can be read early at startup like version manifests, and unify the way that target receipts and version manifests are loaded and saved.
...
[CL 2669100 by Ben Marsh in Main branch]
2015-08-26 08:25:10 -04:00
Wes Hunt
bb27f83e9a
CleanDirectory now ignores DirectoryNotFoundExceptions to harden against outside sources deleting that folder before it gets to it. I ran into this when manually deleting a subset to Intermediates to iterate on the UBT bug.
...
[CL 2664873 by Wes Hunt in Main branch]
2015-08-21 16:09:56 -04:00
Ben Marsh
ee81251c31
Handle cases where the foreign plugin passed in to UBT is already in the known plugins list. It's not technically foreign, but it's easily handled.
...
[CL 2661015 by Ben Marsh in Main branch]
2015-08-19 11:03:05 -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
Ben Marsh
c8999e6093
Make sure the version manifests and file names are serialized to the UBT makefile. If they're not written out, we won't be able to update the *.modules files correctly when switching between targets, unless we're discarding the makefile.
...
#codereview Jamie.Dale
[CL 2653646 by Ben Marsh in Main branch]
2015-08-12 17:52:25 -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
Ben Marsh
7f9774d740
Make it clearer that TargetReceipt.Read can fail if the file doesn't exist or is formatted incorrectly.
...
[CL 2649965 by Ben Marsh in Main branch]
2015-08-10 16:07:05 -04:00
Ben Marsh
ddffc7e3dd
Fix PCH environment changing when a module has an include path dependency, but the decision to compile that module is dependent on something else. Now always generates a consistent compile environment regardless of whether the other module binary is actually built.
...
#jira UE-19783
[CL 2649648 by Ben Marsh in Main branch]
2015-08-10 13:10:18 -04:00
Mike Fricker
659cb89e9c
[INTEGRATE] UnrealBuildTool fixes for small modules
...
- Fixed small game-specific plugins always using non-unity and getting a unique PCH
- You can now override the default behavior of UBT which compiles small game modules for "fast iteration"
- Many small game modules have a low frequency of iteration, and never need a unique PCH or non-unity enabled
- You can use the following module-specific variables to override the default behavior:
MinSourceFilesForUnityBuildOverride = 1;
MinFilesUsingPrecompiledHeaderOverride = BuildConfiguration.MinFilesUsingPrecompiledHeader;
[CL 2648185 by Mike Fricker in Main branch]
2015-08-07 13:58:49 -04:00
Steve Robb
3ad72e0d88
UBT now rebuilds makefile when hotreloading a different module.
...
#codereview robert.manuszewski
[CL 2647884 by Steve Robb in Main branch]
2015-08-07 10:19:42 -04:00
Steve Robb
e446302541
Fix to module name comparison when checking files to rebuild.
...
#codereview robert.manuszewski
[CL 2646563 by Steve Robb in Main branch]
2015-08-06 12:14:25 -04:00
Josh Markiewicz
f8d83447e1
#Integration FN->Main from CL#2642868
...
Engine Source changes
[CL 2645403 by Josh Markiewicz in Main branch]
2015-08-05 15:54:57 -04:00
Peter Sauerbrei
0ad0789bfb
UE-17831 - fixed issue with non-existent dSYM files being added to the receipt
...
Also fixed name issue with the ini file
#ios
#codereview ben.marsh
[CL 2643624 by Peter Sauerbrei in Main branch]
2015-08-04 13:08:35 -04:00