Commit Graph

66 Commits

Author SHA1 Message Date
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
5275490168 Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940)
#lockdown Nick.Penwarden
#rb none

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

Change 3233612 on 2016/12/13 by Ben.Marsh

	UGS: Fix cases where precompiled binaries are submitted for a content change.

Change 3235584 on 2016/12/14 by Ben.Marsh

	UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead.

Change 3235741 on 2016/12/14 by Ben.Marsh

	UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself.

Change 3238176 on 2016/12/16 by Ben.Marsh

	UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs.

Change 3238249 on 2016/12/16 by Ben.Marsh

	UBT: Add attribute-driven command line parser.

Change 3238462 on 2016/12/16 by Ben.Marsh

	UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly.

Change 3238564 on 2016/12/16 by Ben.Marsh

	UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor.

Change 3239919 on 2016/12/19 by Ben.Marsh

	UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined.

Change 3240061 on 2016/12/19 by Ben.Marsh

	UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more.

Change 3240175 on 2016/12/19 by Ben.Marsh

	UBT: Add the target name and project file location to the target rules.

Change 3240490 on 2016/12/19 by Ben.Marsh

	UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs.

Change 3240717 on 2016/12/20 by Ben.Marsh

	UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line.

Change 3240718 on 2016/12/20 by Ben.Marsh

	UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT.

Change 3241002 on 2016/12/20 by Ben.Marsh

	UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance.

Change 3241027 on 2016/12/20 by Ben.Marsh

	Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency.

Change 3241055 on 2016/12/20 by Ben.Marsh

	UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated.

Change 3241156 on 2016/12/20 by Ben.Marsh

	Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using.

Change 3241205 on 2016/12/20 by Ben.Marsh

	Replace all uses of TargetRules.TargetType with TargetType.

Change 3241881 on 2016/12/21 by Ben.Marsh

	UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path.

Change 3241895 on 2016/12/21 by Ben.Marsh

	UBT: Remove toolchain support for Windows XP.

Change 3241908 on 2016/12/21 by Ben.Marsh

	UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field.

Change 3242835 on 2016/12/22 by Ben.Marsh

	UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice.

Change 3242837 on 2016/12/22 by Ben.Marsh

	Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds.

Change 3242923 on 2016/12/22 by Ben.Marsh

	Build: Fixes for conforming incremental workspaces:

	* P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason.
	* Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces.

Change 3242961 on 2016/12/22 by Ben.Marsh

	UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before.

Change 3242981 on 2016/12/22 by Ben.Marsh

	UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT.

Change 3242999 on 2016/12/22 by Ben.Marsh

	UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes.

Change 3243022 on 2016/12/22 by Ben.Marsh

	UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line.

Change 3243083 on 2016/12/22 by Ben.Marsh

	UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules.

Change 3243090 on 2016/12/22 by Ben.Marsh

	UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work.

Change 3243423 on 2016/12/23 by Ben.Marsh

	UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes.

Change 3243516 on 2016/12/23 by Ben.Marsh

	UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs)

Change 3244020 on 2016/12/28 by Ben.Marsh

	UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties.

Change 3244074 on 2016/12/28 by Ben.Marsh

	UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary.

Change 3244076 on 2016/12/28 by Ben.Marsh

	UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead.

Change 3244083 on 2016/12/28 by Ben.Marsh

	UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes.

Change 3244441 on 2016/12/31 by Ben.Marsh

	UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur.

Change 3244687 on 2017/01/03 by Matthew.Griffin

	Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs

Change 3246112 on 2017/01/04 by Ben.Marsh

	UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build.

Change 3246223 on 2017/01/04 by Ben.Marsh

	UBT: Prevent version manifests being overridden if a file is not being built as part of the target.

Change 3246387 on 2017/01/04 by Ben.Marsh

	UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it.

Change 3247004 on 2017/01/04 by Ben.Marsh

	UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place.

Change 3247250 on 2017/01/04 by Ben.Marsh

	UBT: Prevent precompiled binaries being added to the list of app binaries twice.

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

	Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build.

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

	UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them.

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

	UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance.

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

	EC: Add a batch file for testing postp filters.

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

	EC: Include the name of the file being compiled when parsing MSVC errors and warnings.

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

	UBT: Fix Android support for force included headers.

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

	PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott)

Change 3249205 on 2017/01/06 by Ben.Marsh

	UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present.

Change 3249249 on 2017/01/06 by Ben.Marsh

	UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines.

Change 3249486 on 2017/01/06 by Ben.Marsh

	UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies.

Change 3249736 on 2017/01/06 by Ben.Marsh

	UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object.

Change 3250179 on 2017/01/07 by Ben.Marsh

	Fix creating installed build when root directory contains a space in the name.

Change 3250181 on 2017/01/07 by Ben.Marsh

	UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms.

Change 3250223 on 2017/01/07 by Ben.Marsh

	UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together.

Change 3250233 on 2017/01/07 by Ben.Marsh

	UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out.

Change 3250241 on 2017/01/07 by Ben.Marsh

	UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules.

Change 3250400 on 2017/01/08 by Ben.Marsh

	UBT: Move executor config settings onto the executor instances.

Change 3257708 on 2017/01/13 by Ben.Marsh

	UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change.

Change 3260535 on 2017/01/17 by Ben.Marsh

	Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job.

Change 3260875 on 2017/01/17 by Ben.Marsh

	EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced.

	To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile.

Change 3261724 on 2017/01/18 by Ben.Marsh

	Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job.

Change 3261756 on 2017/01/18 by Ben.Marsh

	IncludeTool: Prevent matching a full enum declaration as a forward declaration.

Change 3261932 on 2017/01/18 by Ben.Marsh

	EC: Add support for specifying days of the week in schedules. The following syntaxes are supported:

	"Monday, Tuesday and Wednesday at 10:30"
	"Daily except Sunday and Wednesday at 14:30"

	 Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name.

	#jira UEB-729

