Commit Graph

788 Commits

Author SHA1 Message Date
ben marsh
d1b5b28bc4 Fix issues related to hot-reload and LiveCoding co-existing.
* Removed code to invalidate makefiles when adding new source files. UBT should be reliable enough to make this determination itself nowadays, and ignored -invalidatemakefilesonly argument was causing modules to be recompiled.
* Fixed incorrect config section name when determining whether to allow hot reload from IDE. Now prevents hot reload from IDE when live coding is enabled.
* Added error message when trying to add a new class with Live Coding enabled.
* Added error messages when trying to start Live Coding after a hot reload has taken place.
* Added error messages when trying to hot reload with Live Coding enabled.

#jira UE-71253
#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5403464 in //UE4/Release-4.22/... via CL 5403485
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5417897 by ben marsh in Dev-Networking branch]
2019-03-15 12:57:01 -04:00
ben marsh
25af8d862d UBT: Fix generated config files not being read by UBT, or being considered when determining if makefiles are out of date.
#rb none
#jira UE-71501

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5392870 in //UE4/Release-4.22/... via CL 5392891
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5416014 by ben marsh in Dev-Networking branch]
2019-03-15 12:29:03 -04:00
ben marsh
d2c920f9f5 UBT: Use compact FileItem objects in source file metadata cache. Improves serialization performance by another 50-60ms.
#rb none
#jira UE-71116

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5337196 in //UE4/Release-4.22/... via CL 5337949
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5400511 by ben marsh in Dev-Networking branch]
2019-03-14 16:37:13 -04:00
ben marsh
8ef7678978 UBT: Serialize compact FileItem objects. Improves serialization performance and significantly reduces size of cpp dependency cache.
#rb none
#jira UE-71116

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5337193 in //UE4/Release-4.22/... via CL 5337948
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5400510 by ben marsh in Dev-Networking branch]
2019-03-14 16:37:11 -04:00
ben marsh
57afc9244c UBT: Store hashes in the action history rather than full command lines. Improves serialization performance by ~50ms.
#rb none
#jira UE-71116

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5337191 in //UE4/Release-4.22/... via CL 5337944
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5400509 by ben marsh in Dev-Networking branch]
2019-03-14 16:37:10 -04:00
ben marsh
1134dc7c87 Improve accuracy of timer for running UBT. Now includes startup time as well as time spent in the build mode.
#rb none
#jira UE-71116

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5319676 in //UE4/Release-4.22/... via CL 5337053
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5376523 by ben marsh in Dev-Networking branch]
2019-03-12 21:24:06 -04:00
ben marsh
8266dc1f19 UBT: Use the cached filesystem attributes to figure out which files are part of the adaptive non-unity working set. Much faster than querying directly because (a) they're cached, and (b) they're enumerated via a directory scan, which fetches the metadata up front.
#rb none
#jira UE-71116
#rnx

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5318685 in //UE4/Release-4.22/... via CL 5336842
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5376473 by ben marsh in Dev-Networking branch]
2019-03-12 21:23:41 -04:00
ben marsh
934c3249bf UBT: Figure out outdated actions in parallel. Saves 0.5s on iterative compile.
#rb none
#jira
#rnx

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5315074 in //UE4/Release-4.22/... via CL 5317566
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5331945 by ben marsh in Dev-Networking branch]
2019-03-06 18:47:23 -05:00
ben marsh
a65006ccfc UBT: Add additional timing info into logs.
#rb none
#rnx
#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5312405 in //UE4/Release-4.22/... via CL 5316167
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5331237 by ben marsh in Dev-Networking branch]
2019-03-06 18:43:05 -05:00
ben marsh
7c46cc6b4c 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-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5304722 in //UE4/Release-4.22/... via CL 5309051
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5326306 by ben marsh in Dev-Networking branch]
2019-03-06 18:19:24 -05:00
ben marsh
1f47bb216c Fix settings for enabling shadow variable and undefined identifier warnings not being treated as requiring a unique PCH. Also fix shared PCHs not enabling each by default. The compiler (at least on Windows) does not produce a warning/error on this mismatch, but does not respect the different settings passed via the command line.
#rb none
#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5295902 in //UE4/Release-4.22/... via CL 5308945
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5325986 by ben marsh in Dev-Networking branch]
2019-03-06 18:18:34 -05:00
ben marsh
bc9248d76c Fix exception when trying to get path for main module for hot reload.
#rb none
#rnx
#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5290983 in //UE4/Release-4.22/... via CL 5308917
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5325731 by ben marsh in Dev-Networking branch]
2019-03-06 18:17:19 -05:00
graeme thornton
6a3327e900 Minor unrealpak refactor
- Added a "-sign" parameter to enable signing for the given pak. The cached settings in the crypto.json file aren't used to enable signing any more.
 - Encapsulated all signing and encryption keys in a single keychain object which is passed around, rather than individual keys
 - Added some validation to UBT/UAT encryption config parsing so that if you enable any signing or encryption stuff but haven't generated a key, it'll warn and disable everything.

