Commit Graph

245 Commits

Author SHA1 Message Date
Ben Marsh
b2acdadf67 Remove unnecessary UEBuildTarget parameter being passed to build platforms.
[CL 2707256 by Ben Marsh in Main branch]
2015-09-27 13:10:21 -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
Peter Sauerbrei
1c13d7d910 Addition of mobile provision selection
no error messaging as of yet when selecting something which then expires

[CL 2697295 by Peter Sauerbrei in Main branch]
2015-09-18 13:42:25 -04:00
Ben Marsh
5a77694bbb Removing a bunch of static variables for the project file in UBT.
[CL 2695050 by Ben Marsh in Main branch]
2015-09-17 09:15:44 -04:00
Ben Marsh
abe8c13ef6 Fix modules being incompatible after being compiled on editor startup; build ID was being set to a new value, but the editor had already read it.
[CL 2692431 by Ben Marsh in Main branch]
2015-09-15 17:06:03 -04:00
Ben Marsh
01b1901137 Cache checks for whether a module has source files.
[CL 2684672 by Ben Marsh in Main branch]
2015-09-09 10:47:39 -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
cbca80c79b Don't create receipts when generating project files; they aren't needed.
[CL 2681977 by Ben Marsh in Main branch]
2015-09-06 12:50:15 -04:00
Ben Marsh
f67b68a903 Restore missing runtime dependencies in target receipts for editor configurations. Includes runtime dependencies for precompiled modules in monolithic targets at the moment.
[CL 2681947 by Ben Marsh in Main branch]
2015-09-06 11:30:38 -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
09aa8b2f62 Reduce time taken to generate receipts by using the target's view of the required modules, rather than recursively finding them from all the binaries. Also use the FileReferences for build products to optimize the way we escape build product paths.
[CL 2681758 by Ben Marsh in Main branch]
2015-09-05 18:10:25 -04:00
Ben Marsh
6870744ad2 Cache directory searches when looking for include paths. When generating project files we do this many times over.
[CL 2681652 by Ben Marsh in Main branch]
2015-09-05 11:12:19 -04:00
Ben Marsh
b10ae33186 Simplify logic for adding additional include paths to a module, and switch it to use FileReference/DirectoryReference. Compared exported XGE for building FortniteGame; should be identical apart from a few places that have more consistent directory separators now.
[CL 2681641 by Ben Marsh in Main branch]
2015-09-05 09:32:27 -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
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