Commit Graph

61 Commits

Author SHA1 Message Date
robert manuszewski
b938e59c9b Reimplementing FProperty changes from //UE4/Main
+ Reimplemented FProperty related fixed from //UE4/Main:
CL#10791312, 10804850, 10851666, 10855122, 10855198, 10942138, 11030611, 11030639, 11032261, 11061515, 11136964,11138881, 11214238, 11214865

#rb none (previously reviewed in Dev-Core)
[FYI] Chris.Bunnner, Daniel.Lamb


#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 11302985 via CL 11303011 via CL 11303019
#ROBOMERGE-BOT: (v0-11244347)

[CL 11303183 by robert manuszewski in Main branch]
2020-02-10 08:06:56 -05:00
jon nabozny
a68bcb52d3 Redo changes from CL-10931598 with crash fix and copyright update.
[FYI] Bob.Tellez
#rb None


#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 10982730 via CL 10982741 via CL 10982750
#ROBOMERGE-BOT: (v632-10940481)

[CL 10983012 by jon nabozny in Main branch]
2020-01-14 11:48:31 -05:00
bob tellez
b84ee521f5 Back out changelist 10931598. Likely cause for crash at startup
[FYI] Jon.Nabozny
#rb none

#ROBOMERGE-OWNER: bob.tellez
#ROBOMERGE-AUTHOR: bob.tellez
#ROBOMERGE-SOURCE: CL 10933120 via CL 10933137 via CL 10933157
#ROBOMERGE-BOT: (v626-10872990)

[CL 10933303 by bob tellez in Main branch]
2020-01-09 16:58:28 -05:00
jon nabozny
3b3eb87e75 Push Model Replication Core.
Provides the basic interface, machinery, and codegen for allowing games to notify the networking system when properties have been changed.

[at]Ryan.Gerleve, [at]Brian.Bekich, [at]Peter.Engstrom, [at]Mattias.Hornlund, [at]LouisPhilippe.Seguin, [at]Bart.Hawthorne, [at]Marc.Audy, [at]Dan.OConnor
#rb Dan.Oconnor, Peter.Engstrom, Steve.Robb


#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 10931598 via CL 10931603 via CL 10931604
#ROBOMERGE-BOT: (v626-10872990)

[CL 10931773 by jon nabozny in Main branch]
2020-01-09 15:57:29 -05:00
marc audy
a7f3d43678 UHT optimizations part 6 - Generate files in parallel. Improves code generation phase by ~50%.
* Restructured code so that FNativeClassHeaderGenerator can now use ParallelFor for 3 phases: creating the .generated.h files, creating the .gen.cpp, and exporting the generated headers
* FNameLookupCPP, GPackageSingletons, GGeneratedCodeHashes, GetTypePackageName, FNativeClassHeaderGenerator::GetPackageSingletonName, FTypeSingletonCache, and FTypeSingleton::GetExternDecl now use RWScopeLocks to safely control access to globals/statics
#jira
#rnx
#rb


#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10876463 via CL 10876464 via CL 10876465
#ROBOMERGE-BOT: (v624-10872983)

[CL 10876473 by marc audy in Main branch]
2020-01-04 15:28:16 -05:00
marc audy
a46a5a31b6 UHT optimizations part 5 - Minor optimizations and clean up of code generation
#jira
#rnx
#rb


#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 10873665 via CL 10873666 via CL 10873667
#ROBOMERGE-BOT: (v624-10872983)

[CL 10873695 by marc audy in Main branch]
2020-01-02 12:15:23 -05:00
Ryan Durand
74c879d5f3 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 10870960 by Ryan Durand in Main branch]
2019-12-26 23:06:02 -05:00
Robert Manuszewski
7b6f840f7f Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00
marc audy
45c4bf4552 Move implementation of RPCWrapper functions in to generated cpp instead of generated h
#rb Michael.Noland
#jira
#rnx


#ROBOMERGE-SOURCE: CL 10094466 via CL 10094498
#ROBOMERGE-BOT: (v584-10094073)

[CL 10094521 by marc audy in Main branch]
2019-11-11 09:48:51 -05:00
steve robb
7cf58294ce Refactored structs to reduce executable space from UHT-generated code tables.
#rb robert.manuszewski
[FYI] peter.sauerbrei



#ROBOMERGE-SOURCE: CL 4784689 via CL 4789908

[CL 4794430 by steve robb in Main branch]
2019-01-24 04:28:21 -05:00
Robert Manuszewski
2752c82adc Merging //UE4/Dev-Main @ 4664414 to Dev-Core (//UE4/Dev-Core)
#rb none

[CL 4675693 by Robert Manuszewski in Dev-Core branch]
2019-01-02 00:55:51 -05:00
Steve Robb
7fa474ae63 GitHub 5032 : Added templated StaticClass, StaticStruct and StaticEnum free functions, which are specialized for every reflected type by the generated code that UHT produces
#rb steve.robb
#jira UE-63337

[CL 4591484 by Steve Robb in Dev-Core branch]
2018-11-26 02:38:35 -05:00
Johan Torp
d5071f5aa1 UHT avoid needlessly creating an Array from Set
#rb trivial

[CL 4404535 by Johan Torp in Dev-Core branch]
2018-09-28 04:15:30 -04:00
Marc Audy
d90da4ab1a Merge to Dev-Main for 4.20 @ 4090813
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4091081 by Marc Audy in Main branch]
2018-05-23 21:04:31 -04:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ben Marsh
f461ea68e9 Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365)
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 3494741 by Steve.Robb

	Generated code size savings.

	#jira UE-43048

Change 3495484 by Steve.Robb

	Fix for generated indices of static arrays when saving configs.

Change 3497926 by Robert.Manuszewski

	Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.

Change 3498077 by Robert.Manuszewski

	Only use the recursion guard in async loading code when the event driven loader is enabled.

Change 3498112 by Ben.Marsh

	UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.

Change 3500239 by Robert.Manuszewski

	Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.

Change 3500395 by Steve.Robb

	Extra codegen savings when not in hot reload.

Change 3501004 by Steve.Robb

	EObjectFlags now have constexpr operators.

Change 3502079 by Ben.Marsh

	UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.

Change 3502527 by Steve.Robb

	Fix for zero-sized array compile error in generated code when all functions are editor-only.

Change 3502542 by Ben.Marsh

	UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.

Change 3502868 by Steve.Robb

	Workaround for inefficient generated code with stateless lambdas on Clang.

Change 3503550 by Steve.Robb

	Another generated code lambda optimization.

Change 3503582 by Ben.Marsh

	BuildGraph: Add support for nullable parameter types.

Change 3504424 by Steve.Robb

	New AllOf, AnyOf and NoneOf algorithms.

Change 3504712 by Ben.Marsh

	UAT: Less spammy log and error output from UAT.

	* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
	* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
	* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
	* Name of the calling function is not included in console output by default, but still included in the log.

Change 3504808 by Ben.Marsh

	UAT: Suppress P4 output when running a recursive instance of UAT.

Change 3505044 by Steve.Robb

	Code generation improved for TCppClassType code.

Change 3505485 by Ben.Marsh

	Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.

Change 3505699 by Ben.Marsh

	Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.

Change 3506055 by Ben.Marsh

	UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.

Change 3507745 by Robert.Manuszewski

	Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).

Change 3507911 by Ben.Marsh

	Plugins: Minor changes to plugin descriptors.

	* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
	* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.

Change 3508669 by Ben.Marsh

	EC: Parse multi-line messages from UBT and UAT.

Change 3508691 by Ben.Marsh

	Fix double-spacing of cook stats.

Change 3509245 by Steve.Robb

	UHT makefiles removed.
	Flag audit removed.

Change 3509275 by Steve.Robb

	Fix for mismatched stat categories in AudioMixer.

	#jira UE-46129

Change 3509289 by Robert.Manuszewski

	Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.

Change 3509294 by Robert.Manuszewski

	UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.

Change 3509312 by Steve.Robb

	GitHub# 3679: Add TArray constructor that takes a raw pointer and a count

	Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.

	#jira UE-46136

Change 3509396 by Steve.Robb

	GitHub# 3676: Fix TUnion operator<< compile error

	#jira UE-46099

Change 3509633 by Steve.Robb

	Fix for line numbers on multiline macros.

Change 3509938 by Gil.Gribb

	UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.

Change 3510593 by Daniel.Lamb

	Fixed up unsoilicited files getting populated with files which aren't finished being created yet.

	#test None

Change 3510594 by Daniel.Lamb

	Fixed up temp files directory for patching.

	Thanks David Yerkess @ Milestone
	#review@Ben.Marsh

Change 3511628 by Ben.Marsh

	PR #3707: Fixed UBT stack size (Contributed by gildor2)


Change 3511808 by Ben.Marsh

	Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)

	#jira UE-46540

Change 3512017 by Ben.Marsh

	Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.

Change 3513935 by Steve.Robb

	Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.

Change 3514142 by Steve.Robb

	MemoryProfiler2 added to generated solution.

Change 3516463 by Ben.Marsh

	Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.

Change 3517860 by Ben.Marsh

	PR #3727: FString Dereference Fixes (Contributed by jovisgCL)


Change 3517967 by Ben.Marsh

	Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.

Change 3518070 by Steve.Robb

	Disable Binned2 stats in shipping non-editor builds.

Change 3520079 by Steve.Robb

	Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.

	#jira UE-24034

Change 3520080 by Robert.Manuszewski

	Made max package summary size to be configurable with ini setting

Change 3520083 by Steve.Robb

	Force a GC after hot reload to clean up reinstanced objects which may still tick.

	#jira UE-40421

Change 3520480 by Robert.Manuszewski

	Improved assert message when the initial package read request was too small.

Change 3520590 by Graeme.Thornton

	SignedArchiveReader optimizations
	 - Loads more stats
	 - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
	 - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
	 - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries

Change 3521023 by Graeme.Thornton

	Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing

Change 3521787 by Ben.Marsh

	PR #3736: Small static code analysis fixes (Contributed by jovisgCL)


Change 3521789 by Ben.Marsh

	PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)


Change 3524721 by Ben.Marsh

	Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.

Change 3524741 by Ben.Marsh

	Move PumpMessages() into FPlatformApplicationMisc.

Change 3525399 by Ben.Marsh

	UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.

Change 3525743 by Ben.Marsh

	UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.

Change 3525746 by Ben.Marsh

	EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.

Change 3526453 by Ben.Marsh

	UGS: Do not generate project files when syncing precompiled binaries.

Change 3527045 by Ben.Marsh

	Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.

Change 3527420 by Ben.Marsh

	UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).

	Config files are now read from:

	Engine/Programs/UnrealGameSync/UnrealGameSync.ini
	Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini

	If a project is selected:

	<ProjectDir>/Build/UnrealGameSync.ini
	<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini

	If the .uprojectdirs file is selected:

	Engine/Programs/UnrealGameSync/DefaultProject.ini
	Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini

Change 3528063 by Ben.Marsh

	Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.

Change 3528415 by Ben.Marsh

	UAT: Remove \r characters from the end of multiline log messages.

Change 3528427 by Ben.Marsh

	EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.

Change 3528485 by Ben.Marsh

	EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.

Change 3528505 by Steve.Robb

	PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)


	#jira UE-46819

Change 3528772 by Robert.Manuszewski

	Enabling actor and blueprint clustering in ShooterGame

Change 3528786 by Robert.Manuszewski

	PR #3760: Fix typo (Contributed by jesseyeh)


Change 3528792 by Steve.Robb

	PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)


	#jira UE-46962

Change 3528941 by Robert.Manuszewski

	Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.

	#jira UE-44996

Change 3530241 by Ben.Marsh

	UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.

Change 3531377 by Ben.Marsh

	Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.

	This has several advantages over the per-module platform whitelist/blacklist:

	* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
	* References to dependent plugins from platform-specific plugins can now be eliminated.
	* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
	* The editor can load any plugins without having to whitelist supported editor host platforms.

	UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.

	Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.

Change 3531502 by Jin.Zhang

	Add support for GPUCrash #rb

Change 3531664 by Ben.Marsh

	UBT: Change output format from C# JSON writer to match output by the engine.

Change 3531848 by Ben.Marsh

	UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.

Change 3531869 by Ben.Marsh

	UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.