Change 3262676 on 2017/01/18 by Ben.Marsh

	UBT: Split UBTMakefile into its own file. (From PR #3106)

Change 3263893 on 2017/01/19 by Ben.Marsh

	UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc...

Change 3264291 on 2017/01/19 by Ben.Marsh

	UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts.

Change 3264534 on 2017/01/19 by Ben.Marsh

	UBT: Include plugin config files in generated projects.

Change 3264571 on 2017/01/19 by Ben.Marsh

	UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files.

Change 3265745 on 2017/01/20 by Ben.Marsh

	UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance.

Change 3265777 on 2017/01/20 by Ben.Marsh

	UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode.

Change 3268314 on 2017/01/23 by Ben.Marsh

	UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed.

Change 3269601 on 2017/01/24 by Ben.Marsh

	UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled.

Change 3269607 on 2017/01/24 by Ben.Marsh

	UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that.

Change 3269608 on 2017/01/24 by Ben.Marsh

	UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated.

Change 3271062 on 2017/01/24 by Ben.Marsh

	UBT: Fixes for bugs detected by PVS Studio (PR #3161)

Change 3272421 on 2017/01/25 by Ben.Marsh

	Fix commends regarding DDC in BaseEngine.ini

	#jira UE-41076

Change 3272810 on 2017/01/25 by Ben.Marsh

	Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel.

Change 3272935 on 2017/01/25 by Ben.Marsh

	Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS.

Change 3274167 on 2017/01/26 by Ben.Marsh

	Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables.

	#jira UE-36457

Change 3275557 on 2017/01/27 by Ben.Marsh

	Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is.

Change 3275628 on 2017/01/27 by Ben.Marsh

	UBT: Splitting configuration files into one class per-file.

Change 3276784 on 2017/01/29 by Ben.Marsh

	Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it.

Change 3276792 on 2017/01/29 by Ben.Marsh

	UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT.

Change 3277263 on 2017/01/30 by Ben.Marsh

	IncludeTool: Merging various fixes.

	* Fix warnings about #include directives after first code block from parsing monolithic headers.
	* Fix exception on startup if the intermediate directory does not already exist.
	* Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location.
	* Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare.
	* Remove (unused) code which makes assumptions about files ending with "Classes.h".
	* Add a verbose per-file output log to aid with debugging.
	* Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default.
	* Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list.
	* Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant.
	* Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first.
	* Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't.

Change 3277307 on 2017/01/30 by Ben.Marsh

	UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line.

[CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
Ben Marsh
6748a24fb1 Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619)
#lockdown Nick.Penwarden
#rb none

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

Change 3121996 on 2016/09/12 by Ben.Marsh

	Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced).

	* Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result.
	* Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default.
	* Visual Studio source code accessor can talk to VS 2017 instances.
	* Added a VS2017 configuration for UnrealVS, and added precompiled vsix package.
	* Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express).
	* Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes.

	Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed.

Change 3189363 on 2016/11/07 by Ben.Marsh

	Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.

Change 3210598 on 2016/11/27 by Ben.Marsh

	UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to.

Change 3210601 on 2016/11/27 by Ben.Marsh

	PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman)

Change 3210602 on 2016/11/27 by Ben.Marsh

	PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis)

Change 3210605 on 2016/11/27 by Ben.Marsh

	UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries.

Change 3211656 on 2016/11/28 by Ben.Marsh

	UBT: Move ModuleRules and TargetRules into their own file.

Change 3211797 on 2016/11/28 by Ben.Marsh

	UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only.

Change 3211833 on 2016/11/28 by Ben.Marsh

	UBT: Remove overridable configuration name from target rules. This feature is not used anywhere.

Change 3211859 on 2016/11/28 by Ben.Marsh

	UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead.

Change 3211942 on 2016/11/28 by Ben.Marsh

	UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now.

Change 3215333 on 2016/11/30 by Ben.Marsh

	UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method.

Change 3215482 on 2016/11/30 by Ben.Marsh

	UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported.

Change 3215743 on 2016/11/30 by Ben.Marsh

	UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor.

	Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor.

Change 3215778 on 2016/11/30 by Ben.Marsh

	UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete.

Change 3217681 on 2016/12/01 by Ben.Marsh

	UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script.

Change 3217723 on 2016/12/01 by Ben.Marsh

	UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled.

Change 3217930 on 2016/12/01 by Ben.Marsh

	UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections.

Change 3218762 on 2016/12/02 by Ben.Marsh

	Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations.

Change 3219161 on 2016/12/02 by Ben.Marsh

	Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory.

Change 3219197 on 2016/12/02 by Ben.Marsh

	Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere.

Change 3219209 on 2016/12/02 by Ben.Marsh

	Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64.

Change 3219610 on 2016/12/02 by Ben.Marsh

	Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful.

Change 3219731 on 2016/12/02 by Ben.Marsh

	UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules.

Change 3220796 on 2016/12/04 by Ben.Marsh

	Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway.

Change 3220825 on 2016/12/04 by Ben.Marsh

	UBT: Change all executors to derive from a common base class (ActionExecutor).

Change 3220834 on 2016/12/04 by Ben.Marsh

	UBT: Remove the global CommandLineContains() function.

Change 3222706 on 2016/12/05 by Ben.Marsh

	Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017.

Change 3222712 on 2016/12/05 by Ben.Marsh

	Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat

Change 3223628 on 2016/12/06 by Ben.Marsh

	Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe

Change 3223817 on 2016/12/06 by Ben.Marsh

	Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text.

Change 3224046 on 2016/12/06 by Ben.Marsh

	Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded.

Change 3224792 on 2016/12/07 by Ben.Marsh

	UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools.

Change 3225212 on 2016/12/07 by Ben.Marsh

	UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy.

	Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object.

	The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner.

Change 3226310 on 2016/12/07 by Ben.Marsh

	PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic)

Change 3228273 on 2016/12/08 by Ben.Marsh

	Update copyright notices for QAGame.

Change 3229166 on 2016/12/09 by Ben.Marsh

	UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object.

Change 3230601 on 2016/12/12 by Ben.Marsh

	Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed.

Change 3230737 on 2016/12/12 by Ben.Marsh

	UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands.

Change 3230751 on 2016/12/12 by Ben.Marsh

	UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for.

Change 3230804 on 2016/12/12 by Ben.Marsh

	UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary.

Change 3230831 on 2016/12/12 by Ben.Marsh

	UGS: Warn when trying to switch streams if files are checked out.

Change 3231281 on 2016/12/12 by Chad.Garyet

	Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one

Change 3231496 on 2016/12/12 by Ben.Marsh

	Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015.

Change 3231979 on 2016/12/12 by Ben.Marsh

	UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking.

Change 3232619 on 2016/12/13 by Ben.Marsh

	Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main.

[CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -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
7f06f93ff9 Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none

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

Change 3146735 on 2016/09/30 by Ben.Marsh

	EC: Add the standard postprocessor onto conform job steps.

Change 3147190 on 2016/09/30 by Ben.Marsh

	UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.

Change 3148611 on 2016/10/03 by Matthew.Griffin

	Added list of Dependant modules to EULA check
	#jira UE-29432

Change 3149098 on 2016/10/03 by Ben.Marsh

	PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)

Change 3149395 on 2016/10/03 by Ben.Marsh

	UBT: Don't execute pre- and post-build steps when generating project files.

Change 3150398 on 2016/10/04 by Ben.Marsh

	UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.

	#jira UE-18652

Change 3150569 on 2016/10/04 by Ben.Marsh

	UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.

