Ben Marsh
c34dc5a8cf
Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
...
#rb none
#rnx
[CL 4932473 by Ben Marsh in Dev-Build branch]
2019-02-07 10:01:58 -05:00
Ben Marsh
bbb8057a5e
Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
...
#rb none
#rnx
[CL 4820573 by Ben Marsh in Dev-Build branch]
2019-01-26 14:33:56 -05:00
Ben Marsh
a3e87004d6
Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
...
#rb none
#rnx
[CL 4783611 by Ben Marsh in Dev-Build branch]
2019-01-23 10:59:53 -05:00
Ben Marsh
0f4780a3f5
Fixup headers and remove exception for OnlineSubsystemIOS including non-IWYU headers.
...
#rb none
#rnx
[CL 4759812 by Ben Marsh in Dev-Build branch]
2019-01-20 16:34:37 -05:00
Ben Marsh
2bb7ac82a4
Fixup and remove OnlineSubsystemLive from the list of engine modules that don't support IWYU.
...
#rb none
#rnx
[CL 4759068 by Ben Marsh in Dev-Build branch]
2019-01-19 15:04:05 -05:00
Ben Marsh
e8ef63a8fd
UBT: Only reset cached info for generated code directories after running UHT. Resetting cached info for all files causes slowdown for dependency checking.
...
#rb none
#rnx
[CL 4683841 by Ben Marsh in Dev-Build branch]
2019-01-05 20:25:15 -05:00
Ben Marsh
b5b67b6bab
UBT: Allow setting the C++ standard version for the compiler on a per-target or per-module basis. Currently only implemented for MSVC.
...
Example:
CppStandard = CppStandardVersion.Cpp17;
Or:
CppStandard = CppStandardVersion.Latest;
#rb none
#fyi Steve.Robb
[CL 4681321 by Ben Marsh in Dev-Build branch]
2019-01-04 10:13:55 -05:00
Ben Marsh
a2f0e63941
UBT: Reduce false positives when detecting that source directories have changed.
...
If the directory timestamp has changed, we now rebuild a list of source files and compare it to the previous list. Visual Studio seems to write out a temporary file during a save operation, which modifes the directory timestamp and invalidates the makefile.
#rb none
#rnx
[CL 4672525 by Ben Marsh in Dev-Build branch]
2018-12-20 18:39:52 -05:00
Ben Marsh
78ebc86abd
UBT: Change UEBuildTarget.Build() to return a construct and return a makefile.
...
#rb none
#rnx
[CL 4672505 by Ben Marsh in Dev-Build branch]
2018-12-20 17:29:52 -05:00
Ben Marsh
b21e08c559
UBT: Add a read-only hashset wrapper, for returning platform names from the platform layer.
...
#rb none
#rnx
[CL 4671734 by Ben Marsh in Dev-Build branch]
2018-12-20 08:53:25 -05:00
Ben Marsh
6174183342
UBT: Improve performance of source file discovery within UBT (removing duplicate file enumeration, add caching, filter files at the point of discovery).
...
#rb none
#rnx
[CL 4670295 by Ben Marsh in Dev-Build branch]
2018-12-19 11:58:30 -05:00
Ben Marsh
c5b6fefcc7
UBT: Add a DirectoryItem class, similar to FileItem, which caches directory contents and properties. Allows constructing FileItem objects from enumerated FileInfo objects, avoiding additional I/O hit to determine attributes. DirectoryLookupCache is converted to use DirectoryItem objects as part of this change.
...
#rb none
#rnx
[CL 4670115 by Ben Marsh in Dev-Build branch]
2018-12-19 10:44:11 -05:00
Ben Marsh
0270d8f66a
UBT: Add a cache for source file metadata (containing text from the first include directive, and a flag for whether the file contains reflection markup). Replaces the previous include dependency cache, since we now only require the first include directive. Saves ~2s whenever UHTModuleInfo array has to be regenerated.
...
#rb none
[CL 4668325 by Ben Marsh in Dev-Build branch]
2018-12-18 10:21:34 -05:00
Ben Marsh
34a4a0d74b
UBT: Convert ActionGraph to a static class, and pass a list of actions through the toolchains.
...
#rb none
#rnx
[CL 4667670 by Ben Marsh in Dev-Build branch]
2018-12-17 23:48:27 -05:00
Ben Marsh
0c9707d678
UBT: Use compiler-generated dependency information for source file dependencies. This ensures that the dependency list is accurate, and makes incremental builds more reliable.
...
* A standalone Win32 application called cl-filter is used to parse output from running the Visual Studio compiler with the /showIncludes option, and generate a dependency list similar to Clang.
* Actions which produce an external dependency list declare it explicitly. If the dependency list is missing, or any of the contents are out of date, the action is rebuilt.
* The contents of dependency lists are cached by the CppDependencyCache class for future iterations.
#rb none
[CL 4665060 by Ben Marsh in Dev-Build branch]
2018-12-16 14:22:47 -05:00
Ben Marsh
530369c613
Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
...
#rb none
#rnx
[CL 4662695 by Ben Marsh in Dev-Build branch]
2018-12-14 14:49:12 -05:00
Ben Marsh
8d47f49a5e
UBT: Minor cleanup of FileItem names to match FileInfo, and add some comments.
...
#rb none
#rnx
[CL 4660611 by Ben Marsh in Dev-Build branch]
2018-12-13 20:25:18 -05:00
Ben Marsh
f849ae3927
UBT: Fix resource strings on Windows for program targets. Custom version strings can now only affect resources with a unique build environment, and the default product name for programs is now taken from the target name (via the UE_APP_NAME setting). The default product name in the editor is left blank to allow the target name to be used as the default.
...
#rb none
#jira UE-67440
[CL 4653592 by Ben Marsh in Dev-Build branch]
2018-12-12 12:54:14 -05:00
Ben Marsh
884c9db0da
Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
...
#rb none
#rnx
[CL 4648162 by Ben Marsh in Dev-Build branch]
2018-12-11 09:54:19 -05:00
Ben Marsh
20873bc114
UBT: Remove the FileItem.GetExistingItemByFileReference() method. None of the current callers of this function correctly check for null, which results in harder to find errors down the line.
...
#rb none
[CL 4645200 by Ben Marsh in Dev-Build branch]
2018-12-10 11:38:57 -05:00
Ben Marsh
f3ef26e966
UBT: Rename BuildPredicateStore to BuildPrerequisites.
...
#rb none
#rnx
[CL 4643900 by Ben Marsh in Dev-Build branch]
2018-12-08 15:23:39 -05:00
Ben Marsh
cec2ea2476
UBT: Fix exception checking for license violations when building engine targets.
...
#rb none
#rnx
[CL 4622124 by Ben Marsh in Dev-Build branch]
2018-12-02 13:22:20 -05:00
Ben Marsh
c6b1e9be1e
UBT: Postpone discovery of source files for modules until they are actually being compiled. Also move predicates for the derived action graph to remain valid into a separate class.
...
#rb none
#rnx
[CL 4622066 by Ben Marsh in Dev-Build branch]
2018-12-02 13:01:05 -05:00
Ben Marsh
de9504c818
UBT: Allow project file generator to construct targets and query it directly. Removes a lot of global state, and simplifies code paths through building a target.
...
#rb none
#rnx
[CL 4603217 by Ben Marsh in Dev-Build branch]
2018-11-28 12:34:31 -05:00
Ben Marsh
8def5ba360
UBT: Allow adaptive non-unity builds to use the existing PCH if the compile settings match.
...
#rb none
[CL 4591768 by Ben Marsh in Dev-Build branch]
2018-11-26 09:01:18 -05:00