Change 3532474 by Ben.Marsh

	UBT: Use the same mechanism as UAT for logging exceptions.

Change 3532734 by Graeme.Thornton

	Initial VSCode Support
	 - Tasks generated for building all game/engine/program targets
	 - Debugging support for targets on Win64

Change 3532789 by Steve.Robb

	FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
	Set_Add and Map_Add no longer have a return value.
	FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
	FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.

Change 3532845 by Steve.Robb

	Obsolete UHT settings deleted.

Change 3532875 by Graeme.Thornton

	VSCode
	 - Add debug targets for different target configurations
	 - Choose between VS debugger (windows) and GDB (mac/linux)

Change 3532906 by Graeme.Thornton

	VSCode
	 - Point all builds directly at UBT rather than the batch files
	 - Adjust mac build tasks to run through mono

Change 3532924 by Ben.Marsh

	UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.

Change 3535234 by Graeme.Thornton

	VSCode - Pass intellisense system a list of paths to use for header resolution

Change 3535247 by Graeme.Thornton

	UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation

Change 3535376 by Graeme.Thornton

	VSCode
	 - Added build jobs for C# projects
	 - Linked launch tasks to relevant build task

Change 3537083 by Ben.Marsh

	EC: Change P4 swarm links to start at the changelist for a build.

Change 3537368 by Graeme.Thornton

	Fix for crash in FSignedArchiveReader when multithreading is disabled

Change 3537550 by Graeme.Thornton

	Fixed a crash in the taskgraph when running single threaded

Change 3537922 by Steve.Robb

	Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.

Change 3539691 by Graeme.Thornton

	VSCode - Various updates to get PC and Mac C++ projects building and debugging.
	 - Some other changes to C# setup to allow compilation. Debugging doesn't work.

Change 3539775 by Ben.Marsh

	Plugins: Various fixes to settings for enabling plugins.

	* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
	* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
	* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.

Change 3540788 by Ben.Marsh

	UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).

	Example usage:

	public class UnrealPakTarget : TargetRules
	{
		public UnrealPakTarget(TargetInfo Target) : base(Target)
		{
			Type = TargetType.Program;
			LinkType = TargetLinkType.Monolithic;
			LaunchModuleName = "UnrealPak";

			if(HostPlatform == UnrealTargetPlatform.Win64)
			{
				PreBuildSteps.Add("echo Before building:");
				PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");

				PostBuildSteps.Add("echo After building!");
				PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
			}
		}
	}

Change 3541664 by Graeme.Thornton

	VSCode - Add problemMatcher tag to cpp build targets

Change 3541732 by Graeme.Thornton

	VSCode - Change UBT command line switch to "-vscode" for simplicity

Change 3541967 by Graeme.Thornton

	VSCode - Fixes for Mac/Linux build steps

Change 3541968 by Ben.Marsh

	CRP: Pass through the EnabledPlugins element in crash context XML files.

	#jira UE-46912

Change 3542519 by Ben.Marsh

	UBT: Add chain of references to error messages when configuring plugins.

Change 3542523 by Ben.Marsh

	UBT: Add more useful error message when attempt to parse a JSON object fails.

Change 3542658 by Ben.Marsh

	UBT: Include a chain of references when reporting errors instantiating modules.

Change 3543432 by Ben.Marsh

	Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.

Change 3543436 by Ben.Marsh

	UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.

Change 3543536 by Ben.Marsh

	UBT: Downgrade message about redundant plugin references to a warning.

Change 3543871 by Gil.Gribb

	UE4 - Fixed a critical crash bug with non-EDL loading from pak files.

Change 3543924 by Robert.Manuszewski

	Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
	+Small optimization to token stream generation code.

Change 3544469 by Jin.Zhang

	Crashes page displays the list of plugins from the crash context #rb

Change 3544608 by Steve.Robb

	Fix for nativized generated code.

	#jira UE-47452

Change 3544612 by Ben.Marsh

	Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().

	#jira UE-47449

Change 3545954 by Gil.Gribb

	Fixed a critical crash bug relating to a race condition in async package summary reading.

Change 3545968 by Ben.Marsh

	UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.

	#jira UE-47419

Change 3545976 by Ben.Marsh

	EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.

Change 3546185 by Ben.Marsh

	Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.

Change 3547084 by Gil.Gribb

	Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.

Change 3547968 by Gil.Gribb

	Fixed critical race which potentially could cause a crash in the pak precacher.

Change 3504722 by Ben.Marsh

	BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.

	For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:

	ERROR: Unable to write to foo.txt
	         while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
	         at Engine\Build\InstalledEngineBuild.xml(91)
	       (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)

Change 3512255 by Ben.Marsh

	Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.

Change 3512332 by Ben.Marsh

	Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.

Change 3512393 by Ben.Marsh

	Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().

Change 3513452 by Ben.Marsh

	Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.

Change 3516262 by Ben.Marsh

	Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.

	* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
	* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).

Change 3517565 by Ben.Marsh

	Remove fixed engine version numbers from OSS plugins.

Change 3518005 by Ben.Marsh

	UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.

Change 3518054 by Ben.Marsh

	UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.

Change 3524496 by Ben.Marsh

	Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.

Change 3524641 by Ben.Marsh

	Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.

Change 3528723 by Steve.Robb

	MoveTemp now static asserts if passed a const reference or rvalue.
	MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
	Fixes to violations of these new rules.

Change 3528876 by Ben.Marsh

	Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.

Change 3529073 by Ben.Marsh

	Add script to package ShooterGame for any platforms.

Change 3531493 by Ben.Marsh

	Update platform-specific plugins to declare the target platforms they support.

Change 3531611 by Ben.Marsh

	UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.

Change 3531868 by Ben.Marsh

	Resaving project descriptors to remove invalid fields.

Change 3531983 by Ben.Marsh

	UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.

	* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
	* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
	* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
	* An error is output if any restricted folder names other than the output platform are in the staged output.

Change 3540315 by Ben.Marsh

	UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.

Change 3542410 by Ben.Marsh

	UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.

Change 3543018 by Ben.Marsh

	UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.

Change 3544371 by Steve.Robb

	Fixes to TSet_Add and TMap_Add BPs.

	#jira UE-47441

[CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
Ben Marsh
aa969f9931 Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3420477)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3386262 on 2017/04/10 by Ben.Marsh

	Add app-local deployment of DirectX components that are no longer included with newer versions of Windows by default (XAudio 2.7, XInput 1.3). Also add a one-click button to the packaging settings to include the default app-local dependencies, rather than having to specify the path.

Change 3386999 on 2017/04/10 by Ben.Marsh

	Plugins: Add support for explicit dependencies from one plugin onto another. Required plugins can be configured in an identical manner to project files, by adding a "Plugins" key to the .uplugin file. Dependencies are automatically built and loaded, and the plugin browser will warn if you try to disable a plugin that something else has a dependency on.

Change 3387073 on 2017/04/10 by Ben.Marsh

	Move FLightPropagationRuntimeSettings into the Renderer module, to remove engine dependency on a plugin.

Change 3387988 on 2017/04/11 by Steve.Robb

	Comments added to clarify the role of DestructItem and DestructItems.

Change 3388085 on 2017/04/11 by Ben.Marsh

	UBT: Fix bEnabled flag on plugin references being ignored. Now collect up all the plugin references in order of priority before creating plugin instances for them. Fixes CIS fail for UT.

Change 3390048 on 2017/04/12 by Richard.Hinckley

	#jira UE-43876
	Fixed description of Streaming settings (within Project Settings).

Change 3390697 on 2017/04/12 by Steve.Robb

	CLASS_PointersDefaultToAutoWeak and CLASS_PointersDefaultToWeak removed.

Change 3390711 on 2017/04/12 by Steve.Robb

	AGRESSIVE_ARRAY_FORCEINLINE removed.

Change 3392167 on 2017/04/13 by Robert.Manuszewski

	UObject can be added to GC cluster only if all of its Outers can also be added to it.

	Fixing asserts caused by components that are added to GC clusters even if their owner actors that can't be in GC clusters.

	#jira UE-42948

Change 3392309 on 2017/04/13 by Robert.Manuszewski

	When adding objects to clusters after these clusters have been created it's possible to come across objects that are already in the cluster we're adding the object to so instead of crashing, allow it.

Change 3392620 on 2017/04/13 by Ben.Marsh

	UGS: Only check for updates every 5 minutes.

Change 3392623 on 2017/04/13 by Ben.Marsh

	UGS: Only poll for new changes every 60 seconds.

Change 3392744 on 2017/04/13 by Ben.Marsh

	UGS: Query changelist descriptions individually to determine whether changes affect code or content, to hopefully reduce Perforce server load.

Change 3392874 on 2017/04/13 by Ben.Marsh

	UGS: Allow specifying regexes in the project config file which filters which changes to be displayed. Useful for changes submitted by build machines, updates to collections, etc...

Change 3392878 on 2017/04/13 by Ben.Marsh

	Update UGS to version 1.96

Change 3395635 on 2017/04/17 by Ben.Marsh

	UAT: Prefix log output from executing UAT commands through BuildGraph with the name of that command.

Change 3395655 on 2017/04/17 by Ben.Marsh

	UAT: Add a command for syncing a DDC over the network (SyncDDC). Allows specifying a maximum size to copy, number of days worth of modified files to copy, and time limit not to be exceeded.

Change 3396989 on 2017/04/17 by Wes.Hunt

	CrashReporter configurable tweaks.
	* Added QueueWaitingTimeAlertThreshold (used to be hardcoded to 1 min).
	  - When the queue waiting time gets beyond this many seconds, trigger a slack alert message. Default is 10 min.
	  - Zero means never alert.
	* Added DiskSpaceAvailableAlertInterval (used to be hardcoded to 1 day).
	  - Interval by which to report disk space availability.
	  - Default is never (Zero)
	* Updated config file to match production config.
	#codereview:jin.zhang

Change 3397656 on 2017/04/18 by Ben.Marsh

	UBT: Allow modules to opt-out of getting the default include paths from being added, by setting bAddDefaultIncludePaths = false from their build.cs file.

Change 3397677 on 2017/04/18 by Robert.Manuszewski

	PR #3167 : Adding more descriptive error text to DetatchLinker error check (by rooneym)


Change 3397722 on 2017/04/18 by Robert.Manuszewski

	PR #2252: Increase linker reporting for failed imports (Contributed by FineRedMist)


Change 3397739 on 2017/04/18 by Richard.Hinckley

	#jira UE-44100
	Fixed SanitizePackageName() to remove double-slash, triple-slash, etc. from package names. Also updated CreatePackage() to call SanitizePackageName() before creating.

Change 3398023 on 2017/04/18 by Ben.Marsh

	PR #3105: Cook/package with editor and debugger attached (Contributed by projectgheist)


Change 3398095 on 2017/04/18 by Ben.Marsh

	PR #3051: Generate map file from UAT (Contributed by projectgheist)


Change 3398212 on 2017/04/18 by Ben.Marsh

	PR #2915: UE-38232: Removed duplicate stats (Contributed by projectgheist)


Change 3399304 on 2017/04/19 by Ben.Marsh

	UGS: Prevent editor target files being removed when running custom tools.

Change 3399306 on 2017/04/19 by Robert.Manuszewski

	Moved InitPropertiesFromCustomList to UbLueprintGeneratedClass and made it thread safe

Change 3399729 on 2017/04/19 by Steve.Robb

	Simple optimization to TBitArray::RemoveAt() when all removed bits are at the end of the array.
	RemoveAtSwap() now simply decrements the count instead of calling RemoveAt().
	Checks for a positive count added to RemoveAt() and RemoveAtSwap().

Change 3399750 on 2017/04/19 by Jin.Zhang

	Order branch alphabetically #RB

Change 3400186 on 2017/04/19 by Steve.Robb

	Per-header generated code.

Change 3401458 on 2017/04/20 by Steve.Robb

	Static log categories moved out of headers to prevent duplicates when the header is included multiple times.

	#jira UE-37507

Change 3401657 on 2017/04/20 by Gil.Gribb

	UE4 - Simplified and reworked lock free lists and the task graph bringing all platforms under the same scheme.

Change 3401735 on 2017/04/20 by Gil.Gribb

	UE4 - Updated apple platform atomics with a new clang version which is intended to be shared among all clang platforms.

