Ben Marsh
fb458cad45
Remove IUEBuildPlatform; nothing is using it.
...
[CL 2707262 by Ben Marsh in Main branch]
2015-09-27 13:32:44 -04:00
Ben Marsh
0aa484bda0
Toolchains are now instanced to allow storing project and target specific configuration details. Required for UBT to support multiple targets. Removed IUEToolChain, which wasn't being used directly.
...
[CL 2707252 by Ben Marsh in Main branch]
2015-09-27 13:05:49 -04:00
Ben Marsh
2802f43c08
Convert everything in UBT to use standard C# XML comments, so IntelliSense can display useful information in tooltips.
...
[CL 2704759 by Ben Marsh in Main branch]
2015-09-24 13:47:13 -04:00
Ben Marsh
df83418aeb
Auto-format UBT for consistent spacing. All default Visual Studio settings, but tabs instead of spaces.
...
[CL 2704665 by Ben Marsh in Main branch]
2015-09-24 12:37:21 -04:00
Ben Marsh
5a0150033b
Remove calls to UEToolChain.GetPlatformToolChain(). iOS and Mac deployment for remote tool chains is now done through UEToolChain.PostBuildSync() rather than UEBuildDeploy.PrepTargetForDeploy().
...
#codereview Peter.Sauerbrei
[CL 2704192 by Ben Marsh in Main branch]
2015-09-24 08:08:38 -04:00
Ben Marsh
b3dddeb541
Cache the name of the API define for each module and the relative path to its base directory, to avoid calculating them each time.
...
[CL 2683585 by Ben Marsh in Main branch]
2015-09-08 15:50:24 -04:00
Ben Marsh
404e121531
Store the list of valid plugins on the rules assembly, and allow looking up the plugin info for a module without having to scan the whole list.
...
[CL 2682885 by Ben Marsh in Main branch]
2015-09-08 07:59:23 -04:00
Ben Marsh
79120fe20e
Store module references rather than module names in UEBuildBinary. Removes several code paths that look them up more than once, or create redundant instances of module rules classes.
...
[CL 2681939 by Ben Marsh in Main branch]
2015-09-06 10:35:57 -04:00
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
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
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
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
Lee Clark
d8c6aca65d
SN-DBS support for distributed compilation of Win64 builds
...
* Modules that use #import (DatabaseSupport & VisualStudioSourceCodeAccessor) are forced to be built locally due to SN-DBS limitation . These are very small modules so have a minimal impact on build time.
#codereview Mike.Fricker
[CL 2610243 by Lee Clark in Main branch]
2015-07-03 05:23:01 -04:00
Steve Robb
db5429d360
AVX support in UnrealBuildTool.
...
#codereview robert.manuszewski
[CL 2604153 by Steve Robb in Main branch]
2015-06-29 12:24:33 -04:00
Steve Robb
0144ad9af6
Makefile fix for UHT types being added to or removed from existing headers.
...
CaselessDictionary made serializable.
New FileContentsCacheType for enabling simple lookup and caching of file contents.
Fix for module references differing in case from module definitions e.g. Http and HTTP.
Some general refactoring.
#codereview robert.manuszewski
[CL 2581357 by Steve Robb in Main branch]
2015-06-09 11:50:55 -04:00
Ben Marsh
0664b38ebb
Fix linking against static libraries which have circular references back to the original binary. Plugins depend on other engine modules, but linking a monolithic game should not add a library dependency on the monolithic executable.
...
[CL 2562433 by Ben Marsh in Main branch]
2015-05-22 08:57:34 -04:00
Jaroslaw Palczynski
0449062ef4
UE-15116: Engine *.generated.cpp files change during hot-reload
...
#codereview Robert.Manuszewski
[CL 2550523 by Jaroslaw Palczynski in Main branch]
2015-05-14 08:05:11 -04:00
Ben Marsh
92890dda05
Use a clean compile environment to build shared PCHs, instead of reusing the current module compile environment.
...
#codereview Mike.Fricker
[CL 2548754 by Ben Marsh in Main branch]
2015-05-13 07:52:34 -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
Steve Robb
dbd595a52f
UEBuildTarget stores its .Target.cs filename.
...
UEBuildModule stores its .Module.cs filename.
UEBuildTarget stores a map of dictionaries from module names to .Target.cs files.
Timestamps of serialized .Target.cs and .Module.cs files compared against makefile and used for invalidation.
More sensible Dictionary logic in ConditionallyCompileAndLoadRulesAssembly.
InstantiateModule can no longer return a null.
UEBuildModule constructors no longer default.
#codereview robert.manuszewski
[CL 2543446 by Steve Robb in Main branch]
2015-05-08 15:19:00 -04:00
Ben Marsh
0e07cb785e
Remove another global plugin module name loookup.
...
[CL 2519736 by Ben Marsh in Main branch]
2015-04-21 15:16:38 -04:00
Ben Marsh
be2b506c24
Simplify check for detecting an engine module whether to disable optimizations in DebugGame; just look if it's under the engine directory.
...
[CL 2519330 by Ben Marsh in Main branch]
2015-04-21 11:27:37 -04:00