Commit Graph

232 Commits

Author SHA1 Message Date
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
Ben Marsh
a2560dd3d3 Store the generated code directory on the module object in UBT, so we don't need to query global plugin state to figure it out.
[CL 2518418 by Ben Marsh in Main branch]
2015-04-20 18:05:25 -04:00
Ben Marsh
208957aa7f Implement PluginDescriptor and ModuleDescriptor in UBT in an identical way to the engine. Also add a wrapper for objects parsed by fastJSON, that allows easier retrieval of typed fields.
[CL 2517026 by Ben Marsh in Main branch]
2015-04-19 12:03:48 -04:00
Ben Marsh
28fe22e11b Move GetGeneratedCodeDirectoryForModule into UEBuildTarget, so it can make use of shared logic with figuring out output paths.
[CL 2516280 by Ben Marsh in Main branch]
2015-04-17 15:21:14 -04:00
Ben Marsh
d2180e5f18 Don't force adding a module to a binary, even if we create it. Some targets have dependencies on include paths from other modules, but those modules never actually get built. (UnrealFileServer has an indirect dependency on DDCUtils this way, but it's not actually part of the target even though the module exists a bIncludeInTarget gets set).
[CL 2509637 by Ben Marsh in Main branch]
2015-04-11 15:31:07 -04:00
Ben Marsh
395c3bdbbe Reduce the number of codepaths used for creating new binary modules.
[CL 2509610 by Ben Marsh in Main branch]
2015-04-11 13:09:16 -04:00
Ben Marsh
c0bd5ceb7a Remove unused parameter to UEBuildBinaryConfiguration constructor for bCompileMonolithic.
[CL 2508396 by Ben Marsh in Main branch]
2015-04-10 11:24:13 -04:00
Ben Marsh
1645d1a9f7 Remove monolithic setting from binary configuration, so we can make "monolithic-ness" more of a pick-and-mix affair. Only used by shared PCH handling in two places:
* Shared PCHs were disabled for static libraries in monolithic builds -> now disabled for static libraries in all builds
* Modules could not use their own shared PCH in non-monolithic builds due to exports -> now disabled if their binary has exports

#codereview Mike.Fricker

[CL 2508390 by Ben Marsh in Main branch]
2015-04-10 11:19:40 -04:00
Ben Marsh
cb356578a7 Remove unnecessary variables from UEBuildBinaryConfiguration.
[CL 2508328 by Ben Marsh in Main branch]
2015-04-10 10:20:45 -04:00
Ben Marsh
2b4b95566a Remove the output path override for modules. I can't see any code path that it would still trigger it, as FixupOutputPath() seems to require a "Binaries" substring, but the only possible values for OutputDirectory are (1) the compiler intermediate directory, or (2) a substring of the module rules path.
[CL 2508232 by Ben Marsh in Main branch]
2015-04-10 08:32:38 -04:00
Mikolaj Sieluzycki
3483da7d5a Stop UHT from emiting warnings on missing *_Validate and *_Implementation functions
Introduce versioning system to GENERATED_*BODY macros
Search for existing functions using case sensitive and whole word match.
Move checks for existing of *_Validate and *_Implementation functions to *generated.cpp to allow changing that code in hotfixes.
#codereview Robert.Manuszewski

[CL 2508131 by Mikolaj Sieluzycki in Main branch]
2015-04-10 06:02:22 -04:00