Change 3403362 on 2017/04/21 by Steve.Robb

	Algo::Sort() fixed to support C arrays.
	Size+count versions of Also::IsSorted() deprecated.
	Algo::IsSortedBy() added.
	Algo::FindBy() added to allow an element to be found by projection.
	Simplifications and generalizations.

Change 3404017 on 2017/04/21 by Ben.Marsh

	Fix issue where referenced plugin descriptors were missing from console builds, and prevent monolithic builds from offering to disable missing plugins.

Change 3405299 on 2017/04/24 by Steve.Robb

	Clarified the class of the incompatible function in the error message about incompatible BP event specifiers.

	#jira UE-35106

Change 3405302 on 2017/04/24 by Ben.Marsh

	UBT: Allow excluding documentation from generated project files, by setting <ProjectFileGenerator><bIncludeDocumentation>false</bIncludeDocumentation></ProjectFileGenerator> in the XML configuration file.

Change 3405629 on 2017/04/24 by Ben.Marsh

	Rename CPPEnvironment to CppCompileEnvironment, to reflect the class name.

Change 3406431 on 2017/04/24 by Ben.Marsh

	UAT: Fix incorrect handling of P4SubmitOptions when multiple values are present.

Change 3406670 on 2017/04/24 by Ben.Marsh

	UBT: Enable warnings for classes with virtual functions and no virtual destructor (C4265 on Windows, -fdelete-non-virtual-dtor on Clang).

Change 3407080 on 2017/04/25 by Gil.Gribb

	UE4 - Critical fix: Propoerly disambiguate imports with the same name and the same outer name. This fixes an assert: LocalExportIndex.IsNull.

Change 3407486 on 2017/04/25 by Gil.Gribb

	UE4 - Made changes so that servers, programs and non-engine executables do not create background or high priority threads.

Change 3407495 on 2017/04/25 by Gil.Gribb

	UE4 - Tweaked out XBox and Windows low level file IO.

Change 3407497 on 2017/04/25 by Gil.Gribb

	UE4 - Fixed bug in the pak precacher that would result in blocks being discarded too soon, which, in turn, resulted in redudnant reads.

Change 3407705 on 2017/04/25 by Ben.Marsh

	Removing most of the junk in DotNETUtilities.

Change 3409701 on 2017/04/26 by Ben.Marsh

	Disable another static analyzer warning for third party libraries.

Change 3410074 on 2017/04/26 by Daniel.Lamb

	Network platform file runs heart beats and responds to modified file changes.
	Cook on the fly server in the editor (COTS) now detects changes to content and notifies client.
	Fixed issue with network platform file not using correct sandbox.

	#test cook on the side shootergame

Change 3411131 on 2017/04/27 by Steve.Robb

	TIsTriviallyDestructible now supports forward-declared enums.

Change 3411186 on 2017/04/27 by Steve.Robb

	Fix for #includes in generated code for Within classes which are in a different module from the generated class.

Change 3411917 on 2017/04/27 by Steve.Robb

	Fixes to pushing/popping the CPP macro.

Change 3411966 on 2017/04/27 by Steve.Robb

	Include spam reduced in generated code.

Change 3412155 on 2017/04/27 by Ben.Marsh

	Fix for PVS Studio warning: VFOVInRadians used instead of HFOVInRadians.

Change 3412223 on 2017/04/27 by Ben.Marsh

	Fix for PVS-Studio warning: Calling SetHelperA.Num() twice.

Change 3412273 on 2017/04/27 by Ben.Marsh

	Fix for PVS-Studio warning: Duplicated variable name.

Change 3412511 on 2017/04/27 by Ben.Marsh

	PR #3462: Fixed PVS-Studio issues (Part 1) (Contributed by PaulEremeeff)


Change 3412582 on 2017/04/27 by Ben.Marsh

	Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code

Change 3413136 on 2017/04/28 by Robert.Manuszewski

	Helper functions for dissolving specific GC clusters

Change 3413310 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Incorrect variable name in copy/pasted code.

Change 3413341 on 2017/04/28 by Gil.Gribb

	UE4 - Add prestream capability to allow us to preload always loaded sublevels. Only turned on for Shootergame.

Change 3413351 on 2017/04/28 by Ben.Marsh

	Include code analysis macros directly from Platform.h, so that macros are available to everything.

Change 3413352 on 2017/04/28 by Ben.Marsh

	Fixing a few more PVS studio warnings.

Change 3413437 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Comparison is always true.

Change 3413759 on 2017/04/28 by Ben.Marsh

	Suppressing warnings for PVS-Studio.

Change 3413784 on 2017/04/28 by Ben.Marsh

	Fix PVS-Studio warning.

Change 3413898 on 2017/04/28 by Ben.Marsh

	Fix PVS-Studio warning: Same conditional is checked twice.

Change 3413915 on 2017/04/28 by Ben.Marsh

	Fix PVS-Studio warning: LHS of expression is identical to RHS.

Change 3413989 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: If CurrentGraph->SubGraphs.Num() == 1, it will always enter the first conditional block.

Change 3414053 on 2017/04/28 by Ben.Marsh

	More PVS-Studio fixes.

Change 3414062 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Pointer to object goes out of scope without being freed.

Change 3414070 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Fix incorrect condition.

Change 3414071 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Array index is always zero.

Change 3414116 on 2017/04/28 by Ben.Marsh

	BuildGraph: Allow marking compile tasks as unsuitable for use with the parallel executor, via an AllowParallelExecutor="false" attribute.

Change 3414160 on 2017/04/28 by Ben.Marsh

	Add support for running PVS-Studio through UnrealBuildTool. To use, pass -StaticAnalyzer=PVSStudio to the build command line (similarly, the Visual C++ analyzer can now be invoked using -StaticAnalyzer=VisualCpp). A log file will be written to the Engine/Saved/PVS-Studio or <Project>/Saved/PVS-Studio directory containing diagnostics, which can be opened using the "unparsed output" filter in the PVS-Studio standalone application. High priority warnings are printed to stdout.

Change 3414237 on 2017/04/28 by Ben.Marsh

	EC: Allow disabling and enabling the log preprocessor via special markers in the log.

	To disable: <-- Suspend Log Parsing -->
	To enable: <-- Resume Log Parsing -->

Change 3414343 on 2017/04/28 by Ben.Marsh

	UBT: Exclude ThirdParty folders from PVS output.


Change 3414392 on 2017/04/28 by Ben.Marsh

	Fix regular strings being casted to BSTRs; BSTRs have a hidden length prefix in the two bytes before the first character, so passing a regular TCHAR* is reading random memory.

Change 3414459 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Object goes out of scope without being freed.

Change 3414495 on 2017/04/28 by Ben.Marsh

	Suppress some more PVS-Studio warnings.

Change 3414514 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Testing WorldType being equal to EditorPreview and not equal to Inactive is redundant; changing to match description in comment instead.

Change 3414526 on 2017/04/28 by Ben.Marsh

	Fix for PVS-Studio warning: Variable assigned to itself has no effect.

Change 3415183 on 2017/04/29 by Ben.Marsh

	Fix conflict in macro definitions for ENABLE_HTTP_FOR_NFS - rename the macro defined by NetworkFile to ENABLE_HTTP_FOR_NF. Hopefully fix CIS.

Change 3415765 on 2017/05/01 by Ben.Marsh

	Suppressing PVS-Studio warning to get things building cleanly. Not sure if FContentHelper is being leaked or not.

Change 3415853 on 2017/05/01 by Ben.Marsh

	EC: Fix jobs never completing if a "Sync & Build" step fails. Dependent jobs should evaluate their run conditions as soon as the parent step finishes, rather than waiting for child job steps to be created.

Change 3416138 on 2017/05/01 by Ben.Marsh

	Fix Fortnite cook failures. Not sure what the exact problem is here, but my hunch is that discarded "const" causes blueprint compile failures due to not being able to connect output pins between nodes for overloaded functions, or something like that.

Change 3416309 on 2017/05/01 by Ben.Marsh

	Build: Fix node names for static analysis.

Change 3416360 on 2017/05/01 by Ben.Marsh

	UBT: Remove unused arguments to PrepForUATPackageOrDeploy for Windows.

Change 3416398 on 2017/05/01 by Daniel.Lamb

	Cook on the fly NetworkFileServerConnection Remove FileModifiedCallback delegate when the connection is closed.

	#test Cook on the side shootergame.

Change 3416826 on 2017/05/01 by Daniel.Lamb

	Added callback to game when files are requested reload from networkfileserver.
	Game will need to unload / reload effected objects.
	Working on simple reload capability in shootergame.

	#test Cook on the side shootergame with reloading

Change 3417983 on 2017/05/02 by Ben.Marsh

	EC: Remove warning for lines not matching p4 tag syntax when running preflights; multi-line descriptions in shelved changelists break this pattern.

Change 3418747 on 2017/05/02 by Steve.Robb

	Fix for const pointer properties.
	Fix for UHT debugging manifest.
	Test added for pointer properties.

Change 3420477 on 2017/05/03 by Gil.Gribb

	UE4 - Removed check from windows async IO layer.

[CL 3421020 by Ben Marsh in Main branch]
2017-05-03 14:18:32 -04:00
Ben Marsh
75fa4e9e6d Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3386108)
#rb none
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3345860 on 2017/03/14 by Daniel.Lamb

	Fixed crash when building DLC

	#test Cook paragon.

Change 3347324 on 2017/03/15 by Gil.Gribb

	UE4 - Removed old code relating to FAsyncArchive, FAsyncIOSubsystemBase and package level compression. The editor now uses the lowest levels on the new async IO scheme.

Change 3347331 on 2017/03/15 by Robert.Manuszewski

	Fix for a crash caused by GC killing BP class (due to no strong references) but its CDO is being kept alive because it was in the same cluster as the class and was not marked as pending kill.

	#jira UE-42732

Change 3347371 on 2017/03/15 by Graeme.Thornton

	Fix for runtime asset cache not invalidating files with an outdated version number

Change 3349161 on 2017/03/16 by Steve.Robb

	Generated UFUNCTION FNames no longer exported.
	Misc refactors of code generation.

Change 3349167 on 2017/03/16 by Steve.Robb

	Unused TBoolConstant removed (the more general TIntegralConstant should be used instead).

Change 3349274 on 2017/03/16 by Gil.Gribb

	UE4 - Fix loading a package that is already loaded.

Change 3349534 on 2017/03/16 by Ben.Marsh

	UBT: Check that the SN-DBS service is running before attempting to use it.

Change 3349612 on 2017/03/16 by Gil.Gribb

	UE4 - Increased estimate of summary size.

Change 3350021 on 2017/03/16 by Gil.Gribb

	UE4 - Fixed crash in signature checks when mounting pak files.

Change 3350052 on 2017/03/16 by Ben.Marsh

	Remove invalid characters from macro names before passing as macro values. Prevents compile errors for projects which have apostrophes in the name.

Change 3350360 on 2017/03/16 by Ben.Marsh

	UAT: Fix non-threadsafe access of ExeToTimeInMs when spawning external processes.

Change 3351670 on 2017/03/17 by Ben.Marsh

	UBT: Ignore all default libraries when creating import libs. Sometimes #pragma comment(lib, ...) directives can add force additional libraries onto the linker/librarian command line. We don't want or need these included when generating import libraries, but they can cause errors due to search paths not being able to find them.

Change 3352289 on 2017/03/17 by Ben.Marsh

	Fix issues working with > 2GB archives caused by truncation of the return value from FArchive::Tell() down to 32-bits.

Change 3352390 on 2017/03/17 by Ben.Marsh

	Remove unused/out of date binaries for CrashReporter.

Change 3352392 on 2017/03/17 by Ben.Marsh

	Remove UnrealDocTool binaries. This is distributed through a Visual Studio plugin now.

Change 3352410 on 2017/03/17 by Ben.Marsh

	Remove P4ChangeReporter. I don't believe this is used any more.

Change 3352450 on 2017/03/17 by Ben.Marsh

	Disable including CrashReporter by default when packaging projects. This is only useful with a CrashReporter backend set up, which only usually applies to Epic internal projects.

Change 3352455 on 2017/03/17 by Ben.Marsh

	Remove RegisterPII and TranslatedWordsCountEstimator executables. Don't believe these are used any more.

