Commit Graph

25 Commits

Author SHA1 Message Date
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
marc audy
1c062e4fb2 Fix non-unity
#rb
#rnx
[CODEREVIEW] Ben.Marsh
#jira


#ROBOMERGE-SOURCE: CL 6007151 via CL 6007296

[CL 6007313 by marc audy in Main branch]
2019-04-19 00:37:07 -04:00
ben marsh
a289f6681e LiveCoding: Merging fixes to resolve issues with global symbols being reconstructed when loading patch DLLs. Was causing asserts when log channels were re-registered etc...
#jira
#rb none

#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5993252 via CL 5993257 via CL 5995286

[CL 5995562 by ben marsh in Main branch]
2019-04-18 17:51:25 -04:00
ben marsh
075ce10523 LiveCoding: Prevent Live Coding starting automatically when in unattended mode.
#rb none
#jira UE-72524

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

[CL 5988908 by ben marsh in Main branch]
2019-04-18 14:02:02 -04:00
ben marsh
12addcdfb3 LiveCoding: Fix unnecessary newlines on log messages.
#jira


#ROBOMERGE-SOURCE: CL 5492012 via CL 5492936

[CL 5492937 by ben marsh in Main branch]
2019-03-21 11:49:46 -04:00
ben marsh
583aa01bf7 LiveCoding: Add support for lazy loading modules. This lets us enable live coding for the entire engine without a large startup penalty. Project modules are still preloaded by default.
#rb none
#jira

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

[CL 5437990 by ben marsh in Main branch]
2019-03-18 18:07:05 -04:00
ben marsh
4b0b806b71 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-SOURCE: CL 5403464 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5403485 by ben marsh in Main branch]
2019-03-14 17:52:18 -04:00
ben marsh
81efe5710b LiveCoding: Fix determination of whether a module is part of a project plugin. Such modules report "false" for FModuleStatus.bIsGamePlugin.
#rb none
#jira UE-71399

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

[CL 5368509 by ben marsh in Main branch]
2019-03-12 10:10:07 -04:00
ben marsh
e55b45ea0d LiveCoding: Fix the "Show Console" button being disabled until the first compile.
#rb none
#jira UE-71379

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

[CL 5368489 by ben marsh in Main branch]
2019-03-12 10:09:35 -04:00
ben marsh
558a57ba3e LiveCoding: Allow editor thread to keep running while server is processing modules.
#rb none
#jira UE-71269

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

[CL 5368488 by ben marsh in Main branch]
2019-03-12 10:09:33 -04:00
ben marsh
6597e1e8ee LiveCoding: Explicitly batch all EnableModules() commands, to prevent user command thread preempting the editor thread before it's finished adding everything. Prevents "Live coding ready" messages being spammed in the console window.
#rb none
#jira UE-71270

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

[CL 5368485 by ben marsh in Main branch]
2019-03-12 10:09:28 -04:00
ben marsh
d695b8a97d Fix "Compile" button in toolbar using legacy hot reload when live coding startup is set to manual.
#rb none
#jira UE-71359

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

[CL 5368484 by ben marsh in Main branch]
2019-03-12 10:09:26 -04:00
ben marsh
e8ecd788f2 LiveCoding: Fix setting for enabling/disabling live coding not being saved when modified via the toolbar.
#rb none
#jira UE-71362

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

[CL 5368482 by ben marsh in Main branch]
2019-03-12 10:09:23 -04:00
ben marsh
cbea44a25d LiveCoding: Make properties for toggling on/off for engine modules hidden in installed builds.
#rb none
#jira UE-71274

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

[CL 5364960 by ben marsh in Main branch]
2019-03-11 18:58:59 -04:00
ben marsh
6cf6469c8f LiveCoding: Tweaks to live coding settings.
* Compile dropdown now just contains a checkbox for enabling live coding.
* Compile dropdown has a link to open the editor preferences window.
* Live coding can be enabled from the editor settings window.
* Option to show the console on startup is now folded into the startup mode.
* Options in the editor settings window are greyed out unless live coding is enabled.

#rb none
#jira

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

[CL 5364901 by ben marsh in Main branch]
2019-03-11 18:57:53 -04:00
ben marsh
c61bfc2e36 Move live coding settings back under the editor preferences window, since it's a user-specific thing.
#rb none
#jira UE-71126

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

[CL 5364819 by ben marsh in Main branch]
2019-03-11 18:57:05 -04:00
ben marsh
90201985e0 LiveCoding: Disable the editor compile button while a compile is in progress.
#rb none
#jira UE-71077

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

[CL 5343162 by ben marsh in Main branch]
2019-03-07 17:30:35 -05:00
ben marsh
c4ddf4689b Restore code that was accidentally commented out while debugging.
#rb none
#jira
#rnx

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

[CL 5341387 by ben marsh in Main branch]
2019-03-07 16:01:49 -05:00
ben marsh
b02ec9e909 LiveCoding: Expose a Tick() function so that systems that don't use fire EndFrame() callbacks can still tick the live coding module. Also add a -LiveCoding command line argument to force it on.
#rb none
#jira

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

[CL 5340483 by ben marsh in Main branch]
2019-03-07 15:21:21 -05:00
ben marsh
12df3f4436 Disable warning when building xxhash.c.
#rb none
#jira
#rnx

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

[CL 5316165 by ben marsh in Main branch]
2019-03-06 13:30:36 -05:00
ben marsh
81fd979e43 Suppress warning in static analysis.
#rb none
#jira
#rnx

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

[CL 5316164 by ben marsh in Main branch]
2019-03-06 13:30:34 -05:00
ben marsh
d4b768f28a Fix difference in scoping rules for extern'd variables declared inline under Clang.
#rb none
#rnx
#jira

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

[CL 5316163 by ben marsh in Main branch]
2019-03-06 13:30:32 -05:00
ben marsh
0a76cfc192 Fix copyright notices.
#rb none
#jira
#rnx

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

[CL 5314652 by ben marsh in Main branch]
2019-03-06 12:44:19 -05:00
ben marsh
fd2bcd780a Fixes for static analysis warnings.
#rb none
#jira

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

[CL 5314647 by ben marsh in Main branch]
2019-03-06 12:44:16 -05: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