Commit Graph

102 Commits

Author SHA1 Message Date
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
Ben Marsh
3a7e022d4c Generate build receipts from UBT, which keep a record of all the files written for a target and records any metadata needed to stage or deploy it.
[CL 2501101 by Ben Marsh in Main branch]
2015-04-03 10:25:57 -04:00
Matthew Griffin
6de5ee48a4 Added checks on distribution level for modules and the direct dependencies of binaries
Changed Module Manager so that it adds restricted directories to modified PATH if they exist, removed unnecessary recursive use of FindModulePathsInDirectory
Updated setup of any projects that were flagged up using this system
Added old locations of restricted output to junk manifest
Added Util function to get min/max of IComparable types (used for enums)

[CL 2493565 by Matthew Griffin in Main branch]
2015-03-27 07:15:32 -04:00
Ben Marsh
adfde6fb16 Remove some UBT abuses of the "ref" keyword.
[CL 2487191 by Ben Marsh in Main branch]
2015-03-21 11:34:08 -04:00
Ben Marsh
c4c411f61d Removing last few calls to BuildingRocket()!
* Import libraries are added to the build manifest whenever precompiling modules
* UHT now just generates headers to the project directory, and headers aren't included in the engine distribution. UHT was generating them anyway, just not writing them.
* Plugins binaries now just use UE4Game prefix in Rocket (since that's where they're built from), rather than using a special name.
* Platform-specific plugins are not explicitly excluded from builds - will be stripped out by directory instead
* XMPP is not manually excluded from Rocket builds.
* Removed BuildingRocket() function.

[CL 2487163 by Ben Marsh in Main branch]
2015-03-21 07:58:39 -04:00
Ben Marsh
442988e642 Add support for precompiling modules separately to the -BuildRocket argument. Targets can specify modules which can be precompiled by overriding the GetModulesToPrecompile() function in their target rules. Running UBT with the -PrecompileModules argument will generate them in the form of static libraries for monolithic builds, or extra DLLs for non-monolithic builds, and running UBT with the -UsePrecompiledModules argument will use them.
[CL 2485993 by Ben Marsh in Main branch]
2015-03-20 08:25:23 -04:00