Change 3352940 on 2017/03/17 by Wes.Hunt

	Update CRP to not send Slack queue size updates unless the waiting time is greater  than 1 minute.
	#codereview: jin.zhang

Change 3353658 on 2017/03/20 by Steve.Robb

	Fix for crash when importing a BP which has a populated TMap with an enum class key.

Change 3354056 on 2017/03/20 by Steve.Robb

	TAssetPtr<T> can now be constructed from a nullptr without a full definition of T.

Change 3356111 on 2017/03/21 by Graeme.Thornton

	Fix for UE-34131
	 - Support double and fname stat types in UFE stat export to CSV

	#jira UE-34131

Change 3358584 on 2017/03/22 by Daniel.Lamb

	Fixed the garbage collection keep flags when cleaning the sandbox for iterative cooking.

	#test Cook shootergame

Change 3360379 on 2017/03/23 by Gil.Gribb

	UE4 - Avoid adding a linker annotation if it actually hasn't changed. Improves ConditionalBeginDestroy performance.

Change 3360623 on 2017/03/23 by Gil.Gribb

	UE4 - Change from MarcA to avoid a redudnant removal of PrimitiveComponent from the streaming managers during ConditionalBeginDestroy.

Change 3360627 on 2017/03/23 by Gil.Gribb

	UE4 - Optimized UObject hash tables for speed and space.

Change 3361183 on 2017/03/23 by Gil.Gribb

	UE4 - Fixed change to NotifyPrimitiveDetached so that it works in the editor.

Change 3361906 on 2017/03/23 by Steve.Robb

	Fix for a bad hint index when instantiating map property subobjects when the defaults has fewer but non-zero elements.

	#jira UE-43272

Change 3362839 on 2017/03/24 by Gil.Gribb

	UE4 - Fixed hash table lock optimization.

Change 3367348 on 2017/03/28 by Robert.Manuszewski

	Making sure streamed-in SoundWaves get added to GC clusters.

Change 3367386 on 2017/03/28 by Ben.Marsh

	EC: Pass the Semaphores property from a build type as a parameter to new build jobs.

Change 3367422 on 2017/03/28 by Ben.Marsh

	EC: Allow limiting the number of scheduled jobs that will be automatically run at a particular time. Each build type can have a 'Semaphores' property in the branch settings file, which will be copied to newly created jobs. Before scheduling new jobs, EC is queried for the 'Semaphores' property on any running jobs, and build types with existing semaphores will be skipped. Does not prevent jobs from being run manually.

Change 3367469 on 2017/03/28 by Ben.Marsh

	EC: Prevent multiple incremental jobs running at once.

Change 3367640 on 2017/03/28 by Ben.Marsh

	Plugins: Add an optional EngineVersion field back into the plugin descriptor. If set, the engine will warn if the plugin is not compatible with the current engine version. Plugins will set this field by default when packaging; pass -Unversioned to override.

Change 3367836 on 2017/03/28 by Uriel.Doyon

	Improved handled of references in the streaming manager

Change 3369354 on 2017/03/29 by Graeme.Thornton

	Added AES encrypt/decrypt functions that take a byte array for the key

Change 3369804 on 2017/03/29 by Ben.Marsh

	Remove incorrect "EngineVersion" settings from plugin descriptors.

Change 3370462 on 2017/03/29 by Ben.Marsh

	Editor: Install Visual Studio 2017 by default, instead of Visual Studio 2015. Changed to use ExecElevatedProcess() to prevent installer failing to run if the current user is not already an administrator.

	#jira UE-43467

Change 3371598 on 2017/03/30 by Ben.Marsh

	UBT: Fix message for missing toolchain in VS2017.

Change 3372827 on 2017/03/30 by Ben.Marsh

	BuildGraph: Output an error at the end of each step if any previous build products have been modified.

Change 3372947 on 2017/03/30 by Ben.Marsh

	[Merge] Always add the host editor platform as supported in an installed build. Not doing so prevents the build platform being registered in UBT, which prevents doing any platform-specific staging operations in UAT.

Change 3372958 on 2017/03/30 by Ben.Marsh

	[Merge] Simplify log output for cooks. Suppress additional timestamps from the editor when running through UAT.

Change 3372981 on 2017/03/30 by Ben.Marsh

	[Merge] Modular game fixes for UAT

	* Store list of executable names from the receipts instead of generating them from Target/Platform/Config/Architecture combination
	* Get full list of staged executables from receipts instead of assuming only non-code projects are in Engine
	* Always pass short project name as Bootstrap argument, so that modular game exe knows which project to start

Change 3373024 on 2017/03/30 by Ben.Marsh

	[Merge] Add an option to UAT (-CookOutputDir=...) and the cooker (-OutputDir=...) which allows overriding the output directory for cooked files, and fix situations where the directory becomes too deep.

Change 3373041 on 2017/03/30 by Ben.Marsh

	[Merge] Added UAT script to replace assets with another source
	Renamed ReplaceAssetsCommandlet to GenerateAssetsManifest as it now outputs a list of files and has nothing specific about replacing files

Change 3373052 on 2017/03/30 by Ben.Marsh

	[Merge] Changed CopyUsingDistillFileSet command so that it can use a pre-existing manifest file instead of running commandlet

Change 3373092 on 2017/03/30 by Ben.Marsh

	[Merge] Fixed crash attempting to load cooked static mesh in editor

Change 3373112 on 2017/03/30 by Ben.Marsh

	[Merge] Fixed crash caused by loading cooked StaticMesh in editor that didn't have any SourceModels

Change 3373132 on 2017/03/30 by Ben.Marsh

	[Merge] Added Additional Maps that are always cooked to the GenerateDistillFileSetsCommandlet

Change 3373138 on 2017/03/30 by Ben.Marsh

	[Merge] Fixed code issue with playback of cooked SoundCues
	Skip over code using editor only data when editor data has been stripped

Change 3373143 on 2017/03/30 by Ben.Marsh

	[Merge] Fixed crash when attempting to open multiple cooked assets

Change 3373156 on 2017/03/30 by Ben.Marsh

	[Merge] Added commandlet to replace game assets with those from another source (intended for cooked asset replacement)

Change 3373161 on 2017/03/30 by Ben.Marsh

	[Merge] Prevented crash by not attempting to Load Mips again if a package has cooked data

Change 3373168 on 2017/03/30 by Ben.Marsh

	[Merge] Fix output path for DLC pak file, so it can be discovered by the engine and automatically mounted (and to stop it colliding with the main game pak file).

Change 3373204 on 2017/03/30 by Ben.Marsh

	[Merge] Fix crash when switching levels in PIE, due to bulk data already having been discarded for cooked assets. Cooking sets BULKDATA_SingleUse for textures, but PIEing needs to keep bulk data around.

Change 3373209 on 2017/03/30 by Ben.Marsh

	[Merge] Fix missing material in mod editor for cooked assets.

Change 3373388 on 2017/03/30 by Ben.Marsh

	[Merge] Various improvements to the plugin browser and new plugin wizard from Robo Recall.

Change 3374200 on 2017/03/31 by Ben.Marsh

	[Merge] Latest OdinEditor plugin from //Odin/Main, to fix build failures. Re-made change to OdinUnrealEdEngine to remove dependencies on analytics.

Change 3374279 on 2017/03/31 by Ben.Marsh

	PR #3441: Invalid JSON in FeaturePacks (Contributed by projectgheist)

Change 3374331 on 2017/03/31 by Ben.Marsh

	UBT: Disable warning pragmas on Mono; not supported on current compiler.

	#jira UE-43451

Change 3375108 on 2017/03/31 by Ben.Marsh

	Removing another plugin EngineVersion property.

Change 3375126 on 2017/03/31 by Ben.Marsh

	Fix incorrect executable paths being generated for Windows.

Change 3375159 on 2017/03/31 by Graeme.Thornton

	Pak Index Encryption
	 - Added "-encryptindex" option to unrealpak which will encrypt the pak index, making the pak file unreadable without the associated decryption key
	 - Added "-encryptpakindex" option to UAT to force on index encryption
	 - Added "bEncryptPakIndex" setting to project packaging settings so pak encryption can be controlled via the editor

Change 3375197 on 2017/03/31 by Graeme.Thornton

	Enable pak index encryption in shootergame

Change 3375377 on 2017/03/31 by Ben.Marsh

	Add build node to submit updated UnrealPak binaries for Win64, Mac and Linux. Currently has to be run via a custom build on EC, with the target set to "Submit UnrealPak Binaries".

Change 3376418 on 2017/04/03 by Ben.Marsh

	BuildGraph: Always clear the cached node state when running locally without having to manually specify the -ClearHistory argument. The -Resume argument allows the previous behavior of continuing a previous build.

Change 3376447 on 2017/04/03 by Ben.Marsh

	Build: Remove some unused stream settings

Change 3376469 on 2017/04/03 by Ben.Marsh

	Build: Add a customizable field for the script to use for custom builds in every branch.

Change 3376654 on 2017/04/03 by Ben.Marsh

	Add a fatal error message containing the module with an outstanding reference when trying to unload it.

	#jira UE-42423

Change 3376747 on 2017/04/03 by Gil.Gribb

	UE4 - Fixed crash relating to FGenericAsyncReadFileHandle when not using the EDL.

Change 3377173 on 2017/04/03 by Ben.Marsh

	Make sure callstacks are written to stdout following a crash on a background thread.

Change 3377183 on 2017/04/03 by Ben.Marsh

	Removing support for building VS2013 targets. Ability to generate VS2013 project files is still allowed, but unsupported (via the -2013unsupported command line argument).

Change 3377280 on 2017/04/03 by Ben.Marsh

	Build: Post UGS badges for all UE4 development streams, with the project set to $(Branch)/...

Change 3377311 on 2017/04/03 by Ben.Marsh

	Build: Set the 'Semaphores' parameter for any jobs started from a schedule.

Change 3377326 on 2017/04/03 by Ben.Marsh

	UGS: Show badges which match an entire subtree if the project field ends with "...".

Change 3377392 on 2017/04/03 by Ben.Marsh

	Add badges to UE4/Main and UE4/Release streams, and change the names of the builds in development streams to distinguish them.

Change 3377895 on 2017/04/03 by Ben.Marsh

	EC: Send notification emails whenever UAT fails to compile.

Change 3377923 on 2017/04/03 by Ben.Marsh

	Build: Use a different semaphore for the common editors build target to the incremental compile build target.

Change 3378297 on 2017/04/04 by Graeme.Thornton

	Fix incorrect generation of UE_ENGINE_DIRECTORY in UBT

Change 3378301 on 2017/04/04 by Ben.Marsh

	UBT: Try enabling bAdaptiveUnityDisablesPCH by default, to reduce the number of build failures we see due to missing includes.

Change 3378460 on 2017/04/04 by Graeme.Thornton

	Remove dependency preloading system from sync and async loading paths

Change 3378535 on 2017/04/04 by Robert.Manuszewski

	Fix for audio crash when launching Ocean PIE after removing the audio chunk allocation in CL #3347324

	#jira UE-43544

Change 3378575 on 2017/04/04 by Robert.Manuszewski

	Making sure actor clusters are not created in non-cooked builds

	#jira UE-43617
	#jira UE-43614

Change 3378589 on 2017/04/04 by Robert.Manuszewski

	Disabling debug GC cluster logging

	#jira UE-43617

Change 3379118 on 2017/04/04 by Robert.Manuszewski

	Disabling actor clustering by default, keeping it on in Orion and Ocean

Change 3379815 on 2017/04/04 by Ben.Marsh

	Revert change to derive executable names from target receipts. While a better solution than making them up, Android relies on having the base executable names for supporting multiple architectures.

Change 3380811 on 2017/04/05 by Gil.Gribb

	UE4 - Put the special boot order things into baseengine.ini so that licensees and games can add to it.

Change 3383313 on 2017/04/06 by Uriel.Doyon

	Integrated CL 3372436 3372765 3373272 from Dev-Rendering
	#JIRA UE-43669

Change 3383531 on 2017/04/06 by Ben.Marsh

	UGS: Ignore failures when querying whether paths exist. Permissions can cause this folder to fail, even if it will succeed at a parent directory.

