Commit Graph

33 Commits

Author SHA1 Message Date
James Hopkin
1edd7720d5 UBT: allow multiple -SingleFile arguments. Now stores SpecifcFilesToCompile list rather than single file reference.
#rb Ben.Marsh

#ROBOMERGE-OWNER: james.hopkin
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 12779149 via CL 12779152 via CL 12779160
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)

[CL 12782243 by James Hopkin in Main branch]
2020-04-14 13:31:51 -04:00
ryan vance
02bb20415f Copy up from DS to Main
#rb CopyUp



#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ryan.vance
#ROBOMERGE-SOURCE: CL 12149088 via CL 12150247
#ROBOMERGE-BOT: (v659-12123632)

[CL 12150618 by ryan vance in Main branch]
2020-03-12 14:08:52 -04:00
Ryan Durand
9ef3748747 Updating copyrights for Engine Programs.
#rnx
#rb none
#jira none

#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869242 in //Fortnite/Release-12.00/... via CL 10869536
#ROBOMERGE-BOT: FORTNITE (Main -> Dev-EngineMerge) (v613-10869866)

[CL 10870955 by Ryan Durand in Main branch]
2019-12-26 23:01:54 -05:00
Ben Marsh
aa45fb1bf3 UBT: Make the -Quiet option per-target, and use it to suppress toolchain and adaptive non-unity info for secondary build targets.
#rb none
#rnx

[CL 8638712 by Ben Marsh in Dev-Build branch]
2019-09-11 11:52:41 -04:00
ben marsh
f3e0515b4a UBT: Add better messages for attempting to build for a platform that hasn't been downloaded from the launcher.
#rb none
#jira

#ROBOMERGE-SOURCE: CL 7707386 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v384-7690951)

[CL 7707387 by ben marsh in Main branch]
2019-08-02 12:16:01 -04:00
ben marsh
ef3c866b47 LiveCoding: Prevent object files being overwritten during a live coding compile. Object files are now built with a .lc suffix, leaving the original files intact. This ensures it can gather COFF data from the correct executables on relaunch, and means that any existing changes will be patched in as soon as the first Live Coding compile is initiated. Should fix several issues.
#rb none
#jira UE-76940, UE-76993, UE-76943

#ROBOMERGE-SOURCE: CL 7321451 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)

[CL 7321452 by ben marsh in Main branch]
2019-07-16 08:51:35 -04:00
ben marsh
814a1088bd Live Coding: Fix support for lazy loading modules. Now passes UBT a list of modules that can be updated, and UBT fails the build and writes out a list of others that would be modified. Live Coding console then loads those modules and retries.
#rb none
#jira UE-74679

#ROBOMERGE-SOURCE: CL 6960867 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v366-6836689)

[CL 6966783 by ben marsh in Main branch]
2019-06-12 23:22:20 -04:00
Ben Marsh
0cc6e3dca6 Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 6631504 by Ben Marsh in Main branch]
2019-05-24 11:51:54 -04:00
ben marsh
9ab666905e UBT: Add utility methods for correcting paths to match their case on disk, and fix issues with inconsistent paths when cross-compiling for Linux.
#rb none
#jira UE-72267
#jira UE-72904

#ROBOMERGE-SOURCE: CL 6441346 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 6441352 by ben marsh in Main branch]
2019-05-14 08:39:53 -04:00
ben marsh
cf183af67c Integrating live coding feature (aka Live++) into UE4.
Allows fast iteration of C++ changes without restarting the application. To use, select the "Live Coding (Experimental)" mode from the drop down menu next to the editor's compile button, or type "LiveCoding" into the console for a monolithic build. Press Ctrl+Alt+F11 to find changes and compile.

Changes vs standalone Live++ version:

* UBT is used to execute builds. This allows standard UE4 adaptive unity mode, allows us to reuse object files when we do regular builds, supports using any build executor allowed by UBT (XGE, SNDBS, etc..).
* Adding new source files is supported.
* Custom visualizer for FNames is supported via a weakly linked symbol in a static library (Engine/Extras/NatvisHelpers).
* Settings are exposed in the editor's project settings dialog.
* Standalone application has been rewritten as a Slate app ("LiveCodingConsole"). There is an additional option to start the program as hidden, where it will not be visible until Ctrl+Alt+F11 is hit. Similarly, closing the window will hide it instead of closing the application.
* Does not require a standalone licensed version of Live++.

Known issues:

* Does not currently support class layout changes / object reinstancing

#rb none
[FYI] Marc.Audy, Stefan.Boberg, Nick.Penwarden
#jira

#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5309051 by ben marsh in Main branch]
2019-03-05 18:49:25 -05:00
Ben Marsh
2bfecb09c8 Convert project file path to absolute before passing on the command line to UBT.
#rb none
#jira UE-68863

[CL 4771381 by Ben Marsh in Main branch]
2019-01-22 13:22:54 -05:00
Ben Marsh
a22b952aa9 Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 4718806 by Ben Marsh in Main branch]
2019-01-14 12:11:24 -05:00
Ben Marsh
dab09818ff UBT: Remove code for querying UHT DLL versions. This pathway no longer works, because we don't compile the changelist into binaries. Instead, check the receipt is newer than any build products (which also works on all platforms).
#rb none

[CL 4674707 by Ben Marsh in Dev-Build branch]
2018-12-27 09:43:18 -05:00
Ben Marsh
e6dfd54d25 UBT: Parse hot reload parameters in the target descriptor.
#rb none
#rnx

[CL 4673059 by Ben Marsh in Dev-Build branch]
2018-12-21 15:39:38 -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
b4e5d0ee81 UBT: If UnrealHeaderTool needs rebuilding, do so from the same process rather than spawning a child UBT instance. This is significantly faster, since we're already fully initialized and have cached a lot of state.
#rb none

[CL 4671843 by Ben Marsh in Dev-Build branch]
2018-12-20 11:29:04 -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
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
99e5c128e6 UBT: Fix exception in debug visualizer for TargetDescriptor when arguments is null.
#rb none
#rnx

[CL 4643837 by Ben Marsh in Dev-Build branch]
2018-12-08 13:59:23 -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
Ben Marsh
435bc9778e Various changes to hot reload build process.
* Hot reload now shares the regular UBT makefile, significantly improving performance for first-time compile. The history of previous hot-reloads is stored in an intermediate file (see GetHotReloadStateFile()), allowing the action graph to be patched to the last hot reload state before executing the build rather than creating a separate makefile. (A nice side effect of this is that it allows tracking hot reload attempts, and assigning incremental suffixes rather than random numbers for each run).
* The list of modules eligable for hot reload is now explicitly saved to the makefile. During a hot reload from IDE invocation, we always try to build all out of date modules and only apply suffixes to those that support it. This prevents the confusing behavior where an editor open in the background will not attempt to build certain files.
* Logic for building dependent modules is now significantly more reliable. Only modules with changes are rebuilt, and all dependent modules of those modules are correctly rebuilt too. The -CanSkipLink option is no longer necessary, and has been removed.
* All code for dealing with hot-reload only happens when the action graph is executed. The construction of a target no longer has any knowledge of whether hot reload is enabled or not.

#fyi Steve.Robb
#rb none

[CL 4621192 by Ben Marsh in Dev-Build branch]
2018-12-01 16:20:37 -05:00
Ben Marsh
57a841628e UBT: Add a global ReadOnlyBuildVersion instance, rather than having to manually create it and pass it around as an argument.
#rb none
#rnx

[CL 4603398 by Ben Marsh in Dev-Build branch]
2018-11-28 12:58:54 -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
c8c6e327e0 Remove the unused -Receipt= argument to force an additional receipt location for UBT, few other minor bits of cleanup.
#rb none
#rnx

[CL 4515784 by Ben Marsh in Dev-Build branch]
2018-10-28 15:25:53 -04:00