Commit Graph

538 Commits

Author SHA1 Message Date
Mike Fricker
c91ba91b6a [INTEGRATE] Unreal Build Tool: Improved adaptive unity build
- When bUseAdaptiveUnityBuild is enabled (experimental!), your first build after your working file set changes is now much faster
- UBT no longer invalidates other existing compiled unity blobs from the same module when ejecting source files

[CL 2687738 by Mike Fricker in Main branch]
2015-09-11 08:51:23 -04:00
Mike Fricker
2297c51717 [INTEGRATE] Unreal Build Tool: Output total number of actions to execute when building (part 2)
- Changed output to be XGE-specific and cleaned up text (the Local Executor already outputs action counts)

[CL 2687717 by Mike Fricker in Main branch]
2015-09-11 08:17:04 -04:00
Mike Fricker
13afbe963e [INTEGRATE] Unreal Build Tool: Output total number of actions to execute when building
- Also: Minor formatting fixes for verbose debug output with files being complied on Windows

[CL 2686063 by Mike Fricker in Main branch]
2015-09-10 08:52: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
a9affa7384 Make sure we don't get any trailing directory separators in file system reference objects. Path.GetFullPath() doesn't seem to be removing them.
[CL 2683742 by Ben Marsh in Main branch]
2015-09-08 17:00:58 -04:00
Ben Marsh
01b1222cc2 Only expand $(PluginDir) variables once we know they're needed; the code path is so frequently called that it shows up in the profiler.
[CL 2683699 by Ben Marsh in Main branch]
2015-09-08 16:42:08 -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
2b38be1283 Cache the list of all valid UBT platforms rather than fetching it via reflection each time; reflection is very slow, and we call it a lot.
[CL 2682466 by Ben Marsh in Main branch]
2015-09-07 10:31:09 -04:00
Ben Marsh
a6b1fceb82 Use the directory cache when scanning for source files, and remove code which uses custom attributes (was taking ~2% CPU time when generating project files).
[CL 2681974 by Ben Marsh in Main branch]
2015-09-06 12:49:32 -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
6f32c868e1 Use manual binary serialization for dependency caches, instead of the standard .NET serializer. Reduces load time from ~1s to <0.1s, and reduces size to half or less.
[CL 2680675 by Ben Marsh in Main branch]
2015-09-04 13:48:30 -04:00
Ben Marsh
b27644e918 Cache enumerated plugins between runs. Improves performance when generating project files.
[CL 2680148 by Ben Marsh in Main branch]
2015-09-04 07:59:53 -04:00
Ben Marsh
d5f47b28ec Optimize searching for source files under a given directory, by constructing DirectoryReference and FileReference objects directly from the full paths returned by the system.
[CL 2680146 by Ben Marsh in Main branch]
2015-09-04 07:56:29 -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
Dmitry Rekman
8b5ac31f09 UBT: fix CodeLite project generator.
[CL 2678756 by Dmitry Rekman in Main branch]
2015-09-03 11:48:25 -04:00
Ben Marsh
7fa8b50279 Optimize an inner loop that runs over all files that get added to a project. Path.GetDirectoryName() is pretty slow, and if we're running using full paths we don't need to validate it again.
[CL 2678737 by Ben Marsh in Main branch]
2015-09-03 11:41:30 -04:00
Ben Marsh
60d83dd759 Fix path to the dependency cache file.
[CL 2678703 by Ben Marsh in Main branch]
2015-09-03 11:26:53 -04:00
Jaroslaw Palczynski
7bd4a678b2 UE-20594: Fix no suffix bug and it's error during hot-reload.
#codereview Robert.Manuszewski

[CL 2678668 by Jaroslaw Palczynski in Main branch]
2015-09-03 11:10:21 -04:00
Ben Marsh
85273e9312 Allow UBT to wait on being able to run if the -waitmutex parameter is specified, and add it to the default command line from generated project files. Restores ability to build the entire solution from Visual Studio and have all UBT runs serialized.
#jira UE-20699
#codereview Wes.Hunt

[CL 2678456 by Ben Marsh in Main branch]
2015-09-03 09:18:45 -04:00
Ben Marsh
3198f2bad5 Rename FileSystemName.cs to FileSystemReference.cs.
[CL 2678433 by Ben Marsh in Main branch]
2015-09-03 08:52:31 -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
Peter Sauerbrei
71f234a0c4 UE-20500 - $(PlguinDir) can now be used in runtime dependencies
#ubt

[CL 2677410 by Peter Sauerbrei in Main branch]
2015-09-02 14:54:39 -04:00
Richard Fawcett
f0f7d3a513 Fix detection of automation projects when running UBT with -ProjectFiles.
#codereview Ben.Marsh

[CL 2676811 by Richard Fawcett in Main branch]
2015-09-02 08:09:16 -04:00
Peter Sauerbrei
a549ca86bd UE-18651 - properly write the .suo file in the correct directory for VS2015
#ubt

[CL 2676133 by Peter Sauerbrei in Main branch]
2015-09-01 16:46:49 -04:00