Change 3383786 on 2017/04/06 by Ben.Zeigler

	Back out changelist 3382694 and replace with CL #3383757 from bob.tellez:
	Fix memory stomping issue caused by removing a FFortProfileSynchronizeRequest from SynchronizeRequests in UFortRegisteredPlayerInfo::UpdateSynchronizeRequest before SynchronizeProfile had finished executing

Change 3385089 on 2017/04/07 by Gil.Gribb

	UE4 - Critical. Fixed memory leak in pak precacher.

[CL 3386123 by Ben Marsh in Main branch]
2017-04-10 11:00:33 -04:00
Ben Marsh
7c77078af1 Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3345728)
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3315219 on 2017/02/21 by Steve.Robb

	Fix for FObjectAndNameAsStringProxyArchive when serializing a TWeakObjectPtr.

Change 3315285 on 2017/02/21 by Steve.Robb

	Explicitly pass string builder into code generation functions.

Change 3315341 on 2017/02/21 by Ben.Marsh

	UAT: Clean up some formatting in StreamCopyDescription output - remove #fyi lines, exclude merge commits, and remove some blank lines.

Change 3315350 on 2017/02/21 by Ben.Marsh

	Fix shared resource files not being rebuilt if the version header changes.

Change 3315823 on 2017/02/21 by Ben.Marsh

	UAT: Use a class derived from AutomationException to return information specific to commandlets failing, rather than putting it in the base class.

Change 3315826 on 2017/02/21 by Ben.Marsh

	UAT: Move Distiller class from general use in UAT; FileFilter provides a much safer and fully featured implementation of the same concepts.

Change 3315857 on 2017/02/21 by Ben.Marsh

	UBT: Remove the StripBaseDirectory() and MakeRerootedFilePath() utility functions from UBT. These operations can now be done more safely with FileReference objects.

Change 3315942 on 2017/02/21 by Ben.Marsh

	UBT: Convert FileFilter to use FileReference and DirectoryReference arguments everywhere.

Change 3316236 on 2017/02/22 by Maciej.Mroz

	#jira UE-42045

	Nativization
	Fixed Warning: TEnumAsByte is not intended for use with enum

Change 3316253 on 2017/02/22 by Robert.Manuszewski

	Fixes for the async log file writer hangs and crashes.

	- potential fix for the logging system hang when running out of disk space while flushing log
	- fix for unexpected concurrency assert when flushing the log buffer to disk

Change 3316293 on 2017/02/22 by Steve.Robb

	GetTypeHash and lexicographical comparison operators (operator<() etc.) for TTuple.

Change 3316342 on 2017/02/22 by Maciej.Mroz

	Nativization: Wrappers (stubs) required only by other wrappers are properly generated.

	#codereview: Mike.Beach

Change 3316344 on 2017/02/22 by Maciej.Mroz

	Fixed crash in nativized Odin
	Async loading properly handles nativized structs.

Change 3316359 on 2017/02/22 by Steve.Robb

	GitHub #3287 : Ignore #pragma in USTRUCTs

	#jira UE-42248

Change 3316389 on 2017/02/22 by Matthew.Griffin

	Switched Installed Engine Filters to multiline properties to make them more readable
	Added Oodle to list of excluded plugins
	#jira UE-42030

Change 3316392 on 2017/02/22 by Ben.Marsh

	UBT: Split out FileReference/DirectoryReference classes into their own file.

Change 3316394 on 2017/02/22 by Ben.Marsh

	UBT: Move FileReference/DirectoryReference extension methods into the appropriate file.

Change 3316411 on 2017/02/22 by Ben.Marsh

	UAT: Remove file functions that take multiple arguments. There's not really a compelling use case for these to exist over looping from the calling code.

Change 3316446 on 2017/02/22 by Ben.Marsh

	UAT: Try disabling function name prefix to log output from UAT, to see if it improves readability. Function names are still included in the log file for debugging.

Change 3316575 on 2017/02/22 by Ben.Marsh

	UAT: Remove unused functionality for dealing with labels, and output a more human readable list of P4 settings at startup.

Change 3318481 on 2017/02/22 by Steve.Robb

	Use of FMath::IsPowerOfTwo in check.
	Static assert to ensure that an inline set allocator will have a hash size of a power of two.

Change 3318496 on 2017/02/22 by Steve.Robb

	Fix for TSet visualizers.

Change 3318919 on 2017/02/23 by Steve.Robb

	Fix for hot reloading UScriptStruct-derived objects in a module, where the CDOs of these objects haven't had PrepareCppStructOps() called on them.

	#jira UE-42178

Change 3318942 on 2017/02/23 by Steve.Robb

	Removal of a redundant insertion which can cause problems on reallocation of the map.

Change 3319010 on 2017/02/23 by Ben.Marsh

	UBT: Fix exception when a file that was previously part of the working set is deleted.

Change 3319134 on 2017/02/23 by Robert.Manuszewski

	Better fix for a deadlock when flushing log while it's already being flushed due to flush timer on the async log writer thread.

Change 3319249 on 2017/02/23 by Matthew.Griffin

	Added a function to check if running with debug game libs instead of checking command line in multiple places
	Added -RunConfig parameter, which has equivalent result to -debug if value of parameter starts with 'debug'
	Added -RunConfig=$(Configuration) as a default commandline argument for Mac so that editor can use debug game libs
	Removed -Shipping argument from VCProject generation as it's not used anymore

Change 3319253 on 2017/02/23 by Maciej.Mroz

	#jira UE-41846

	New mechanism to gather modules necessary for Nativized Assets. The modules are listed based on included headers. Previously the dependencies was gathered only in FBlueprintNativeCodeGenManifest::GatherModuleDependencies.

Change 3319591 on 2017/02/23 by Ben.Marsh

	Don't strip prefixes beginning with WARNING: or ERROR: using the Postp filter.

Change 3320357 on 2017/02/23 by Steven.Hutton

	Slight changes to Add Crash method - Returning select fields instead of entity objects in queries for perf reasons.

Change 3320361 on 2017/02/23 by Steven.Hutton

	Performance improvements subsequent to the recent database changes.

Change 3320446 on 2017/02/23 by Steven.Hutton

	adding my temporary performance tracker class - reports to a private slack channel with add crash performance data.

Change 3320479 on 2017/02/23 by Ben.Marsh

	Fix CIS errors.

Change 3320576 on 2017/02/23 by Jin.Zhang

	Update CrashReporter to use AWS

Change 3320742 on 2017/02/23 by Jin.Zhang

	Merging crash caching

Change 3321119 on 2017/02/24 by Robert.Manuszewski

	DLL injection protection support for non-monolithic builds

Change 3323308 on 2017/02/27 by Matthew.Griffin

	Moved compilation of SwarmInterface after its dependencies so that we will see a build failure immediately if they change version in future

Change 3323423 on 2017/02/27 by Chad.Garyet

	Adding a script to check and warn about csproj targeted .net versions being mismatched

	#JIRA UE-39624

Change 3323442 on 2017/02/27 by Ben.Marsh

	UBT: Output an error if an engine module references a game module.

Change 3323743 on 2017/02/27 by Ben.Marsh

	PR #3303: Resolved PVS scan issues (Contributed by projectgheist)

Change 3323748 on 2017/02/27 by Ben.Marsh

	Convert whitespace to tabs.

Change 3324851 on 2017/02/28 by Chris.Wood

	Add Odin symbol locations to engine config for MDD on CR server.

	NotForLicensees

Change 3324979 on 2017/02/28 by Gil.Gribb

	Fixed bad merge of priority change in the EDL.

Change 3326889 on 2017/03/01 by Steven.Hutton

	Update to buggs controller to generate faster queries.

Change 3326910 on 2017/03/01 by Robert.Manuszewski

	Removing legacy #if from PackageFileSummary.

Change 3327118 on 2017/03/01 by Gil.Gribb

	UE4 - Fixed race that resulted in a memory leak when reading compressed paks.

Change 3327633 on 2017/03/01 by Gil.Gribb

	UE4 - Added a cvar to control the pak precacher thottle.

Change 3327674 on 2017/03/01 by Steve.Robb

	Unified boilerplate between all generated code files.

Change 3328544 on 2017/03/01 by Chris.Wood

	CrashReportProcess.config update (CRP v1.2.17)

	Tweaks to a few values.
	Update website URL to explicitly point to old, non-cloud site on devweb-02.

Change 3328714 on 2017/03/01 by Chris.Wood

	Correct CRP config regression. Point website at new cloud site. Still v1.2.17

Change 3329192 on 2017/03/02 by Matthew.Griffin

	Added Shared Build Id file to the list of Precompiled Build Dependencies in a target receipt so that it's brought into an installed build

Change 3329285 on 2017/03/02 by Ben.Marsh

	UGS: Allow a project to specify a filters for the streams that should be displayed for fast-switching to. The QuickSelectStreamList seting in the [Options] section of the project settings references a depot path containing a list of strings used to filter the stream list. An option is shown to switch back to showing all available streams, if desired.

Change 3330636 on 2017/03/02 by Ben.Marsh

	UBT: Bump version number of C++ include cache to force it to be rebuilt with additional include information for the default RC files.

Change 3331262 on 2017/03/03 by Robert.Manuszewski

	Merging Dev-LoadTimes to Dev-Core (Garbage Collection performance improvements)

	- Improved GC multithreading
	- Improved BeginDestroy performance
	- Introduced ULevelActorCluster for StaticMeshActor and ReflectionCapture actor clustering (can be toggled through project settings or console command gc.ActorClusterEnabled)
	- A few improvements to AddReferencedObjects functions
	- Misc improvements to GC code
	- Garbage Collector now properly handles clusters which had their objects marked as pending kill
	- Blueprints can now create clusters too (can be toggled through project settings or console command gc.BlueprintClusteringEnabled, defaults to disabled)

Change 3331285 on 2017/03/03 by Robert.Manuszewski

	A few fixes for the previous check-in.

Change 3332001 on 2017/03/03 by Ben.Marsh

	UBT: Add support for generating a UDN file containing the valid settings for BuildConfiguration.xml. Pass -configdoc=<filename> on the command line to generate such a file.

Change 3332022 on 2017/03/03 by Ben.Marsh

	Update documentation for where to find the BuildConfiguration settings.

Change 3332031 on 2017/03/03 by Ben.Marsh

	Remove documentation for Windows XP support; it has been removed in the 4.16 release.

Change 3332256 on 2017/03/03 by Ben.Marsh

	UBT: Add support for generating a UDN page containing module and target settings.

Change 3332458 on 2017/03/03 by Ben.Marsh

	UBT: Improvements to generated documentation.

Change 3332459 on 2017/03/03 by Ben.Marsh

	Add generated documentation for .target.cs files, .build.cs files, and BuildConfiguration.xml files.

Change 3332460 on 2017/03/03 by Ben.Marsh

	UBT: Make LinkTypePrivate actually private, so it doesn't show up in the docs.

Change 3332899 on 2017/03/06 by Robert.Manuszewski

	Making sure actor clustering is not used in the editor (fix for actors being deleted when GC runs in the editor)

	#jira UE-42548

Change 3332955 on 2017/03/06 by Maciej.Mroz

	Nativization distinguishes client and server platform:
	- Separated lists on additional assets, additional modules, excluded assets, excluded modules, excluded paths (in config)
	- Context (compilation options, nativization options and platform) is deliveren to BPCOmpilerCppBackend in FCompilerNativizationOptions struct.
	- Wrappers (for unconverted BPs) are created only when they are directly called.

	- Fortnite dedicated server can be nativized

Change 3332990 on 2017/03/06 by Ben.Marsh

	UBT: Add more comprehensive wrapper methods for System.IO.File and System.IO.Directory to FileReference and DirectoryReference.

Change 3333032 on 2017/03/06 by Ben.Marsh

	Documentation for build tools

Change 3333037 on 2017/03/06 by Ben.Marsh

	Add a build step to extract UAT and UBT documentation from XML comments.

Change 3333089 on 2017/03/06 by Ben.Marsh

	UAT: Re-enable logging the calling function to the console in UAT. Needs a pass for readability first.