#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: graeme.thornton
#ROBOMERGE-SOURCE: CL 5237725 via CL 5237726 via CL 5240337 via CL 5240343
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5256133 by graeme thornton in Dev-Networking branch]
2019-02-28 18:27:59 -05:00
josh adams
86071fdfce - Merging Dev-Kairos/Engine/... to Main/Engine/...
- Brings over the necessary engine changes for embedding UE4 mobile as a dylib/so in native mobile app
- Various changes for facial animation, screen recording, others
- ARKit and ARCore plugins were removed, as deemed "not ready"
#rb many people

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 5201138 via CL 5203024 via CL 5226277
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5246044 by josh adams in Dev-Networking branch]
2019-02-28 17:14:17 -05:00
ben marsh
b916f66ea5 Fix "launch on" always rebuilding the executable, due to order of enumerated plugins being non-deterministic.
#jira UE-70371
#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5103941 in //UE4/Release-4.22/... via CL 5103942
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5140059 by ben marsh in Dev-Networking branch]
2019-02-22 06:06:48 -05:00
ben marsh
2b3e075c1d Fix target not being rebuilt when an plugin not required for this platform is disabled. Also add log output showing why a temp target was required.
#rb none
#jira UE-69674

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4974444 in //UE4/Release-4.22/... via CL 4974445
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5077344 by ben marsh in Dev-Networking branch]
2019-02-19 18:11:11 -05:00
ben marsh
604212760f UBT: Fix module manifest not being updated correctly when -ModuleWithSuffix is passed on the command line.
#rb none
#rnx
#jira UE-69366

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4957024 in //UE4/Release-4.22/... via CL 4968440
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5073806 by ben marsh in Dev-Networking branch]
2019-02-19 17:25:34 -05:00
ben marsh
0fac3f1412 Missing file.
#rb none
#jira
#rnx

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4957017 in //UE4/Release-4.22/... via CL 4968439
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5073799 by ben marsh in Dev-Networking branch]
2019-02-19 17:25:32 -05:00
ben marsh
0026665071 UBT: Add a FileReference.WriteAllBytesIfModified() method to make it easier to update files without modifying the timestamp if they don't change.
#rb none
#jira

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4957014 in //UE4/Release-4.22/... via CL 4968438
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 5073791 by ben marsh in Dev-Networking branch]
2019-02-19 17:25:30 -05:00
Peter Engstrom
3d8c226dd9 Use forward slashes in include paths
#rb ben.marsh

[CL 4968469 by Peter Engstrom in Dev-Networking branch]
2019-02-12 09:40:04 -05:00
daniel lamb
7d2361bd31 [CODEREVIEW] daniel.lamb,jeff.williams
Merge conflict.
daniel.lamb, please merge this change by hand.
More info at https://robomerge.epicgames.net#FORTNITE

/src/robomerge_ue4_main_01/Engine/Source/Programs/UnrealBuildTool/System/ConfigFile.cs - merging //Fortnite/Dev-EngineMerge/Engine/Source/Programs/UnrealBuildTool/System/ConfigFile.cs#2


--------------------------------------
Create labels for content builds.
#rb William.Ewen

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 4869450 via CL 4873808 via CL 4877426
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4884685 by daniel lamb in Dev-Networking branch]
2019-02-04 12:39:27 -05:00
ben marsh
adad9435d9 UBT: Prevent DebugGame compile environment from having different ORIGINAL_FILE_NAME macro to the development build environment. This is only needed when compiling resources for binaries. Also prevent the precompiled manifest being written to if it doesn't change.
#rb none
#jira UE-69434

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4877079 in //UE4/Release-4.22/... via CL 4877081
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4884678 by ben marsh in Dev-Networking branch]
2019-02-04 12:39:22 -05:00
ryan gerleve
f3be613426 Fix merge conflicts.
--------------------------------------
Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
Source: //UE4/Dev-Online 4860295

#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: michael.kirzinger
#ROBOMERGE-SOURCE: CL 4860323 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4860452 by ryan gerleve in Dev-Networking branch]
2019-01-31 15:36:12 -05:00
ben marsh
3028faba18 Trigger a link error whenever a module is missing a valid IMPLEMENT_MODULE macro on Windows.
The IMPLEMENT_MODULE macro now defines an empty function called IMPLEMENT_MODULE_{ModuleName}, to which we force a reference to via the linker command line. This behavior can be disabled on a per-module basis by setting bRequiresImplementModule = false from a .build.cs file.

#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4827582 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4830013 by ben marsh in Dev-Networking branch]
2019-01-29 05:14:09 -05:00
ben marsh
fa1b6a011c UBT: Fix exception when building a project that does not have any modules, due to failure to compile a valid rules assembly.
#rb none
#jira UE-68997

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4825910 in //UE4/Main/...
#ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking)

[CL 4828681 by ben marsh in Dev-Networking branch]
2019-01-29 04:41:08 -05:00