Commit Graph

70 Commits

Author SHA1 Message Date
Ben Marsh
0883dab58a Fix various issues building code projects from an installed engine build on Windows.
#rb none
#jira UE-68366
#rnx

[CL 4713026 by Ben Marsh in Dev-Build branch]
2019-01-11 15:33:57 -05:00
Ben Marsh
129aac0526 Merging //UE4/Dev-Main to Dev-Build (//UE4/Dev-Build)
#rb none
#rnx

[CL 4706788 by Ben Marsh in Dev-Build branch]
2019-01-10 20:03:35 -05:00
Ben Marsh
c09b6d7f18 Merge from //UE4/Main.
#rb none
#rnx

[CL 4701155 by Ben Marsh in Dev-Build branch]
2019-01-10 11:10:29 -05:00
Ben Marsh
6bef1a9def UBT: Remove code to add the -Monolithic option when generating intellisense data. This only exists to prevent intellisense errors because the DLLEXPORT and DLLIMPORT macros are mismatched for the project containing all modules; we can achieve this by explicitly modifying the macros instead.
#rb none
#rnx

[CL 4686059 by Ben Marsh in Dev-Build branch]
2019-01-07 15:09:52 -05:00
Ben Marsh
973932605e UBT: Fix project file generator including all projects in the workspace in the solution, even if a specific project file is specified.
#rb none
#rnx

[CL 4685376 by Ben Marsh in Dev-Build branch]
2019-01-07 12:21:18 -05:00
Ben Marsh
7ad281502a UBT: Don't assume the default architecture for a platform is the empty string. It's not on Linux, which causes warnings when generating project files.
#rb none
#jira UE-68019
#rnx

[CL 4682487 by Ben Marsh in Dev-Build branch]
2019-01-04 14:51:43 -05:00
Ben Marsh
53467c22ef UBT: Deprecate Visual Studio 2015. Still technically supported from source if explicitly selected as the compiler for a particular target, but will not be automatically detected by UBT for building.
#rb none

[CL 4681677 by Ben Marsh in Dev-Build branch]
2019-01-04 11:35:38 -05:00
Ben Marsh
ab043601f1 UBT: Remove the project dependency on ShaderCompileWorker being compiled for any project targets. Instead, SCW is built through the same UBT invocation that builds the editor, allowing files to be built in parallel. This also removes the dependency on ShaderCompileWorker being built for non-editor targets (since Visual Studio does not support per-configuration project dependencies).
#rb none

[CL 4681497 by Ben Marsh in Dev-Build branch]
2019-01-04 10:58:28 -05:00
Ben Marsh
18613194b0 UBT: Allow disabling platform project generation for specific platforms via the BuildConfiguration.xml file, to allow building platforms that don't have Visual Studio integration installed.
Example usage:

<ProjectFileGenerator><DisablePlatformProjectGenerators><Item>Win64</Item><DisablePlatformProjectGenerators><ProjectFileGenerator>

#rb none
#rnx

[CL 4679867 by Ben Marsh in Dev-Build branch]
2019-01-03 16:31:41 -05:00
Ben Marsh
ccde903b49 UBT: Use FileReference and DirectoryReference instead of raw strings in actions.
#rb none
#rnx

[CL 4674720 by Ben Marsh in Dev-Build branch]
2018-12-27 10:48:30 -05:00
Ben Marsh
bd434e9387 UBT: Convert the -SingleFile= argument to be per-target.
#rb none
#rnx

[CL 4671876 by Ben Marsh in Dev-Build branch]
2018-12-20 12:10:57 -05:00
Ben Marsh
61701a788c UBT: Optimize file operations to use cached file/directory info, and to discover plugins/rules files in parallel. Also add more stats for different parts of the build.
#rb none
#rnx

[CL 4671815 by Ben Marsh in Dev-Build branch]
2018-12-20 10:46:51 -05:00
Ben Marsh
5b31a8c5a5 PR #5356: Modified fix to accommodate default build environment being set to shared by the time Intellisense is being gathered.
#rb none
#rnx

[CL 4669424 by Ben Marsh in Dev-Build branch]
2018-12-18 19:46:33 -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
f01ddb51ae UBT: Add support for building multiple targets in parallel.
* A makefile is now constructed for each target, and the outdated actions are combined into a single graph before execution.
* Makefiles are used in all build modes, regardless of whether they are saved to disk, and represent the vector by which a target's build actions are passed to the executor.
* The -JsonExport= argument has been removed, and a separate JsonExport mode has been added (invoke with eg. "-Mode=JsonExport UE4Editor Win64 Development")
* Multiple action history files are kept open at one time, and a hierarchy is used for each target.

#rb none

[CL 4667512 by Ben Marsh in Dev-Build branch]
2018-12-17 20:49:30 -05:00
Ben Marsh
2073022699 UBT: Rename UBTMakefile to TargetMakefile.
#rb none
#rnx

[CL 4665132 by Ben Marsh in Dev-Build branch]
2018-12-16 21:20:19 -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
ahaczewski
84ca76f90f PR #5356: UE-67548: UBT: Fix for IntelliSense generation for game projects using engine source (Contributed by ahaczewski)
#rb none
#rnx

[CL 4662991 by Ben Marsh in Dev-Build branch]
2018-12-14 15:42:55 -05:00
Ben Marsh
d6a55553ea Update additional copyright notices.
#rb none
#rnx

[CL 4662881 by Ben Marsh in Dev-Build branch]
2018-12-14 15:20:24 -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
d142b482cf UBT: Removing a few unused/unnecessary properties and accessors, and moving the GetSupportedPlatforms() method from UEBuildTarget to TargetRules.
#rb none
#rnx

[CL 4643907 by Ben Marsh in Dev-Build branch]
2018-12-08 15:58:08 -05:00
Ben Marsh
a2d4bbe283 UBT: Remove unnecessary arguments array to UEBuildTarget.CreateTarget.
#rb none
#rnx

[CL 4643765 by Ben Marsh in Dev-Build branch]
2018-12-08 10:22:41 -05:00
Ben Marsh
3936a5597e UBT: Initial support for Visual Studio 2019.
#rb none

[CL 4631203 by Ben Marsh in Dev-Build branch]
2018-12-05 01:04:21 -05:00
Ben Marsh
4c5e2a0724 UBT: Store the project file on each target descriptor, and remove the need for a single "global" active project at any one time. Add support for specifying multiple targets on the command line via -Target arguments (eg. -Target="UnrealHeaderTool Win64 Development" -Target="UnrealPak Win64 Development"), and multiple platforms and configurations via + characters (eg. "UE4Editor Win64 Debug+Development")
#rb none

[CL 4625702 by Ben Marsh in Dev-Build branch]
2018-12-03 17:34:46 -05:00
Ben Marsh
8ffa740219 UBT: Replace UProjectInfo with the NativeProjects class, which caches the list of native projects to the engine. Foreign projects do not need to be registered with it, and the list of native projects is found on demand.
#rb none
#rnx

[CL 4623538 by Ben Marsh in Dev-Build branch]
2018-12-03 09:44:24 -05:00