Change 3333651 on 2017/03/06 by Gil.Gribb

	UE4 - Fix a werid recursive situation where StaticLoadObject could return an object that has not finished loading. Also produces a fatal error if this sometimes happens. EDL only.

Change 3335236 on 2017/03/07 by Ben.Marsh

	UGS: Set the sync changelist separately to the compatibility changelist.

Change 3335261 on 2017/03/07 by Gil.Gribb

	UE4 - Fixed batched render fences when BeginDestroy calls FlushRenderingCommands.

Change 3335740 on 2017/03/07 by Gil.Gribb

	maybe fix static analysis warning

Change 3335945 on 2017/03/07 by Steve.Robb

	Move FFindInstancedReferenceSubobjectHelper code out of header.
	Add map/set property support to allow instanced members of these container types to be handled during CPFUO.

	https://udn.unrealengine.com/questions/349232/tmap-with-instanced-object-as-value-gets-cleared-o.html

Change 3336693 on 2017/03/07 by Ben.Marsh

	UBT: Use shared PCHs for game plugins by default, to reduce time spent generating individual PCHs.

Change 3336694 on 2017/03/07 by Steve.Robb

	Static assert added to TMap to prevent the use of keys which don't implement a GetTypeHash.
	Fixes to types which relied on implicit conversions when calling GetTypeHash.
	Workaround in SAssetView.h and PropertyEditorModule.h for an apparent VC bug where the compiler wrongly instantiates TPointerIsConvertibleFromTo for certain forward-declared types, causing future TSharedPtr conversions to fail.

	#jira UE-42441

Change 3336698 on 2017/03/07 by Steve.Robb

	Hardcoded endpoint handling replaced with a generic string.
	Obsolete .proto and .java code generation removed.

Change 3336811 on 2017/03/07 by Wes.Hunt

	Add a game blacklist to the crash report processor. Fixed a syntax error in Config.cs, added a XML comment to shut up a warning.

Change 3336973 on 2017/03/08 by Steve.Robb

	Fix for missing GetTypeHash in a plugin.

Change 3336996 on 2017/03/08 by Steve.Robb

	Significant refactor of code generation, to try and make data flow more apparent.

Change 3337571 on 2017/03/08 by Steve.Robb

	CIS fixes for missing GetTypeHash functions.
	Non-unity fix.

Change 3337588 on 2017/03/08 by Gil.Gribb

	UE4 - Fixed obscure check with flushing rhi resources.

Change 3337620 on 2017/03/08 by Steve.Robb

	WITH_HOT_RELOAD_CTORS macros removed.
	UseVTableConstructors config option removed.

Change 3339369 on 2017/03/09 by Steve.Robb

	GetTypeHash overload for nn::account::Uid.

Change 3339464 on 2017/03/09 by Daniel.Lamb

	Fixed assert in 4.15 to do with trying to gather dependency info from invalid packages.
	#jira UE-42583
	#test Editor + Cook + Run shootergame

Change 3339465 on 2017/03/09 by Maciej.Mroz

	Fixed serialization issue, after UserDefinedEnum was used in EnumProperty.

Change 3339469 on 2017/03/09 by Maciej.Mroz

	Fixed Nativization problem, when default value is passed as non-const reference.

Change 3340178 on 2017/03/09 by Daniel.Lamb

	Added support for in memory only packages.  The Cooker ignores these and added core functions to recognize these packages.
	Other systems will need to add support where nessisary.

Change 3341002 on 2017/03/10 by Maciej.Mroz

	Nativization: Fixed FFindHeadersToInclude. Headers necessary for owners of subobjects are properly included.

Change 3341076 on 2017/03/10 by Steve.Robb

	Fix for FBakedTextureSourceInfo move semantics.

	#jira UE-42658

Change 3341160 on 2017/03/10 by Gil.Gribb

	UE4 - Fix hazard with SetMaterialUsage from a thread.

Change 3341409 on 2017/03/10 by Steve.Robb

	Reduction of the generated code size for StaticRegisterNatives functions.

Change 3341523 on 2017/03/10 by Steve.Robb

	Code generation simplified.

Change 3341800 on 2017/03/10 by Ben.Marsh

	UnrealVS: Fix UnrealVS compatibility with RTM version of Visual Studio 2017. 2017 toolchain for extensions is no longer able to build <= 2015 extensions due to validation of the VSIX manifest, so create a separate solution for it.

Change 3342034 on 2017/03/10 by Ben.Marsh

	Fix compiler setting not being loaded correctly into the Windows target settings dialog.

	#jira UE-42746

Change 3342041 on 2017/03/10 by Ben.Marsh

	Fix -ErrorOnEngineContentUse not being set in the cooker options correctly.

Change 3342094 on 2017/03/10 by Steve.Robb

	Fix to deteministic name order during code generation.

Change 3342251 on 2017/03/10 by Daniel.Lamb

	Integrate fix for resave lightmaps commandlet when upgrading from no mapbuilddatapackages to mapbuilddatapackages.
	#thanks Tim.Hagberg

	#test None

Change 3342961 on 2017/03/13 by Robert.Manuszewski

	Fixing memory leak when playing while running -nullrhi on the commandline in cooked games caused by shader resources not being destroyed.

	#jira FORT-38977

Change 3343022 on 2017/03/13 by Steve.Robb

	GetTypeHash fixes for FUniqueNetIdLive.

	#jira UE-42788

Change 3343448 on 2017/03/13 by Steve.Robb

	Compiled-in defer object order fixed.
	Debuggability of the deferred registration map improved.

	#jira UE-42828

[CL 3345747 by Ben Marsh in Main branch]
2017-03-14 15:48:33 -04:00
Ben Marsh
111ec7adc5 Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870)
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3284872 on 2017/02/03 by Graeme.Thornton

	Seperate pak cache granularity from pak signing chunk size

Change 3285765 on 2017/02/03 by Graeme.Thornton

	Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread

	#jira UE-41478

Change 3286913 on 2017/02/04 by Ben.Marsh

	IncludeTool: Merging fixes.

	* Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead.
	* Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation.

Change 3287100 on 2017/02/05 by Ben.Marsh

	UBT: Move platform settings into platform-specific TargetRules objects.

Change 3287106 on 2017/02/05 by Ben.Marsh

	Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information.

Change 3287398 on 2017/02/06 by Steve.Robb

	Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together.

Change 3287399 on 2017/02/06 by Steve.Robb

	Log verbosities made more readable in the debugger.

Change 3287410 on 2017/02/06 by Steve.Robb

	Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all.

	#fyi marc.audy

Change 3288020 on 2017/02/06 by Ben.Marsh

	Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly.

Change 3291817 on 2017/02/08 by Steve.Robb

	New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools.

Change 3292090 on 2017/02/08 by Graeme.Thornton

	Crash fix - don't update font engine services if it was never created

	#jira UE-33953

Change 3292993 on 2017/02/08 by Ben.Marsh

	Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH)

Change 3293231 on 2017/02/08 by Ben.Marsh

	BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed.

Change 3294213 on 2017/02/09 by Ben.Marsh

	EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty.

Change 3294753 on 2017/02/09 by Ben.Zeigler

	#jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated

Change 3296070 on 2017/02/09 by Ben.Zeigler

	Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction.

Change 3296420 on 2017/02/10 by Graeme.Thornton

	Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed
	Refactored encryption and signing key access in unrealpak to make it easier to use

Change 3296609 on 2017/02/10 by Ben.Marsh

	BuildGraph: Fix error running the <Copy> task with an empty "From" argument.

	* FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator)
	* FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory.

Change 3297440 on 2017/02/10 by Ben.Marsh

	UBT: Move the FileFilter class into UnrealBuildTool.

Change 3297725 on 2017/02/10 by Ben.Zeigler

	#jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both.
	Clean up a lot of confusingly named and broken functions on UEnum:
	#jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings
	#jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment
	Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup
	Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name
	While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions
	Delete some now redundant enum editor code and pipe everything through UEnum

Change 3297979 on 2017/02/10 by Ben.Zeigler

	Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior

Change 3298299 on 2017/02/10 by Steve.Robb

	TTuple improvements:
	- equality comparable
	- serializable
	- in the correct folder

	2-tuples are specialized to be syntactically compatible with both TPair and TTuple.
	TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer.

	#fyi robert.manuszewski,ben.marsh

Change 3298460 on 2017/02/11 by Ben.Marsh

	UGS: Set the correct result from running custom tasks.

Change 3298462 on 2017/02/11 by Ben.Marsh

	UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated.

Change 3299447 on 2017/02/13 by Graeme.Thornton

	Fix AES and pak signing key embedding for content only projects
	 - Force temp target when any keys are specified by project config

Change 3299649 on 2017/02/13 by Steve.Robb

	PLATFORM_HAS_DEFAULTED_OPERATORS fixed.
	Other obsolete compiler switches removed.

Change 3299787 on 2017/02/13 by Steve.Robb

	IsAbstract() for testing if a reflected native type contains pure virtual functions.  Needed for BP nativization.

	#fyi robert.manuszewski

Change 3300576 on 2017/02/13 by Ben.Marsh

	EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter.

Change 3300600 on 2017/02/13 by Ben.Marsh

	EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces.

Change 3300624 on 2017/02/13 by Ben.Marsh

	Switch incremental builds for all streams to start up on the incremental agent.

Change 3302134 on 2017/02/14 by Steve.Robb

	UnrealCodeAnalyzer removed.

	#fyi ben.marsh,robert.manuszewski

Change 3302639 on 2017/02/14 by Ben.Zeigler

	Fix crash cooking odin with default command line
	#jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified

Change 3303002 on 2017/02/14 by Ben.Zeigler

	#jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level
	#jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports
	Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects
	Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker
	Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway
	Fix it so -cooksinglepackage works properly again and excludes localization and startup packages
	Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate

Change 3303084 on 2017/02/14 by Ben.Zeigler

	Attempt to get Nativization and EDL working without warnings

	Change 3305153 on 2017/02/15 by Ben.Zeigler

	Fix Fortnite and Orion cook, I don't understand why this passed my local testing
	Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning

Change 3305959 on 2017/02/16 by Gil.Gribb

	UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms.

Change 3306159 on 2017/02/16 by Ben.Marsh

	Fix path to target binaries when building non-monolithic in a unique build environment.

Change 3306584 on 2017/02/16 by Steve.Robb

	UEnum internal functions renamed from Index to Value.
	GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values.

	#fyi ben.zeigler

Change 3307836 on 2017/02/16 by Ben.Zeigler

	#jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually
	Fixes lighting in Infiltrator demo

Change 3307929 on 2017/02/16 by Ben.Zeigler

	#jira UE-42055 Second half of matinee redirector fix

Change 3308840 on 2017/02/17 by Matthew.Griffin

	Reimplementing CL#3305808 from 4.15

		Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases)

Change 3309115 on 2017/02/17 by Ben.Marsh

	Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on,  before many of the game settings have been initialized, so just return the directory containing the Core module instead.

Change 3309120 on 2017/02/17 by Ben.Marsh

	Fix support for creating modular builds which don't use the shared build environment.

Change 3309125 on 2017/02/17 by Ben.Marsh

	Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator.

Change 3309128 on 2017/02/17 by Ben.Marsh

	Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces.

Change 3309131 on 2017/02/17 by Ben.Marsh

	Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again.

Change 3309140 on 2017/02/17 by Ben.Marsh

	UAT: Fix exception moving a file from one location to another if the target directory does not exist.

Change 3309212 on 2017/02/17 by Ben.Marsh

	Fixes/improvements for mod editor and code mods:

	* A separate top-level project is generated for each code mod in the Visual Studio solution.
	* Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods.
	* Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds.
	* Plugin browser now includes a separate category for mods.
	* Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings.

Change 3309231 on 2017/02/17 by Steve.Robb

	Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<.

	#jira UE-42052

Change 3309248 on 2017/02/17 by Ben.Marsh

	Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true.

Change 3309257 on 2017/02/17 by Ben.Marsh

	Prevent game binaries from being renamed for hot reload when working with installed projects.

Change 3309355 on 2017/02/17 by Steven.Hutton

	Changes to make the website compatible with the new database changes.

Change 3309371 on 2017/02/17 by Ben.Marsh

	Fix exception on shutdown when running asset registry with threads disabled.

	#jira UE-41951

