Commit Graph

140 Commits

Author SHA1 Message Date
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