Change 3150606 on 2016/10/04 by Ben.Marsh

	UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.

Change 3150628 on 2016/10/04 by Ben.Marsh

	UBT: Remove .NET framework assembly paths for C++ modules.

Change 3150640 on 2016/10/04 by Ben.Marsh

	UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.

Change 3152101 on 2016/10/05 by Ben.Marsh

	UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.

Change 3153231 on 2016/10/06 by Ben.Marsh

	UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.

Change 3154868 on 2016/10/07 by Richard.Fawcett

	Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties

Change 3155017 on 2016/10/07 by Ben.Marsh

	Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.

Change 3156159 on 2016/10/08 by Ben.Marsh

	UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)

	* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
	* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
	* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
	* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
	* Enabled shared PCHs for Mac, iOS, Linux.

	Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).

Change 3163040 on 2016/10/14 by Ben.Marsh

	UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).

Change 3165028 on 2016/10/17 by Ben.Marsh

	PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)

Change 3165076 on 2016/10/17 by Ben.Marsh

	Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).

Change 3167773 on 2016/10/19 by Ben.Marsh

	BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.

	Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:

	    <!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
	    <Copy Files="..." From="Engine/Build" To="Output0" />

	    <!-- Single file -->
	    <Copy From="Engine/Build/Build.version" To="Output1/Output.version" />

	    <!-- Output treated as directory -->
	    <Copy From="Engine/Build/.../*.txt" To="Output2" />
	    <Copy From="Engine/Build/.../*.txt" To="Output3/" />
	    <Copy From="Engine/Build/....txt" To="Output4" />

	    <!-- With rename -->
	    <Copy From="Engine/Build/....txt" To="Output5/....old" />

	    <!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
	    <Copy From="Engine/Build/*/....txt" To="Output6/" />

	    <!-- Match bat*/.../*.txt -->
	    <Copy From="Engine/Build/bat...txt" To="Output7" />

	    <!-- Copy only PS4 subfolders -->
	    <Copy From="Engine/Build/.../ps4/..." To="Output8" />

Change 3167852 on 2016/10/19 by Ben.Marsh

	BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.

Change 3168034 on 2016/10/19 by Ben.Marsh

	BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.

	Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:

	    <Property Name="Prop1" Value="One;Two;Three;One hundred"/>

	    <Property Name="Prop2">
	        <!-- Some numbers -->
	        One
	        Two
	        Three

	        <!-- Values are delimited by newlines; spaces within a line are preserved -->
	        One hundred
	    </Property>

Change 3169256 on 2016/10/20 by Ben.Marsh

	UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.

	Previously took >10s to run on my machine, now takes < 0.2s.

Change 3169271 on 2016/10/20 by Ben.Marsh

	BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.

Change 3179662 on 2016/10/31 by Matthew.Griffin

	Fixed last remaining issues with building QAGameEditor as a monolithic executable
	Added a node for building mono editor in CIS so that we catch any new issues
	#jira UE-32712

Change 3184857 on 2016/11/03 by Matthew.Griffin

	Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
	#jira UE-35628

Change 3187232 on 2016/11/04 by Ben.Marsh

	UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.

Change 3188413 on 2016/11/07 by Matthew.Griffin

	Added Switch to Installed Build so that it matches pattern for other confidential platforms

Change 3188426 on 2016/11/07 by Matthew.Griffin

	Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
	Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
	#jira UE-36205

Change 3189363 on 2016/11/07 by Ben.Marsh

	Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.

Change 3191372 on 2016/11/09 by Ben.Marsh

	UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.

Change 3191381 on 2016/11/09 by Ben.Marsh

	UGS: Allow Ctrl-A to select all in the log window.

	#jira UE-38378

Change 3193388 on 2016/11/10 by Ben.Marsh

	Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.

Change 3193677 on 2016/11/10 by Ben.Marsh

	UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.

Change 3193942 on 2016/11/10 by Ben.Marsh

	UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.

Change 3198296 on 2016/11/15 by Ben.Marsh

	UBT: Include .modules files in target receipts and manifests.

Change 3200284 on 2016/11/16 by Matthew.Griffin

	Move Sample game projects into a different solution folder like Templates

Change 3205168 on 2016/11/19 by Ben.Marsh

	Update strings to refer to Visual Studio "15" as Visual Studio 2017.

Change 3206333 on 2016/11/21 by Ben.Marsh

	Merge fix to detection of VS2017 RC from 4.14 release.

Change 3206786 on 2016/11/21 by Ben.Marsh

	BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.

Change 3207588 on 2016/11/22 by Ben.Marsh

	UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.

[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
Ben Marsh
28be3c41b4 Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3075869)
#lockdown Nick.Penwarden
#rb none

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

Change 3059740 on 2016/07/21 by Ben.Marsh

	Format license violations on separate lines rather than as a single multi-line string, so they can be parsed out correctly by the EC log parser.

Change 3063115 on 2016/07/25 by Ben.Marsh

	Add missing projects to Mono AutomationTool solution.

Change 3067125 on 2016/07/27 by Ben.Marsh

	Clean up and document the engine versioning system.

	* Version.h has a summary of all the different versioning concepts in UE4, as well as an explanation of what all the macros do.
	* VersionLocked.h has been removed. ENGINE_NET_VERSION and ENGINE_REPLAY_VERSION can be overriden directly in Version.h if necessary.
	* Added explicit macros for ENGINE_CURRENT_CL_VERSION And ENGINE_COMPATIBLE_CL_VERSION. The MODULE_API_VERSION macro is now defined to be the same as ENGINE_COMPATIBLE_CL_VERSION.
	* Build/Build.version now includes the compatible CL version, so it can be determined without having to parse header files inside MacToolChain.cs.
	* UpdateLocalVersion UAT command now exposes a -CompatibleCL=... argument to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version.
	* SetVersion BuildGraph task now has a CompatibleChange="" attribute to update ENGINE_COMPATIBLE_CL_VERSION and the CompatibleChange property in Build.version.
	* VersionFileUpdater now makes an effort to parse tokens matching the macros it's going to overwrite, rather than requiring exact matches in whitespace in Version.h.
	* Running UpdateLocalVersion now syncs files to revision 0 before writing if P4 is enabled, similarly to UGS, or fails if they are not writable.

Change 3067242 on 2016/07/27 by Ben.Marsh

	Fix UGS showing a build failure/warning dialog immediately if you submit while the build is yellow/red. Now ignores builds before your last submitted CL.

Change 3068116 on 2016/07/28 by Ben.Marsh

	Add a small Windows utility to terminate all running processes under a given root directory, and run it before and after every sync. Mean to fix instances where zombie editor processes do not terminate correctly and cause subsequent syncs to fail.

Change 3068246 on 2016/07/28 by Ben.Marsh

	UGS: Improvements to 'Clean Workspace' dialog - empty folders are now set to be deleted by default, and added a context menu to select all/none/empty/default for a subtree, as well as to open Windows explorer at that location.

Change 3068573 on 2016/07/28 by Ben.Marsh

	Attempt to fix AppDomain unload errors; suspect caused by delay to terminate child processes when managed exception is thrown on child threads. Now waits for the currently running threads to finish executing before quitting.

Change 3068575 on 2016/07/28 by Ben.Marsh

	Respect the -noxge command-line argument when compiling UHT.

Change 3068665 on 2016/07/28 by Ben.Marsh

	Delete any DLLs in output folders which share names with build products. The Windows loader reads DLLs from the first location it finds a file with a matching name, so we need to ensure that it doesn't load stale DLLs when output directories are changed (moving a module into a plugin, for example).

Change 3073316 on 2016/08/02 by Ben.Marsh

	CoreUObject: Replace header guards with #pragma once directives.

Change 3073325 on 2016/08/02 by Ben.Marsh

	CoreUObject: Manually untangle a few circular includes around ObjectBase.h and Class.h to allow making them into IWYU-style headers.

Change 3074391 on 2016/08/02 by Ben.Marsh

	GitHub #2646: Always allow programs to build as part of non-game solution configurations.

Change 3075123 on 2016/08/03 by Richard.Fawcett

	Ensure that zip files created outside of Ionic Zip can be unzipped with CommandUtils.UnzipFiles

	Zip files created with 7-zip, WinRAR, and Windows Explorer all contain entities for directories, not just the files in them.  Code in CommandUtils.UnzipFiles made the assumption that all entities in the zip file were files, and an exception was being thrown on encountering a directory.

Change 3075848 on 2016/08/03 by Ben.Marsh

	UBT: Fix a few cases where it's possible to construct a non-canonical DirectoryReference - root directories on Windows must always have a terminating slash, but any other directories must note. DirectoryInfo and Path.GetFullPath() do not enforce this requirement.

Change 3075850 on 2016/08/03 by Ben.Marsh

	UBT: Fix UHT failures when running with -nopch.

Change 3077058 by Ben.Marsh

	UHT: Remove the auto-generated ObjectBase.h include from generated header files. Was originally added to allow doxygen to parse headers more easily, but was switched to parsing the file only as part of parent files instead.

[CL 3077308 by Ben Marsh in Main branch]
2016-08-04 10:41:07 -04:00
Ben Marsh
1ae32843fa Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3058348)
#lockdown Nick.Penwarden
#rb none

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

Change 2982033 on 2016/05/18 by Chad.Garyet

	Checking in progress on the ue4 BuildGraph conversion.
	Builds and Compiles editor and game on all platforms
	Builds DDC on win64 and mac
	Builds Tools on win64

Change 3047983 on 2016/07/13 by Ben.Marsh

	PR #2597: Fix P4 environment used for running BuildUGS commandlet (Contributed by paulevans)

Change 3048267 on 2016/07/13 by Ben.Marsh

	BuildGraph: Allow more permissive list of characters for node names; just restrict against characters which are illegal in filenames. Allows creating aggregate names which match job names (eg. "Editor, Tools & Monolithics").

Change 3048293 on 2016/07/13 by Ben.Marsh

	BuildGraph: Allow passing -listonly without a specific -target=... parameter in BuildGraph, to see the contents of the entire script.

Change 3048454 on 2016/07/13 by Ben.Marsh

	BuildGraph: Disable output of error messages when just printing the contents of the graph.

Change 3048507 on 2016/07/13 by Ben.Marsh

	BuildGraph: Rename "Ticket" to "Token" for files used to ensure exclusive access to run part of a build.

Change 3049459 on 2016/07/14 by Matthew.Griffin

	Updated location of HTML5 SDKs for Installed Builds
	#jira UE-32171

Change 3049675 on 2016/07/14 by Matthew.Griffin

	Ensured that all platforms are registered when running -validateplatform command
	#jira UE-31082

Change 3049922 on 2016/07/14 by Ben.Marsh

	UBT: Fix path to XML config file in boilerplate message.

Change 3051483 on 2016/07/15 by Ben.Marsh

	EC: Remove code to prettify node names, now that we can have pretty node names explicitly.

Change 3051522 on 2016/07/15 by Ben.Marsh

	BuildGraph: Change spawn task to fail if a non-zero exit code is returned by an external program. The minimum exit code to be treated as an error can be set using the "ErrorLevel" attribute, similar to ERRORLEVEL in DOS.

Change 3051770 on 2016/07/15 by Ben.Marsh

	UGS: Add support for narrowing virtual streams; fetch event and precompiled binaries for parent stream instead.

Change 3052990 on 2016/07/17 by Ben.Marsh

	Show the names of people with notifications disabled in the heading of failure emails, so it's clear that they're not on CC.

Change 3053556 on 2016/07/18 by Ben.Marsh

	BuildGraph: Add a explicit <Option> tag instead of the <Property Default=""/> shenanigans, so that properties that are meant to be modified by the user are listed explicitly. Supported attributes are "DefaultValue" (which specifies a default if the user does not set it on the command line), "Description" (which explains the purpose of the option to users, which is displayed in a table when BuildGraph is invoked with the -listonly argument), and "Restrict" (which specifies a regex to validate an argument supplied by the user).

	Also add an <EnvVar Name="Blah"/> tag which imports the given environment variable as a property (or sets it to "" if it doesn't exist), and rename the <Choose>/<Option>/<Otherwise> triple to <Switch>/<Case>/<Default> to avoid confusion with the new <Option> tag.

Change 3053688 on 2016/07/18 by Ben.Marsh

	Update build scripts to link to p4-swarm rather than p4-web in dashboard pages and notification emails.

Change 3054039 on 2016/07/18 by Ben.Marsh

	Fix confusing message when compiler isn't installed if the target forces VS2013

Change 3054360 on 2016/07/18 by Ben.Marsh

	Remove GUBP support from EC scripts.

Change 3054399 on 2016/07/18 by Ben.Marsh

	Remove circular include from Json.h -> JsonSerializerMacros.h -> Json.h

Change 3055671 on 2016/07/19 by Ben.Marsh

	Remove incomplete UWP integration from UE4.

Change 3055943 on 2016/07/19 by Ben.Marsh

	Remove the WinRT target platform.

Change 3056270 on 2016/07/19 by Ben.Marsh

	Core: Move VectorRegister.h include to eliminate include dependency on UnrealMathUtility.h

Change 3056390 on 2016/07/19 by Ben.Marsh

	Core: Directly include headers required by default JsonWriter template instantiation.

Change 3057444 on 2016/07/20 by Ben.Marsh

	UBT: Fall back to checking for the VS140COMNTOOLS environment variable if we couldn't determine the Visual Studio installation directory from the registry. Allows using the standalone Visual Studio build tools to compile UE4.

Change 3058337 on 2016/07/20 by Ben.Marsh

	Remove EnvVarsToXML. All target platforms now determine their compile environment directly from the registry.

Change 3058348 on 2016/07/20 by Ben.Marsh

	Disable optimization for all automation projects. They don't generally do anything particularly CPU intensive, and VS2015 optimizations are inhibitive to debugging.

[CL 3058822 by Ben Marsh in Main branch]
2016-07-20 20:25:02 -04:00
Ben Marsh
5fc947ac7e Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969)
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2986511 on 2016/05/23 by Ben.Marsh

	UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in.

Change 2993274 on 2016/05/27 by Ben.Marsh

	Fix UGS enumerating deleted .target.cs files when trying to detect editor target name.

Change 2994265 on 2016/05/31 by Ben.Marsh

	Add info about setting up CIS integration and zipped editor builds in UGS.

Change 2994275 on 2016/05/31 by Ben.Marsh

	PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans)

Change 2994287 on 2016/05/31 by Ben.Marsh

	UnrealGameSync: Add information about how UGS self-patches and updates.

Change 2996928 on 2016/06/01 by Ben.Marsh

	UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet.

Change 2997619 on 2016/06/02 by Ben.Marsh

	UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file.

Change 2999769 on 2016/06/03 by Ben.Marsh

	UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not.

Change 3004879 on 2016/06/07 by Ben.Marsh

	Remove copy of AWSSDK in NotForLicensees folder.

Change 3004902 on 2016/06/07 by Ben.Marsh

	UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder.

Change 3005892 on 2016/06/08 by Ben.Marsh

	Add the GitHub promotion to the UE4 binary release build.

Change 3016241 on 2016/06/16 by Ben.Marsh

	UGS: Always sync version files at the same changelist as everything else (rather than head revision)

Change 3016446 on 2016/06/16 by Ben.Marsh

	PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist)

Change 3016472 on 2016/06/16 by Ben.Marsh

	PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot)

Change 3017694 on 2016/06/17 by Ben.Marsh

	EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments.

Change 3017695 on 2016/06/17 by Ben.Marsh

	UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders.

	#jira UE-24271

Change 3017698 on 2016/06/17 by Ben.Marsh

	Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types).

	#jira UEB-664

Change 3017701 on 2016/06/17 by Ben.Marsh

	BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node.

	Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read.

	All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency.

Change 3017714 on 2016/06/17 by Ben.Marsh

	BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task).

Change 3018007 on 2016/06/17 by Ben.Marsh

	UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt.

	#jira UE-28761

Change 3018322 on 2016/06/17 by Ben.Marsh

	PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)

Change 3018365 on 2016/06/17 by Ben.Marsh

	Misc: Fixes for warnings compiling ShaderCompileWorker on Clang

Change 3018397 on 2016/06/17 by Ben.Marsh

	UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT

Change 3019421 on 2016/06/20 by Ben.Marsh

	Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead.

Change 3019423 on 2016/06/20 by Ben.Marsh

	PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)

Change 3020377 on 2016/06/20 by Ben.Marsh

	UBT: Fix strings not being escaped before writing to JSON files.

Change 3020378 on 2016/06/20 by Ben.Marsh

	UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list.

Change 3020966 on 2016/06/21 by Ben.Marsh

	EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main.

#rb none
#lockdown Nick.Penwarden

[CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
Andrew Grant
a0ef617fd2 Copying //UE4/Orion-Staging to //UE4/Main (Source: //Orion/Dev-General @ 2949393)
#lockdown Nick.Penwarden

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

Change 2949393 on 2016/04/20 by Graeme.Thornton

	Orion non-pak file security.
	 - Removed security bypass code from platform pak file
	 - Added a delegate to pak file code which allows the game to decide whether a file should be allowed or not
	 - Added an orion delegate which whitelists appropriate files

	#rb robert.manuszewski
	#tests win64 client + dedicated server. golden path.

Change 2949232 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: michael.noland
	Paragon: Added a distinct menu frame rate limit, currently set to 60 fps and not visible in settings (if the user sets a game frame rate limit of below 60, we also clamp the menu limit to that threshold, so they can go down but not up for menus)
	#jira OR-18017
	#rb marcus.wassmer
	#tests Ran paragon and switched between gameplay, menus, and replays, observing t.MaxFPS at different points

	#ROBOMERGE-SOURCE: CL 2949231 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2949032 on 2016/04/19 by Zak.Middleton

	#orion - Lower default NetUpdateFrequency for minions (10->6). Avoid excessive latency for some knockback/knockup abilities that would have noticeable lag by forcing an update sooner when they are triggered.

	This should have the following effects:
	1. Reduce server CPU cost (we tick minions at the net frequency).
	2. Reduce server bandwidth
	3. Reduce client CPU cost (we move character capsules and perform overlaps when new positions are received).

	#rb Bart.Bressler, John.Pollard
	#codereview Dmitry.Rekman
	#tests MultiPIE AI lane, Replays

Change 2948966 on 2016/04/19 by Lina.Halper

	Added log (check) of the asset info for Anim Per Track contains invalid format key

	#rb: Michael.Noland
	#code review: Martin.Wilson, Laurent.Delayen, Michael.Noland
	#tests: editor/ cooked and test with AI_Tests with 10 bots.

Change 2948876 on 2016/04/19 by Michael.Noland

	PS4: Validate that the texture pool size is not set to automatic (-1, which will crash later on as an attempt to allocate too much memory)
	#rb none
	#codereview marcus.wassmer
	#tests Ran Paragon on PS4

Change 2948765 on 2016/04/19 by Daniel.Lamb

	Removed AssetImportData tag from cooked asset registry builds.
	#rb Andrew.Grant
	#test Cook orion

Change 2948691 on 2016/04/19 by Marcus.Wassmer

	Fix copytoresolvetarget ensure
	#rb none
	#test pc agora

Change 2948633 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	[AUTOMERGE]

	Fix copytoresolve crash and change validation to ensure.
	#test PC editor / PC golden path
	#rb none

	--------
	Integrated using branch //Orion/Main_to_//Orion/Release-Next (reversed) of change#2948169 by Marcus.Wassmer on 2016/04/19 10:50:32.

	#ROBOMERGE-SOURCE: CL 2948632 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948507 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: andrew.grant
	Merging 2937781 (Pak signing) using //Orion/Dev-General_to_Release
	#rb none
	#tests cooked client, checked game runs

	#ROBOMERGE-SOURCE: CL 2948497 in //Orion/Release-0.24.1/... via CL 2948506
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948431 on 2016/04/19 by Steve.Robb

	CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE.

	#codereview robert.manuszewski,bob.tellez
	#rb bob.tellez
	#tests Ran editor

Change 2948408 on 2016/04/19 by Leslie.Nivison

	Adding .tps
	#rb none
	#test none

Change 2948185 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: chris.bunner
	Fix for HLOD visibility freeze.
	#tests Golden Path, Editor
	#rb rolando.caloca, michael.noland
	#lockdown andrew.grant
	#jira OR-19863

	#ROBOMERGE-SOURCE: CL 2948182 in //Orion/Release-0.24.1/... via CL 2948183
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2948149 on 2016/04/19 by Simon.Tovey

	Fixed crash. Collision rendering path was not dealing with mesh batch with 0 triangles where other paths do.

	#rb none
	#tests No more crash
	#codereview Marcus.Wassmer

Change 2948129 on 2016/04/19 by Lukasz.Furman

	fixed gameplay debugger getting stuck with outdated data pack on client,
	changed names of AI related debug cvars
	#rb none
	#tests game, PIE
	#codereview Mieszko.Zielinski

Change 2948027 on 2016/04/19 by david.nikdel

	#ROBOMERGE-AUTHOR: graeme.thornton
	Fix for OR-20033 - CRASH:  Client will crash with FRCPassPostProcessCircleDOFSetup

	#rb none
	#tests checked game runs without crashing

	#ROBOMERGE-SOURCE: CL 2948017 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2947558 on 2016/04/18 by Matt.Kuhlenschmidt

	Fix compile error

	#rb none, #tests none

Change 2947509 on 2016/04/18 by Matt.Kuhlenschmidt

	Added more logging to track down

	https://jira.ol.epicgames.net/browse/OR-19841

	#rb none, #tests none

Change 2947412 on 2016/04/18 by Ryan.Gerleve

	Fix shadowed variable.

	#rb none
	#tests none

Change 2947377 on 2016/04/18 by Jamie.Dale

	Gather paths are now sorted by fuzzy-ness, so that more specific includes beat less specific excludes

	#rb Matt.Kuhlenschmidt
	#tests Built for Windows. Ran a gather, and confirmed that explicitly included heroes were now gathered, and that generically excluded heroes were absent from the gather.

Change 2947351 on 2016/04/18 by Ryan.Gerleve

	Allow overriding the demo.AsyncLoadWorld setting with a URL option when playing a replay.
	Store the entire URL in the demo net driver instead of just the map name, so that the options can be accessed later.

	#tests golden path, replays
	#rb john.pollard

Change 2947103 on 2016/04/18 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_MAIN - Merge 24.1 @ CL 2947071

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2947102 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2947007 on 2016/04/18 by Zak.Middleton

	#ue4 - Improve linear smoothing in the presence of low net frequency updates.

	#rb Bart.Bressler
	#tests MultiPIE AI with lanes

Change 2946994 on 2016/04/18 by Mieszko.Zielinski

	Improvements to NavigationSystem's "abstract navigation data" support #UE4

	#rb Lukasz.Furman
	#test golden path

Change 2946760 on 2016/04/18 by Chris.Bunner

	Fixing up bad merge, recommit of CL 2819472 - ForceLOD now clamps to available LODs on primitive, i.e. use MinLOD rather than not drawing at all.
	#tests Editor
	#rb None

Change 2946745 on 2016/04/18 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_MAIN - Merge 24.1 @ CL 2946637

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2946656 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2946645 on 2016/04/18 by Richard.Fawcett

	When promoting a buidl to staged, prevent enumeration of files already in S3

	Enumerating files in S3 is a slow process, and it turns out that simply uploading all chunks blindly is more efficient than enumerating existing chunks and selectively uploading only the new ones.

	#rb Leigh.Swift
	#tests This technique has already been used in launcher promotions for several months

Change 2946622 on 2016/04/18 by Richard.Fawcett

	By default, when enumerating chunks from a manifest file, skip checking they exist on disk at enumeration time.

	This will fail anyway further down the line if the files don't exist, but will improve speed of stage promotions by around five minutes. In practice, we have NEVER seen a job fail at this point because of the existence check.

	#rb Leigh.Swift
	#tests Ensure that output of ExtractDataFilenamesFromManifest method is identical both with and without bSkipExistsCheck specified.

Change 2945812 on 2016/04/15 by Daniel.Lamb

	Fixed error in diff cooked build commandlet.
	#rb ben.marsh
	#test Compile.

Change 2945110 on 2016/04/15 by Matt.Kuhlenschmidt

	Fix crash exporting actors with non-scene components to fbx

	#rb none, #tests full scene exporting on maps that crashed
	#codereview alexis.matte

Change 2945078 on 2016/04/15 by Simon.Tovey

	Fix for OR-19778

	When some pooled systems are reused, on init they have a non zero lod level but the emitter instances are created at LOD 0 initially.
	So the component did not think it had to update it's LOD but the emitters were not at the correct LOD.
	Have forced a LOD set on init when the component LOD is non-zero.

	#rb none
	#tests Works in editor and game.

	#codereview Olaf.Piesche

Change 2944664 on 2016/04/14 by Uriel.Doyon

	Fix to SM4 compilation issue
	#jira OR-19706
	#rb marcus.wassmer
	#tests tested editor in SM4 and SM5

Change 2944642 on 2016/04/14 by Lukasz.Furman

	changed waypoint switch conditions in meta nav paths
	#rb none
	#tests PIE
	#codereview Mieszko.Zielinski

Change 2944599 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: andrew.grant
	Added sha1 to UnrealPak list output
	#rb none
	#tests listed content of pakfile

	#ROBOMERGE-SOURCE: CL 2944595 in //Orion/Release-0.24/... via CL 2944597 via CL 2944598
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2944441 on 2016/04/14 by Marcus.Wassmer

	Duplicate change to output shader compiler errors.
	#rb none
	#test run PC and see errors.

Change 2944437 on 2016/04/14 by John.Pollard

	Possible fix for https://jira.ol.epicgames.net/browse/OR-19614

	#rb JoshM
	#codereview Josh.Markiewicz
	#tests Golden path matchmaking

Change 2944430 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: michael.noland
	Engine: Added support for more/fewer settings in individual categories to the editor scalability control widget
	#rb david.ratti
	#tests Tested in the editor

	#ROBOMERGE-SOURCE: CL 2944428 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2944198 on 2016/04/14 by David.Ratti

	Paragon - register for slow/stun/root/silence callbacks on any tag count  change, not just add/remove. This is so the UI will update if you get another stack of a stackable slow GE.

	Ability system - unify client stack count change code path with server. Client now properly update owner ASC's tag map and broadcasts all delegates there.

	#rb dayY
	#tests pie

Change 2944124 on 2016/04/14 by Wes.Hunt

	Change the TPS redirects for DX modules to point to the proper DX redist TPS which is what packaged games will need.
	#codereview:leslie.nivison
	#rb none
	#tests ran UAT ListThirdPartySoftware <for Orion>

Change 2944107 on 2016/04/14 by Wes.Hunt

	MeshUtilities now depends on new module nvTessLib to better track the third party dependency.
	#codereview:daniel.wright
	#rb none
	#tests build OrionClient/Editor for Win64

Change 2944102 on 2016/04/14 by Wes.Hunt

	Tweak to UBT -ListBuildFolders to do a distinct in a better place to cut down on duplicate module searches.
	#tests ran the UBT command
	#rb none

Change 2943851 on 2016/04/14 by Ryan.Gerleve

	Fix the ForEachNetDriver helper function to get the world context directly off the world instead of going through the game instance. Ensures the correct net drivers will be used when there are multiple worlds but only one game instance.

	#rb john.pollard
	#tests golden path, replays, PIE

Change 2943847 on 2016/04/14 by Ryan.Gerleve

	Fixes to support client replay recording & playback in another world:
	When recording a replay, only swap actor roles if the remote role is ROLE_Authority
	When loading a replay checkpoint, call NetworkRemapPath to make sure paths have the correct name in the GuidCache

	#rb john.pollard
	#tests golden path, replays, PIE

Change 2943691 on 2016/04/14 by david.nikdel

	#ROBOMERGE-AUTHOR: jason.bestimt
	#ORION_24 - Fix for OR-19609, OR-19610, and OR-19611

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2943687 in //Orion/Release-0.24/... via CL 2943688
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

Change 2943508 on 2016/04/14 by Richard.Fawcett

	Automation: Add support for multipart file uploads to Amazon S3 to increase speed of large file uploads.

	#jira OPPBUILD-44
	#rb Leigh.Swift
	#tests Uploaded files to S3 using the new routines, downlaoded via AWS management console and ensured downloaded files identical to uploaded ones

Change 2943274 on 2016/04/13 by jason.bestimt

	#ORION_MAIN - Merge 24 @ CL 2943257

	#RB:none
	#Tests:none

	#ROBOMERGE-SOURCE: CL 2943271 in //Orion/Main/...
	#ROBOMERGE-BOT: ORION (Main -> Dev-General)

	#ROBOMERGE-SAYS: Beep boop! I couldn't merge this change. Please do it yourself, human.
	#CodeReview: david.nikdel, jason.bestimt

Change 2943178 on 2016/04/13 by Olaf.Piesche

	Bumping size of the particle curve texture to 512x512

	#rb martin.mittring

	#tests PC Editor, Game

Change 2943174 on 2016/04/13 by Aaron.McLeran

	OR-19392 Ensure condition failed: (*RequiresInitialization == 0) on loading into PVP match

	- Removing ensure since there is a rare edge case where it's possible for a sound looping node may get ResetChildren called twice.
	- Condition is when a child random node o fa looping node has a blank entry and results in no sound chosen in a given frame (which results in ResetChildren getting called). Later in the frame, if a sound had previously been playing with an active sound, it will have stop called on it, which will call NotifyWaveInstanceFinished and hit the ensure. Simply using the branch to check if the looping node has been initialized will work fine in this and other cases.

	#codereview Bob.Tellez
	#rb Bob.Tellez
	#tests ran orion with this change testing problematic sound cue

Change 2943042 on 2016/04/13 by Rob.Cannaday

	Fix crash in HTTP completion delegates on shutdown
	Stop ticking HTTP retry manager after FOnlineSubsystemImpl::Shutdown has been called
	#rb josh.markiewicz
	#tests shutting down multiple times

Change 2942913 on 2016/04/13 by Lukasz.Furman

	added meta navmesh paths
	#orion
	#rb Mieszko.Zielinski
	#tests PIE

Change 2942132 on 2016/04/13 by Wes.Hunt

	Enable UBT -ListBuildFolders to operate on Mac and iOS platforms without having to fully set up the remote environment.
	#codereview:leslie.nivison
	#rb peter.sauerbrei
	#tests running UBT with and without -listbuildfolders

Change 2941651 on 2016/04/12 by Jason.Bestimt

	#ORION_DG - Merge MAIN @ CL 2941645

	#RB:none
	#Tests:none

Change 2941539 on 2016/04/12 by Laurent.Delayen

	FABRIK: Normalize outgoing rotations.
	Fixes Chains Q ability crashing.

	#rb none
	#tests Chains not crashing

Change 2941469 on 2016/04/12 by Wes.Hunt

	Fix UBT -ListBuildFolders to not prep target for deployment.
	#codereview:leslie.nivison
	#rb none
	#tests tested -ListBuildFolders for Android

Change 2941434 on 2016/04/12 by Leslie.Nivison

	Adding/cleaning up .tps files
	#rb none
	#test none

Change 2941241 on 2016/04/12 by Daniel.Lamb

	Removed shadername from the shader code to fix deterministic material cooking issue.
	#jira UE-29320
	#codereview Marcus.Wassmer
	#rb Marcus.Wassmer
	#test Running editor, cooking orion.

Change 2941046 on 2016/04/12 by Laurent.Delayen

	Added safety net for non state AnimNotifies having a non-zero EndTriggerTimeOffset.
	Fixes Twinblast double shot for the left primary attack.

	#rb benn.gallagher
	#codereview lina.halper, ray.arnett, aaron.eady
	#tests twinblast's LMB

Change 2941032 on 2016/04/12 by Jason.Bestimt

	#ORION_24 - Merge MAIN @ CL 2940950

	#RB:none
	#Tests:none

[CL 2952833 by Andrew Grant in Main branch]
2016-04-22 11:21:10 -04:00
Matthew Griffin
d9f2a9fd85 Copying //UE4/Dev-Build to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2864843 on 2016/02/12 by Ben.Marsh

	Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons.

Change 2865161 on 2016/02/12 by Ben.Marsh

	Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build.

Change 2865643 on 2016/02/12 by Ben.Marsh

	Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution.

Change 2874408 on 2016/02/19 by Ben.Marsh

	Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present.

Change 2879572 on 2016/02/24 by Ben.Marsh

	Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in.

Change 2883216 on 2016/02/26 by Ben.Marsh

	Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields.

Change 2883755 on 2016/02/26 by Ben.Marsh

	Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line.

Change 2886223 on 2016/02/29 by Ben.Marsh

	Ignore SignTool errors - we can recover from them.

Change 2887414 on 2016/03/01 by Ben.Marsh

	Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac.

Change 2888235 on 2016/03/01 by Ben.Marsh

	Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects.

Change 2889602 on 2016/03/02 by Ben.Marsh

	Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries.

Change 2889610 on 2016/03/02 by Ben.Marsh

	Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked.

Change 2891866 on 2016/03/03 by Matthew.Griffin

	Removed Rocket specific batch files and made sure installed build won't try to include them
	Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead

Change 2893349 on 2016/03/03 by Ben.Marsh

	Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub.

Change 2894703 on 2016/03/04 by Ben.Marsh

	Include *.usf when looking for the last code changelist. Also update version to 1.68.

Change 2897991 on 2016/03/07 by Ben.Marsh

	Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69.

Change 2898005 on 2016/03/07 by Ben.Marsh

	Minor changes to support BuildGraph:

	* UE4Build now has a static function that can update version files.
	* Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils.
	* FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...".

Change 2898095 on 2016/03/07 by Ben.Marsh

	UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts.

Change 2898248 on 2016/03/07 by Ben.Marsh

	UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this.

Change 2898615 on 2016/03/08 by Matthew.Griffin

	Removed last uses of RunningRocket function
	All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances.

Change 2898681 on 2016/03/08 by Matthew.Griffin

	Removed Automation.RunningRocket function as there are no more uses
	Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc.

#lockdown Nick.Penwarden

[CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -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
Ben Marsh
0723896cb2 Add telemetry event for the time taken to perform a build, including the number of compile actions, link actions, pch actions, and list of the targets.
#codereview Wes.Hunt

[CL 2704862 by Ben Marsh in Main branch]
2015-09-24 14:32:06 -04:00
Ben Marsh
2802f43c08 Convert everything in UBT to use standard C# XML comments, so IntelliSense can display useful information in tooltips.
[CL 2704759 by Ben Marsh in Main branch]
2015-09-24 13:47:13 -04:00
Ben Marsh
df83418aeb Auto-format UBT for consistent spacing. All default Visual Studio settings, but tabs instead of spaces.
[CL 2704665 by Ben Marsh in Main branch]
2015-09-24 12:37:21 -04:00
Ben Marsh
9610023ca5 Use FileReference and DirectoryReference classes instead of strings for paths. Massively reduces the amount of paranoid calls to GetFullPath(), CleanDirectorySeparators() et al., and improves performance for really common UBT operations like making relative paths or checking if files are under a directory. Strong typing ensures that intention of parameters is explicit.
[CL 2678429 by Ben Marsh in Main branch]
2015-09-03 08:47:24 -04:00
Ben Marsh
3d6c0e0a81 Convert target receipts to JSON, so they can be read early at startup like version manifests, and unify the way that target receipts and version manifests are loaded and saved.
[CL 2669100 by Ben Marsh in Main branch]
2015-08-26 08:25:10 -04:00
Ben Marsh
db93204811 Reduce the amount of boilerplate log output when running UAT.
[CL 2662515 by Ben Marsh in Main branch]
2015-08-20 09:06:43 -04:00
Peter Sauerbrei
17b5b9cea5 add log display type as part of each log message
add -verbose=Level argument to be able to specify the verbosity level of logging, defaults to Log
#codereview ben.marsh, robert.manuszewski, paul.fazio

[CL 2654467 by Peter Sauerbrei in Main branch]
2015-08-13 09:00:22 -04:00
Ben Marsh
3733f73569 When compiling a modular target, write out a manifest of build products to each output directory listing the valid modules in that directory and their version. Allows faster switching of changelists when using UGS (because it's no longer necessary to re-link all modules), and safeguards against stale DLLs from a different target causing loader errors. Uses compiled-in API version if BUILT_FROM_CHANGELIST is non-zero.
[CL 2641800 by Ben Marsh in Main branch]
2015-08-03 08:47:15 -04:00
Peter Sauerbrei
dc1d815f84 refactored the logging system for UAT/UBT to be more like UE4
we now use an enum similar to UE4 with Fatal, Error, Warning, Display, Log, Verbose, and VeryVerbose
Log will only go to the log file unless -verbose is passed on the command line
reduced some of the output from UAT to be Log only

[CL 2631062 by Peter Sauerbrei in Main branch]
2015-07-23 14:51:46 -04:00
Ben Marsh
a5f534451b Remove the ENGINE_VERSION define from Version.h and ObjectVersion.cpp; it's superceded by GEngineVersion. EngineVersion.cpp now defines the constants GEngineVersionChangelist and GCompatibleWithEngineVersionChangelist, which are used to construct GEngineVersion and GCompatibleWithEngineVersion. Modifying those constants allows updating the engine version separately to the defines used for resource files (allowing UGS to update the version number without triggering all files to be relinked).
[CL 2625344 by Ben Marsh in Main branch]
2015-07-18 16:57:53 -04:00
Peter Sauerbrei
06bf1810ae reorganized the new FilteredTraceListener so it can be used by both UBT and UAT
[CL 2590140 by Peter Sauerbrei in Main branch]
2015-06-17 10:57:40 -04:00
Peter Sauerbrei
882f79f039 Changes to reduce log spew in stdout for UAT and GUBP
UEB-156
#uat
#codereview ben.marsh, robert.manuszewski

[CL 2588630 by Peter Sauerbrei in Main branch]
2015-06-16 10:42:46 -04:00
Josh Adams
7ff0070a83 - Basic support for compiling Xcode 7 (iOS9, MacOS 10.11)
- Marked some overrides properly, then gave up and added -Wno-inconsistent-missing-override)
- Improved Xcode selection process for Mac and iOS (no more hardcoding Xcode path - it uses the currently running Xcode, or xcode-select when using commandline)
   - Added AppleToolchain.cs, to start sharing code between Mac and IOS Toolchains (Compile functionality and params to clang could be shared pretty easily)
   -
- Some Utility functions:
   - Added UBT utility to run a commandline and get its output, self-contained (Utils.RunLocalProcessAndReturnStdOut)
   - Added Log.TraceInformationOnce (and Error, Warning, etc) to print out a message only one time, without a bunch of static bools everywhere
#codereview michael.trepka,peter.sauerbrei,mark.satterthwaite

[CL 2586000 by Josh Adams in Main branch]
2015-06-12 13:45:19 -04:00
Steve Robb
a1e663d053 Unification of environment variable harvesting, GetExecutingAssembly* functions, GetShortPathName and CaselessDictionary from UBT into DotNETUtilities.
Fixing up of existing code which used these facilities - this fixes the 'You are attempting to compile on a machine that does not have a supported compiler!' UAT error on machines with really long PATH variables, and exceptions in envvars with non-ASCII characters.

#codereview robert.manuszewski

[CL 2572445 by Steve Robb in Main branch]
2015-06-01 10:14:54 -04:00