Change 3309389 on 2017/02/17 by Ben.Zeigler

	#jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node

Change 3309570 on 2017/02/17 by Gil.Gribb

	UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4.

Change 3310039 on 2017/02/17 by Ben.Marsh

	BuildGraph: Prevent exception when trying to delete a file that does not exist.

Change 3311484 on 2017/02/20 by Chris.Wood

	CrashReportProcess crash add retry logic improvements (CRP v1.2.16)

Change 3311600 on 2017/02/20 by Matthew.Griffin

	Updated StripSymbols functions so that all platforms can deal with the source and target file being the same

Change 3311675 on 2017/02/20 by Steve.Robb

	FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack.

Change 3311893 on 2017/02/20 by Ben.Marsh

	UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines.

Change 3313966 on 2017/02/21 by Ben.Marsh

	Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too.

Change 3314398 on 2017/02/21 by Ben.Zeigler

	#jira UE-42212 Fix shutdown of AnimGraph module to be safer

[CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
Ben Marsh
3de35115ca Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3283640)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3229011 on 2016/12/09 by Steve.Robb

	Licensee version updated in FWorldTileInfo::Read().

	https://udn.unrealengine.com/questions/325874/fworldtileinfo-not-passing-fileversionlicenseeue4.html

Change 3230493 on 2016/12/12 by Robert.Manuszewski

	Adding a check against assembling the reference token stream while streaming without locking GC.

Change 3230515 on 2016/12/12 by Steve.Robb

	GetStaticEnum and GetStaticStruct removed.
	Various generated code tidy-ups.

Change 3230522 on 2016/12/12 by Steve.Robb

	UHT no longer complains about bases with different prefixes.
	References to obsolete DependsOn removed.

Change 3230528 on 2016/12/12 by Steve.Robb

	ReferenceChainSearch tidyups.

Change 3234235 on 2016/12/14 by Robert.Manuszewski

	PR #2695: fix comments (Contributed by wyhily2010)

Change 3234237 on 2016/12/14 by Robert.Manuszewski

	PR #2614: [GenericPlatformFile] New Function, GetTimeStampLocal, returns file time stamp in local time instead of UTC   Rama (Contributed by EverNewJoy)

Change 3236214 on 2016/12/15 by Robert.Manuszewski

	PR# 1988 : Allow absolute path in -UserDir=<Path> argument (contributed by bozaro)

Change 3236582 on 2016/12/15 by Robert.Manuszewski

	Allow commandline use in shipping builds

	#jira UE-24613

Change 3236591 on 2016/12/15 by Robert.Manuszewski

	Removed unnecessary console variable logspam

	#jira UE-24614

Change 3236737 on 2016/12/15 by Steve.Robb

	Fixes to non-contiguous enums in OSS.

Change 3239686 on 2016/12/19 by Chris.Wood

	Fixed CompressionHelper method UE4CompressFileGZIP() that leaked a file handle when a compression error occurred (CRP v1.2.12)
	[UE-39910] - CrashReportProcess leaks file handles and doesn't cleanup folders after compression fails during output to S3

Change 3240687 on 2016/12/20 by Chris.Wood

	Improved CrashReportProcess retry logic to avoid stuck threads when CRW fails to add crashes (CRP 1.2.13)
	[UE-39941] - Improve CrashReportProcess retry logic when CR website returns failed response to AddCrash Request

Change 3246347 on 2017/01/04 by Steve.Robb

	Readability, debuggability and standards improvements.

Change 3249122 on 2017/01/06 by Steve.Robb

	Generic FPaths::Combine, allowing a mix of string argument types and unlimited arity.

Change 3249580 on 2017/01/06 by Steve.Robb

	Fix for TArray::HeapSort when array contains pointers.

	See: https://answers.unrealengine.com/questions/545533/bug-heapsort-with-tarray-of-pointers-fails-to-comp.html

Change 3250593 on 2017/01/09 by Robert.Manuszewski

	PR #3046: UE-39578: Added none to invalid filenames (Contributed by projectgheist)

Change 3250596 on 2017/01/09 by Robert.Manuszewski

	PR #3094: Fixing typo in comments for LODColoration in BaseEngine.ini - UE-40196 (Contributed by sanjay-nambiar)

Change 3250599 on 2017/01/09 by Robert.Manuszewski

	PR #3096: Fixed Log message in ExclusiveLoadPackageTimeTracker : UE-37583 (Contributed by sanjay-nambiar)

Change 3250863 on 2017/01/09 by Steve.Robb

	Build configuration option to force the use of the Debug version of UnrealHeaderTool.

Change 3250994 on 2017/01/09 by Ben.Zeigler

	Remove bad or redundant ini redirects. These did not work with the old system but were silently ignored, my new system throws warnings about them

Change 3251000 on 2017/01/09 by Ben.Zeigler

	#jira UE-39599 Add FCoreRedirects which replaces and unifies the redirect systems in LinkerLoad, K2Node, Enum, and TaggedProperty. This fixes various bugs and makes things uniform.
	It will parse the previous ini files, or load out of a [CoreRedirects] section in any loaded ini file
	The old redirect system can be re-enabled by setting USE_CORE_REDIRECTS to 0 in CoreRedirects.h. This will be removed eventually
	Some refactors to pass in information needed by the new system that the old system didn't need
	Add LoadTimeVerbose stats for processing redirects and enable that group during -LoadTimeFile

Change 3253580 on 2017/01/11 by Graeme.Thornton

	Added some validation of the class index in exportmap entries

	#jira UE-37873

Change 3253777 on 2017/01/11 by Graeme.Thornton

	Increase SerialSize and SerialOffset in FObjectExport to 64bits, to handle super large files

	#jira UE-39946

Change 3257750 on 2017/01/13 by Ben.Zeigler

	Fix issue where incorrectly set up animation node redirects (were ActiveClassRedirects, should have been ActiveStructRedirects) didn't work in the new redirect system because it validated more.
	Added backward compatibilty code and fixed some conflicts in the ini.

Change 3261176 on 2017/01/17 by Ben.Zeigler

	#jira UE-40746 Fix redundant ini redirect
	#jira UE-40725 Fix section of Match3 defaultengine.ini that appears to have been accidentally duplicated from baseengine.ini several years ago

Change 3261915 on 2017/01/18 by Steve.Robb

	Fixes to localized printf formats.

Change 3262142 on 2017/01/18 by Ben.Zeigler

	Remove runtime code for old ActiveClassRedirects and related systems.
	It was already disabled and the old ini format is still parsed and converted to FCoreRedirects at runtime so there should be no functionality change.
	Merged the deprecated tagged property and enum redirect ini parsing into LinkerLoad, and remove the RemapImports step entirely as it's part of FixupImportMap.

Change 3263596 on 2017/01/19 by Gil.Gribb

	UE4 - Fixed many bugs with the event driven loader and allowed it to work at boot time.

Change 3263597 on 2017/01/19 by Gil.Gribb

	UE4 - Allowed UnrealPak to do a better job with EDL pak files when the order provided is old or from the cooker. Several minor tweaks to low level async IO stuff in support of switch experiments.

Change 3263922 on 2017/01/19 by Gil.Gribb

	UE4 - Fixed a bug with nativized blueprints that was introduced with the boot time EDL changes.

Change 3264131 on 2017/01/19 by Robert.Manuszewski

	Simple app to test hard to repro bugs

Change 3264849 on 2017/01/19 by Ben.Zeigler

	Change FParse::Value to treat ) like , for parsing to handle config parsing struct format. This fixes cases where lines end with bool or FName variables that aren't written out quoted:
	+ClassRedirects=(OldName="LandscapeProxy",NewName="LandscapeStreamingProxy",InstanceOnly=True)

Change 3265232 on 2017/01/19 by Ben.Zeigler

	#jira UE-39599 Finish class redirect refactor by cleaning up BaseEngine.ini
	Move plugin-specific redirects to new plugin ini files
	Move all redirects from BaseEngine.ini prior to 4.11 to native registration in FCoreRedirects. Needed to split up functions to avoid long compile times
	Move all redirects after 4.11 to new ini format
	Some related blueprint fixup code changes, these weren't cooperating well with some ini redirects

Change 3265490 on 2017/01/20 by Steve.Robb

	Prevent engine reinstancing on hot reload.

	#jira UE-40765

Change 3265593 on 2017/01/20 by Gil.Gribb

	UE4 - Stored a copy of the callback in async read request so that we don't need to worry about lifetime so we can capture variables as needed. Also fixed race in audio streaming.

Change 3266003 on 2017/01/20 by Gil.Gribb

	UE4 - Fixed bug which would cause a fatal error when cooking subobjects that were pending kill.

Change 3267433 on 2017/01/22 by Gil.Gribb

	UE4 - Fixed a bug with EDL at boot time which caused a fatal error with unfired imports.

Change 3267677 on 2017/01/23 by Steve.Robb

	Fix for whitespace before UCLASS() causing compile errors.

	#jira UE-24110

Change 3267685 on 2017/01/23 by Steve.Robb

	First pass of fixes to printf-style calls to only use TCHAR[] specifiers.

Change 3267746 on 2017/01/23 by Steven.Hutton

	Resolve offline work

	Changes to repositories to support better handling of db connections.

Change 3267865 on 2017/01/23 by Steve.Robb

	Clarification of TArray::FindLastByPredicate() and FString::FindLastCharByPredicate().

	#fyi nick.darnell

Change 3268075 on 2017/01/23 by Gil.Gribb

	UE4 - Fixed another bug with RF_PendingKill subobjects and the new loader.

Change 3268447 on 2017/01/23 by Gil.Gribb

	Fortnite - Removed calls to ::StaticClass() before main starts; this is not allowed.

Change 3269491 on 2017/01/24 by Gil.Gribb

	UE4 - Cancelling async loading with the EDL loader now prints a warning and does a flush instead.

Change 3269492 on 2017/01/24 by Gil.Gribb

	UE4 - Suppressed a few EDL cook wanrings.

Change 3270085 on 2017/01/24 by Gil.Gribb

	UE4 - Remove pak highwater spam.

Change 3270089 on 2017/01/24 by Gil.Gribb

	UE4 - fix random bug with memory counting and some vertex buffer

Change 3271246 on 2017/01/25 by Chris.Wood

	Fixed CrashReportProcess pipeline for Mac and Linux crashes lacking machine Ids (CRP v1.2.14)
	[UE-40605] - Machine ID is not being shown on the crashreporter website

Change 3271827 on 2017/01/25 by Steve.Robb

	C4946 warning disabled in third party headers (triggers in Clang/LLVM).

Change 3271874 on 2017/01/25 by Steve.Robb

	Fix for missing error check after header preparsing.

Change 3271911 on 2017/01/25 by Steve.Robb

	ObjectMacros.h now automatically included by generated headers.

	#fyi jamie.dale

Change 3273125 on 2017/01/26 by Steve.Robb

	Check to ensure that a .generated.h header is included by headers which have exported types, to avoid crazy compiler errors.

	#fyi james.golding

Change 3273209 on 2017/01/26 by Steve.Robb

	UnrealCodeAnalyzer compilation fixes.

Change 3274917 on 2017/01/27 by Steve.Robb

	GC disabled when recompiling child BPs, as is already the case for the parent (CL# 2731120).
	Now-unused field removed.

Change 3279091 on 2017/01/31 by Ben.Marsh

	UBT: Remove code paths which assume relative paths based on a particular CWD. Use the absolute paths stored in UnrealBuildTool.RootDirectory/UnrealBuildTool.EngineDirectory instead.

Change 3279195 on 2017/01/31 by Gil.Gribb

	Turned EDL on for orion

Change 3279493 on 2017/01/31 by Ben.Zeigler

	#jira UE-41341 Redo redirector fixups that got undone in merge from Main

Change 3280284 on 2017/01/31 by Ben.Zeigler

	#jira UE-41357 Fix typo in vehicle redirect. Also fix base crash when converting old content with nodes that don't exist.
	Fix issues with loading plugin ini files. They weren't properly "diffing" against the base/default source file so my redirect typo fix didn't propagate.
	Some general config system refactors on Josh's advice, and make base.ini optional if reading out of a non-standard engine directory
	Engine plugin ini are now BasePlugin.ini, game plugins are still DefaultPlugin.ini.
	Fix crash when loading old content pointing to nonexistent node type. It will still error/ensure but won't crash.

Change 3280299 on 2017/01/31 by Gil.Gribb

	possibly fix edl at boot with orion server....though was no-repro

Change 3280386 on 2017/01/31 by Ben.Zeigler

	Header include fixes for -nopch, fixes incremental build

Change 3280557 on 2017/01/31 by Ben.Zeigler

	Fix Config crash. FConfigFile's copy constructor is apparently not safe and resulted in garbage memory in some cases

Change 3280817 on 2017/02/01 by Steve.Robb

	Unused SmartCastProperty removed.

Change 3280897 on 2017/02/01 by Chris.Wood

	Improved CRP shutdown code to abort AddCrash requests when cancel is requested (CRP v1.2.15)
	[UE-41338] - Fix CRP shutdown when website isn't accepting new crashes

	Also, improved shutdown code to try to avoid occassional exception when writing out the report index. Looks like it isn't shutting down worker threads cleanly sometimes. Added more logging to this too.

Change 3280989 on 2017/02/01 by Gil.Gribb

	New unrealpak binaries

Change 3281416 on 2017/02/01 by Michael.Trepka

	Updated UnrealPak binaries for Mac

Change 3282457 on 2017/02/01 by Ben.Zeigler

	#jira UE-41425 Protect against issues with streamable manager requests recursively completing by caching the array locally.
	This code is safer in general in my local version so just doing a quick fix for now

Change 3282619 on 2017/02/01 by Arciel.Rekman

	Linux: update UnrealPak.

[CL 3283649 by Ben Marsh in Main branch]
2017-02-02 14:41:50 -05:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Ben Zeigler
24a8d60723 Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3208226)
#lockdown Nick.Penwarden
#rb None

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3173153 on 2016/10/25 by Graeme.Thornton

	Pak signing changes
	 - Integrated into EDL loader
	 - Changed to not encrypt each CRC in the sig file, rather just store a single encryped signature of the entire sig file. Removes need to decrypt thousands of signatures at startup.

Change 3173531 on 2016/10/25 by Steven.Hutton

	Removing unused j query packages.

Change 3174743 on 2016/10/26 by Gil.Gribb

	UE4 - fixed COTF with EDL

Change 3177896 on 2016/10/28 by Steve.Robb

	TSharedPtr and TSharedRef aliasing constructors.
	Removal of static_asserts for TSharedPtr<UObject>.

Change 3180343 on 2016/10/31 by Steve.Robb

	Reimplementation of changes from CL#s 3050329 and 3105715 that were lost in merges 3094597 and 3105741.

Change 3181382 on 2016/11/01 by Steve.Robb

	Visual Studio debugger visualizers for delegates.

Change 3182738 on 2016/11/02 by Graeme.Thornton

	Re-enable signed archive reader so non-pakpreacher based reads still get signature checked

Change 3183420 on 2016/11/02 by Steve.Robb

	Fix to TIsZeroConstructType for TScriptDelegate.

Change 3184872 on 2016/11/03 by Robert.Manuszewski

	Fixing memory stomps in SSL certificate initialization (found with mallocstomp)

Change 3184873 on 2016/11/03 by Robert.Manuszewski

	Adding thread safety checks to async loading code

Change 3185535 on 2016/11/03 by Ben.Zeigler

	Fix it so calling CreateDefaultSubobject with bTransient = true sets the object transient flag. This fixes EDL Crashes involving components.

Change 3186636 on 2016/11/04 by Graeme.Thornton

	AES encryption integrated into EDL system
	Pak signing and AES encryption now configurable by ini files rather than magical text files

Change 3186637 on 2016/11/04 by Graeme.Thornton

	Configured pak signing and encryption in ShooterGame for reference

Change 3186639 on 2016/11/04 by Graeme.Thornton

	Encryption changes for Orion
	* Move pak signing keys into new INI format
	* Add AES key and enable INI file encryption

Change 3186661 on 2016/11/04 by Graeme.Thornton

	Change unrealpak command line params to accept AES key as a separete parameter

Change 3186670 on 2016/11/04 by Robert.Manuszewski

	Adding a null check before using a package pointer in Linker code

	#jira UE-38237

Change 3186775 on 2016/11/04 by Graeme.Thornton

	Fix UBT defines that come in as quoted strings, losing the quotes when passed to the compiler
	 - PS4 and Mac fixes. Other platforms might need fixing too!

Change 3186823 on 2016/11/04 by Graeme.Thornton

	Fixed an incorrect size check in the EDL pak signing code

Change 3186925 on 2016/11/04 by Graeme.Thornton

	Allow UnrealPak to read encryption settings from project ini files

Change 3189885 on 2016/11/08 by Graeme.Thornton

	Static analysis warning fix

Change 3190015 on 2016/11/08 by Robert.Manuszewski

	Thread safety fix for UBlueprintGeneratedClass::PostLoadDefaultObject while UBlueprintGeneratedClass::SerializeDefaultObject runs on the async loading thread

Change 3190253 on 2016/11/08 by Chris.Wood

	Improved MDD performance for on the CR server.
	[UE-37566] - Improve MDD performance on CR server

	Blocked MDD init'ing the crash handling code as it isn't desirable on the server.
	Removed redundant call to SetSymbolPathsFromModules() from CrashDebugHelper.

Change 3192993 on 2016/11/10 by Robert.Manuszewski

	Thread Heartbeat will no longer report the same hang multiple times.

Change 3193111 on 2016/11/10 by Robert.Manuszewski

	Minor change in the condition that detects the same hangs - allow the same callstacks from different threads

Change 3193168 on 2016/11/10 by Steve.Robb

	TSparseArray now reserves space in reverse so that new elements get added to the front of the allocation rather than the back, which is better for memory traversal and meets expectations more closely.

Change 3193171 on 2016/11/10 by Steve.Robb

	Easier debugging of FPendingRegistrantInfo map.

Change 3193188 on 2016/11/10 by Steve.Robb

	TAutoPointer deprecated.

Change 3193796 on 2016/11/10 by Graeme.Thornton

	Fix pak creation failure when no pak signing keys are supplied

Change 3194524 on 2016/11/11 by Graeme.Thornton

	Another static analysis warning fix

Change 3195119 on 2016/11/11 by Steve.Robb

	TAutoPtr deprecated.
	Fixes to use of TAutoPtr with incompatible memory deallocations (TAutoPtr with FMemory::Malloc and new[]).
	Some large headers moved into .cpp files.

Change 3196582 on 2016/11/14 by Gil.Gribb

	UE4 - Changed a check to a warning related to detaching linekrs twice. Seen in nativized BP version of platformer game.

Change 3196878 on 2016/11/14 by Steve.Robb

	TScopedPointer deprecated.

Change 3198061 on 2016/11/15 by Steve.Robb

	Class array is no longer regenerated when saving UClasses.

Change 3198065 on 2016/11/15 by Robert.Manuszewski

	Making AssembleReferenceTokenStream thread safe for blueprints loaded on the async loading thread.

Change 3198199 on 2016/11/15 by Robert.Manuszewski

	Pak platform file will now only be used if pak files exist regardless of command line paraks like -pak, -singedpak and -signed.

Change 3199954 on 2016/11/16 by Graeme.Thornton

	Removing USING_SIGNED_CONTENT

Change 3200221 on 2016/11/16 by Chris.Wood

	CrashReportProcess code cleanup - removing unused using directives

Change 3200232 on 2016/11/16 by Chris.Wood

	Multiple CrashReportProcess updates and improvements (CRP v1.2.6)
	UE-36248 - CRP scalability: All bulk storage or shared data to S3 or suitable network drives

	InvalidCrashReports now saved to S3 instead of local folder
	Removed option tosync MinidumpDiagnostics from Perforce
	Moved MinidumpDiagnostics from old Perforce synched location to its own folder in E:\Services (makes more sense with manual publishing)
	Added improved logging to Slack with option to monitor MDD performance
	Added hourly log folders to MDD logs
	Added support for types of crashes we don't want to symbolicate (using it to skip callstack gen for hang detected ensures)

Change 3200382 on 2016/11/16 by Robert.Manuszewski

	Async Loading code will now detach the linker when resetting async package loader to avoid situations when loading the same asset multiple times results in the following load request finding the old linker after the package has been loading but the async package hasn't been deleted yet (async package for the old request in limbo state but linker exists).

Change 3200562 on 2016/11/16 by Gil.Gribb

	UE4 - Fixed rare issue with reloading nativized blueprints with the EDL and a minor simplication.

Change 3201093 on 2016/11/16 by Ben.Zeigler

	#UE 38654 Fix EDL cooking to correctly search components created directly by UBlueprints, as well as the CDO components it already covered. Also explicitly mark subobject templates as editor only.
	Fix issue where the AssetImportData associated with Blueprint-owned Curves was ending up in the cooked subobject template list. Stopped it from creating those objects, and mark the class editor only.

Change 3201736 on 2016/11/17 by Steve.Robb

	Strtoi64 platform and TCString functions.

	#fyi robert.manuszewski

Change 3201938 on 2016/11/17 by Ben.Woodhouse

	Dummy integrate of the Square render version workaround (CL 3201913) with _accept target_ to prevent it being integrated to dev-core in future.

	Commandline:
	p4 integrate //Tasks/UE4/Dev-LoadTimes/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp@3201913,3201913 //UE4/Dev-Core/Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerLoad.cpp

	#fyi robert.manuszewski

Change 3203757 on 2016/11/18 by Robert.Manuszewski

	Removing debug code from async loading code.

Change 3203927 on 2016/11/18 by Robert.Manuszewski

	Fixing comments in the async loading code.

Change 3204851 on 2016/11/18 by Steve.Robb

	Metafunction for testing if a particular operator<< overload exists, e.g. THasInserterOperator<FArchive&, FMyType&>::Value.

Change 3204854 on 2016/11/18 by Steve.Robb

	UEnumProperty.

Change 3205027 on 2016/11/18 by Ben.Zeigler

	Add useful functions to FAssetPtr and TAssetSubclassOf that already existed on TAssetPtr
	Add Get() to TSubclassOf so it matches our other wrappers
	Fix TSubclassOf and TAssetSubclassOf to use the more efficient template method of checking class compatibility
	Comment and template cleanups for AssetPtr, StringAssetReference, LazyPtr, and SubclassOf

Change 3206334 on 2016/11/21 by Ben.Zeigler

	#UE-38773: Fix it so non-component template subobjects of CDOs are not included as creation dependencies for BP classes, also clean up GetPreloadDependencies as it was adding redundant and null entries
	#UE-38799: Fix it so WidgetTrees don't get picked up as subobjects, and add ensure at cook time to find null outers that would crash at runtime. Make sure the instanced widget trees are transient.
	Cook finishes but game is still crashing in some cases, so I might adjust this after other testing

Change 3206353 on 2016/11/21 by Ben.Zeigler

	Fix EnumProperty to handle EDL preload dependencies properly

Change 3206625 on 2016/11/21 by Ben.Zeigler

	Fix enum property crash at runtime by copying what array property does and making sure inner property is not transient

Change 3206937 on 2016/11/21 by Ben.Zeigler

	#jira UE-38905 Fix it so enums inside arrays are migrated properly, the enum tag is lost so use the current one
	Disable other nested enum migrations as they are unlikely to work. Array property tags need to be refactored to be safer
	Correctly save enum tag for enum properties, it was being set but not serialized

Change 3207002 on 2016/11/21 by Ben.Zeigler

	#jira UE-38799
	Fix it so per-widget copy of widget tree and all widgets inside are properly transient, they were being cooked before but never accessed.
	Fix case where non ClientOnly public objects nested instead ClientOnly objects would cook but fail to load, and add ensure to catch these cases in the future.
	If the full outer chain isn't available, it can't be loaded anyway, and this finds issues at cook time instead of load time.
	We should generally outlaw non-transient objects with transient outers, it does not do what people expect.

Change 3207032 on 2016/11/21 by Ben.Zeigler

	#jira UE-38654 Re-Fix EDL cooking with SCS-added components. They used to have the DefaultSubObject flag but no longer do

[CL 3208270 by Ben Zeigler in Main branch]
2016-11-22 18:45:44 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00