Files
UnrealEngineUWP/Engine/Source/Programs/DotNETCommon/DotNETUtilities/FilePattern.cs

438 lines
14 KiB
C#
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
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
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3550452 by Ben.Marsh UAT: Improve readability of error message when an editor commandlet fails with an error code. Change 3551179 by Ben.Marsh Add methods for reading text files into an array of strings. Change 3551260 by Ben.Marsh Core: Change FFileHelper routines to use enum classes for flags. Change 3555697 by Gil.Gribb Fixed a rare crash when the asset registry scanner found old cooked files with package level compression. #jira UE-47668 Change 3556464 by Ben.Marsh UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files. Change 3557630 by Ben.Marsh Allow the network version to be set via Build.version if it's not overriden from Version.h. Change 3561357 by Gil.Gribb Fixed crashes related to loading old unversioned files in the editor. #jira UE-47806 Change 3565711 by Graeme.Thornton PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx) Change 3565864 by Robert.Manuszewski Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object. Change 3569022 by Ben.Marsh PR #3849: Update gitignore (Contributed by mhutch) Change 3569113 by Ben.Marsh Fix Japanese errors not displaying correctly in the cook output log. #jira UE-47746 Change 3569486 by Ben.Marsh UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set. Change 3570483 by Graeme.Thornton Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors Change 3570513 by Robert.Manuszewski Fix for a race condition with async loading thread enabled. Change 3570664 by Ben.Marsh UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core. Change 3570708 by Robert.Manuszewski Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running. Change 3571592 by Ben.Marsh UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available. Change 3572215 by Graeme.Thornton UBT - Remove some unnecessary using directives - Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself Change 3572437 by Robert.Manuszewski Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects. #jira UE-44996 Change 3572480 by Robert.Manuszewski MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long Change 3573547 by Ben.Marsh Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line. Change 3574562 by Robert.Manuszewski PR #3847: Add GC callbacks for script integrations (Contributed by mhutch) Change 3575017 by Ben.Marsh Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core. Change 3575689 by Ben.Marsh Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds. Change 3575934 by Steve.Robb Fix for nested preprocessor definitions. Change 3575961 by Steve.Robb Fix for nested zeros. Change 3576297 by Robert.Manuszewski Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread. #jira FORT-38977 Change 3576366 by Ben.Marsh Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated. Change 3578290 by Graeme.Thornton Changes to Ionic zip library to allow building on dot net core Change 3578291 by Graeme.Thornton Ionic zip library binaries built for .NET Core Change 3578354 by Graeme.Thornton Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string Change 3578674 by Robert.Manuszewski After loading packages flush linker cache on uncooked platforms to free precache memory Change 3579068 by Steve.Robb Fix for CLASS_Intrinsic getting stomped. Fix to EClassFlags so that they are visible in the debugger. Re-added mysteriously-removed comments. Change 3579228 by Steve.Robb BOM removed. Change 3579297 by Ben.Marsh Fix exception if a plugin lists the same module twice. #jira UE-48232 Change 3579898 by Robert.Manuszewski When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert. Change 3579983 by Robert.Manuszewski More fixes for freeing linker cache memory in the editor. Change 3580012 by Graeme.Thornton Remove redundant copy of FileReference.cs Change 3580408 by Ben.Marsh Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect. Change 3582104 by Graeme.Thornton Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path. Change 3582131 by Graeme.Thornton #define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway. Change 3582645 by Ben.Marsh PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola) #jira UE-48192 Change 3583955 by Robert.Manuszewski Support for EDL cooked packages in the editor Change 3584035 by Graeme.Thornton Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly. Change 3584177 by Robert.Manuszewski Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached) Change 3584315 by Ben.Marsh Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class. Change 3584370 by Ben.Marsh Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes. Change 3584498 by Ben.Marsh Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes. Change 3585003 by Steve.Robb Fix for TChunkedArray ranged-for iteration. #jira UE-48297 Change 3585235 by Ben.Marsh Remove LogEngine extern from Core; use the platform log channels instead. Change 3585942 by Ben.Marsh Move MessageBoxExt() implementation into application layer for platforms that require it. Change 3587071 by Ben.Marsh Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL. Change 3587161 by Ben.Marsh Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h. Change 3587579 by Steve.Robb Fix for Children list not being rebuilt after hot reload. Change 3587584 by Graeme.Thornton Logging improvements for pak signature check failures - Added "PakCorrupt" console command which corrupts the master signature table - Added some extra log information about which block failed - Re-hash the master signature table and to make sure that it hasn't changed since startup - Moved the ensure around so that some extra logging messages can make it out before the ensure is hit - Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again Change 3587586 by Graeme.Thornton Changes to make UBT build and run on .NET Core - Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups - VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use - After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects Change 3587953 by Steve.Robb Allow arbitrary UENUM initializers for enumerators. Editor-only data UENUM support. Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated. #jira UE-46274 Change 3589827 by Graeme.Thornton More fixes for VSCode project generation and for UBT running on .NET Core - Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts - UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel - Added documentation for UEConsoleTraceListener - All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files - Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose" - Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff Change 3589868 by Graeme.Thornton Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures. UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases Change 3589919 by Robert.Manuszewski Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor) Change 3589940 by Graeme.Thornton Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths. Change 3590078 by Graeme.Thornton Fully disable automatic assembly info generation in .NET Core projects Change 3590534 by Robert.Manuszewski Marking UObject as intrinsic clas to fix a crash on UFE startup. Change 3591498 by Gil.Gribb UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading. Change 3591605 by Gil.Gribb UE4 - Follow up to fixing several edge cases in the low level async loading code. Change 3592577 by Graeme.Thornton .NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates Change 3592684 by Steve.Robb Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush. Change 3592710 by Steve.Robb Fix for invalid casts in ListProps command. Some name changes in command output. Change 3592715 by Ben.Marsh Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default. Change 3592767 by Gil.Gribb UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules. Change 3592770 by Gil.Gribb UE4 - Fixed a race condition with async read completion in the prescence of cancels. Change 3593090 by Steve.Robb Better error message when there two clashing type names are found. Change 3593697 by Steve.Robb VisitTupleElements function, which calls a functor for each element in the tuple. Change 3595206 by Ben.Marsh Include additional diagnostics for missing imports when a module load fails. Change 3596140 by Graeme.Thornton Batch file for running MSBuild Change 3596267 by Steve.Robb Thread safety fix to FPaths::GetProjectFilePath(). Change 3596271 by Robert.Manuszewski Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor #jira UE-47535 Change 3596283 by Steve.Robb Redundant casts removed from UHT. Change 3596303 by Ben.Marsh EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window. Change 3596337 by Ben.Marsh UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio. Change 3596367 by Steve.Robb Iterator checks in ranged-for on TMap, TSet and TSparseArray. Change 3596410 by Gil.Gribb UE4 - Improved some error messages on runtime failures in the EDL. Change 3596532 by Ben.Marsh UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013. #jira UE-48119 Change 3596631 by Steve.Robb Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder. Change 3596807 by Ben.Marsh Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense. * UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables. * Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration. Change 3596957 by Steve.Robb UBT can be used to write out an .objsrcmap file for use with the MapFileParser. Renaming of ObjMap to ObjSrcMap in MapFileParser. Change 3597213 by Ben.Marsh Remove AutoReporter. We don't support this any more. Change 3597558 by Ben.Marsh UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax: +ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar") The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable. Change 3597982 by Ben.Marsh Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache). #jira UE-47173 Change 3598045 by Ben.Marsh UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI). Change 3599214 by Ben.Marsh Avoid string duplication when comparing extensions. Change 3600038 by Steve.Robb Fix for maps being modified during iteration in cache compaction. Change 3600136 by Steve.Robb GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool Change 3600214 by Steve.Robb More accurate error message when unsupported template parameters are provided in a TSet property. Change 3600232 by Ben.Marsh UBT: Force UHT to run again if the .build.cs file for a module has changed. #jira UE-46119 Change 3600246 by Steve.Robb GitHub #3045 : allow multiple interface definition in a file Change 3600645 by Ben.Marsh Convert QAGame to Include-What-You-Use. Change 3600897 by Ben.Marsh Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes. Change 3601558 by Graeme.Thornton Simple first pass VSCode editor integration plugin Change 3601658 by Graeme.Thornton Enable intellisense generation for VS Code project files and setup include paths properly Change 3601762 by Ben.Marsh UBT: Add support for adaptive non-unity builds when working from a Git repository. The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged. Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior: <SourceFileWorkingSet> <Provider>Default</Provider> <!-- May be None, Default, Git or Perforce --> <RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. --> <GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH --> </SourceFileWorkingSet> Change 3604032 by Graeme.Thornton First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows. Change 3604038 by Graeme.Thornton Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor. Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code. Change 3604106 by Steve.Robb GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro Change 3604192 by Steve.Robb GitHub #3911 : Improving ToUpper/ToLower efficiency Change 3604273 by Graeme.Thornton IWYU build fixes when malloc profiler is enabled Change 3605457 by Ben.Marsh Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it. Change 3606720 by James.Hopkin Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn. Change 3606807 by Graeme.Thornton Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741. Change 3607026 by James.Hopkin Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed Change 3607142 by Graeme.Thornton UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose. Change 3607146 by Ben.Marsh UGS: Fix exception due to formatting string when Perforce throws an error. Change 3607147 by Steve.Robb Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time. Float and double conversion support added to int properties. NAME_DoubleProperty added. Fix for converting enum class enumerators > 255 to int properties. Change 3607516 by Ben.Marsh PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames) Change 3610421 by Ben.Marsh UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help. Change 3610657 by Ben.Marsh UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables. Change 3611000 by Ben.Marsh UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument. Change 3612471 by Ben.Marsh UBT: Move FastJSON into DotNETUtilities. Change 3613479 by Ben.Marsh UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator. Change 3613910 by Ben.Marsh UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later. Change 3614075 by Ben.Marsh UBT: Remove hacks for testing project file attributes by name. Change 3614090 by Ben.Marsh UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary. Change 3614488 by Ben.Marsh UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled. Change 3614490 by Ben.Marsh UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself. Change 3614962 by Ben.Marsh UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers. Change 3615416 by Ben.Marsh EC: Include an icon showing the overall status of a build in the grid view. Change 3615713 by Ben.Marsh UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder. #jira UE-48987 Change 3616652 by Ben.Marsh Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project. #jira UE-49007 Change 3616680 by Ben.Marsh Add the CodeAPI-HTML.tgz file into the installed engine build. Change 3616767 by Ben.Marsh Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible. Change 3616864 by Ben.Marsh Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended. #jira UE-48711 Change 3619964 by Ben.Marsh UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables. Change 3548930 by Ben.Marsh UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction. Change 3558056 by Ben.Marsh Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()). Change 3563309 by Graeme.Thornton Moved some common C# classes into the DotNETCommon assembly Change 3570283 by Graeme.Thornton Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore Change 3572811 by Ben.Marsh UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables). Change 3573397 by Ben.Marsh UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS. Change 3575659 by Ben.Marsh Remove CHM API documentation. Change 3582103 by Graeme.Thornton Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core Removed reference to System.Windows.Form from UBT. Change 3584113 by Ben.Marsh Move key-mapping functionality into the InputCore module. Change 3584278 by Ben.Marsh Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc. Change 3584453 by Ben.Marsh Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms. Change 3585301 by Ben.Marsh Move PlatformPostInit() into an FPlatformApplicationMisc function. Change 3587050 by Ben.Marsh Move IsThisApplicationForeground() into FPlatformApplicationMisc. Change 3587059 by Ben.Marsh Move RequiresVirtualKeyboard() into FPlatformApplicationMisc. Change 3587119 by Ben.Marsh Move GetAbsoluteLogFilename() into FPlatformMisc. Change 3587800 by Steve.Robb Fixes to container visualizers for types whose pointer type isn't simply Type*. Change 3588393 by Ben.Marsh Move platform output devices into their own headers. Change 3588868 by Ben.Marsh Move creation of console, error and warning output devices int PlatformApplicationMisc. Change 3589879 by Graeme.Thornton All automation projects now have a reference to DotNETUtilities Fixed a build error in the WEX automation library Change 3590034 by Ben.Marsh Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac). Change 3593754 by Steve.Robb Fix for tuple debugger visualization. Change 3597208 by Ben.Marsh Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees. Change 3600163 by Ben.Marsh UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned. #jira UE-46725 Change 3604279 by Graeme.Thornton Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects Change 3606685 by James.Hopkin Removed redundant 'Cast's (casting to either the same type or a base). In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass. Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp. Change 3610950 by Ben.Marsh UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic. Change 3610991 by Ben.Marsh UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line. Change 3612342 by Ben.Marsh UBT: Change JsonObject.Read() to take a FileReference parameter. Change 3612362 by Ben.Marsh UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects. Change 3619128 by Ben.Marsh Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures. [CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
using Tools.DotNETCommon;
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
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
namespace Tools.DotNETCommon
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
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
public class FilePatternException : Exception
{
public FilePatternException(string Message)
: base(Message)
{
}
public FilePatternException(string Format, params object[] Args)
: base(String.Format(Format, Args))
{
}
public override string ToString()
{
return Message;
}
}
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
/// <summary>
/// Encapsulates a pattern containing the '?', '*', and '...' wildcards.
/// </summary>
public class FilePattern
{
/// <summary>
/// Base directory for all matched files
/// </summary>
public readonly DirectoryReference BaseDirectory;
/// <summary>
/// List of tokens in the pattern. Every second token is a wildcard, other tokens are string fragments. Always has an odd number of elements. Path separators are normalized to the host platform format.
/// </summary>
public readonly List<string> Tokens = new List<string>();
/// <summary>
/// Constructs a file pattern which matches a single file
/// </summary>
/// <param name="File">Location of the file</param>
public FilePattern(FileReference File)
{
BaseDirectory = File.Directory;
Tokens.Add(File.GetFileName());
}
/// <summary>
/// Constructs a file pattern from the given string, resolving relative paths to the given directory.
/// </summary>
/// <param name="RootDirectory">If a relative path is specified by the pattern, the root directory used to turn it into an absolute path</param>
/// <param name="Pattern">The pattern to match. If the pattern ends with a directory separator, an implicit '...' is appended.</param>
public FilePattern(DirectoryReference RootDirectory, string Pattern)
{
// Normalize the path separators
StringBuilder Text = new StringBuilder(Pattern);
if(Path.DirectorySeparatorChar != '\\')
{
Text.Replace('\\', Path.DirectorySeparatorChar);
}
if(Path.DirectorySeparatorChar != '/')
{
Text.Replace('/', Path.DirectorySeparatorChar);
}
// Find the base directory, stopping when we hit a wildcard. The source directory must end with a path specification.
int BaseDirectoryLen = 0;
for(int Idx = 0; Idx < Text.Length; Idx++)
{
if(Text[Idx] == Path.DirectorySeparatorChar)
{
BaseDirectoryLen = Idx + 1;
}
else if(Text[Idx] == '?' || Text[Idx] == '*' || (Idx + 2 < Text.Length && Text[Idx] == '.' && Text[Idx + 1] == '.' && Text[Idx + 2] == '.'))
{
break;
}
}
// Extract the base directory
BaseDirectory = DirectoryReference.Combine(RootDirectory, Text.ToString(0, BaseDirectoryLen));
// Convert any directory wildcards ("...") into complete directory wildcards ("\\...\\"). We internally treat use "...\\" as the wildcard
// token so we can correctly match zero directories. Patterns such as "foo...bar" should require at least one directory separator, so
// should be converted to "foo*\\...\\*bar".
for(int Idx = BaseDirectoryLen; Idx < Text.Length; Idx++)
{
if(Text[Idx] == '.' && Text[Idx + 1] == '.' && Text[Idx + 2] == '.')
{
// Insert a directory separator before
if(Idx > BaseDirectoryLen && Text[Idx - 1] != Path.DirectorySeparatorChar)
{
Text.Insert(Idx++, '*');
Text.Insert(Idx++, Path.DirectorySeparatorChar);
}
// Skip past the ellipsis
Idx += 3;
// Insert a directory separator after
if(Idx == Text.Length || Text[Idx] != Path.DirectorySeparatorChar)
{
Text.Insert(Idx++, Path.DirectorySeparatorChar);
Text.Insert(Idx++, '*');
}
}
}
// Parse the tokens
int LastIdx = BaseDirectoryLen;
for(int Idx = BaseDirectoryLen; Idx < Text.Length; Idx++)
{
if(Text[Idx] == '?' || Text[Idx] == '*')
{
Tokens.Add(Text.ToString(LastIdx, Idx - LastIdx));
Tokens.Add(Text.ToString(Idx, 1));
LastIdx = Idx + 1;
}
else if(Idx - 3 >= BaseDirectoryLen && Text[Idx] == Path.DirectorySeparatorChar && Text[Idx - 1] == '.' && Text[Idx - 2] == '.' && Text[Idx - 3] == '.')
{
Tokens.Add(Text.ToString(LastIdx, Idx - 3 - LastIdx));
Tokens.Add(Text.ToString(Idx - 3, 4));
LastIdx = Idx + 1;
}
}
Tokens.Add(Text.ToString(LastIdx, Text.Length - LastIdx));
}
/// <summary>
/// A pattern without wildcards may match either a single file or directory based on context. This pattern resolves to the later as necessary, producing a new pattern.
/// </summary>
/// <returns>Pattern which matches a directory</returns>
public FilePattern AsDirectoryPattern()
{
if(ContainsWildcards())
{
return this;
}
else
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3314870) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3284872 on 2017/02/03 by Graeme.Thornton Seperate pak cache granularity from pak signing chunk size Change 3285765 on 2017/02/03 by Graeme.Thornton Fix stats warnings because each slate new loading screen thread has the same stat name, but is assigned to a different thread #jira UE-41478 Change 3286913 on 2017/02/04 by Ben.Marsh IncludeTool: Merging fixes. * Don't remove existing forward declarations unless explicitly instructed to do so. Files are optimized with these declarations in place, so removing them can cause output files to fail to build. It can be a useful separate step though, so expose it as a command-line option instead. * Add a specific option for which files should be output by the tool. Any files which are excluded from this list are treated specially when generating output files, so as to prevent them from causing files to be omitted from other files that include them. Also add an option to force this mode for all headers, for use when testing formatting/include path generation. Change 3287100 on 2017/02/05 by Ben.Marsh UBT: Move platform settings into platform-specific TargetRules objects. Change 3287106 on 2017/02/05 by Ben.Marsh Merge UEBuildPlatformContext into UEBuildPlatform. Now that targets can have platform-specific settings, there is no need to separate a platform class which contains target-specific information. Change 3287398 on 2017/02/06 by Steve.Robb Fix for UHT failing when -WarningsAsErrors and -Verbose are specified together. Change 3287399 on 2017/02/06 by Steve.Robb Log verbosities made more readable in the debugger. Change 3287410 on 2017/02/06 by Steve.Robb Fix for TStructOpsTypeTraits where WithCopy gives a different result between specializing the traits and not providing WithCopy and not specializing the traits at all. #fyi marc.audy Change 3288020 on 2017/02/06 by Ben.Marsh Prevent forward declaration of the ITextData class. We need to include the header for the debugger visualizers to work correctly. Change 3291817 on 2017/02/08 by Steve.Robb New EBlueprintCompileReinstancerFlags used to construct FBlueprintCompileReinstancer, instead of lots of bools. Change 3292090 on 2017/02/08 by Graeme.Thornton Crash fix - don't update font engine services if it was never created #jira UE-33953 Change 3292993 on 2017/02/08 by Ben.Marsh Add an option to disable force-including PCHs for files in the non-unity working set. (bAdaptiveUnityDisablesPCH) Change 3293231 on 2017/02/08 by Ben.Marsh BuildGraph: Allow overriding the changelist that a badge should be displayed for (with the Change="" attribute on the Badge declaration in XML), so the code changelist can be used if necessary. Also link to the failed step if only one has failed. Change 3294213 on 2017/02/09 by Ben.Marsh EC: Allow setting a property on frequent CI jobs that allows us to exclude it from job searches for generating the dashboard. Filtering on the client side is causing dashboard pages to be almost empty. Change 3294753 on 2017/02/09 by Ben.Zeigler #jira UE-41151 Fix UObjectLibrary::RemoveObject to remove from the correct array, and add comment mentioning that the dynamic use of Object Library is semi-deprecated Change 3296070 on 2017/02/09 by Ben.Zeigler Explicitly turn off Copy for a struct that has a linked list internally. I think turning Copy on by default for all non POD Types is pretty risky and is likely to crash for other games. In this case it was being copied for network replication, and it didn't have one defined so the default C++ one copied the linked list and crashed on destruction. Change 3296420 on 2017/02/10 by Graeme.Thornton Remove remaining references to AES_KEY, instead using the encryption key delegates to access the key where needed Refactored encryption and signing key access in unrealpak to make it easier to use Change 3296609 on 2017/02/10 by Ben.Marsh BuildGraph: Fix error running the <Copy> task with an empty "From" argument. * FileSystemReference.IsUnderDirectory() was not correctly handling cases where the directory was a root directory (and has to end in a path separator) * FilePattern.AsDirectoryReference() with an empty token would append a path separator to an empty string, resulting in it referencing the root directory rather than the given base directory. Change 3297440 on 2017/02/10 by Ben.Marsh UBT: Move the FileFilter class into UnrealBuildTool. Change 3297725 on 2017/02/10 by Ben.Zeigler #jira UE-39199 Fix issue with enum value redirects using the wrong short or long name, it now fully supports both. Clean up a lot of confusingly named and broken functions on UEnum: #jira UE-41348 Deprecate FindEnumIndex, GetEnum, GetEnumName, replace with GetIndexByName, GetNameByIndex, and GetNameStringByIndex and clean up warnings #jira UE-38187 Deprecate GetDisplayNameText and GetEnumText, replaced both with GetDisplayNameTextAtIndex which is now callable outside the editor and has a better comment Deprecate FindEnumRedirects and replace with GetIndexByNameString. Fix code to not check the redirects array 5 times per enum lookup Fix GetValueAsString to actually act on a value, not an index. This matches common usage and the function's name While fixing deprecation warnings on internal games, fixed dozens of cases where it was using Index functions when it should have been using Value functions Delete some now redundant enum editor code and pipe everything through UEnum Change 3297979 on 2017/02/10 by Ben.Zeigler Fix issues parsing Enums that are literally the string "None", which is allowed but leads to some odd behavior Change 3298299 on 2017/02/10 by Steve.Robb TTuple improvements: - equality comparable - serializable - in the correct folder 2-tuples are specialized to be syntactically compatible with both TPair and TTuple. TPair is now an alias for a 2-tuple and is no longer bound to TPairInitializer. #fyi robert.manuszewski,ben.marsh Change 3298460 on 2017/02/11 by Ben.Marsh UGS: Set the correct result from running custom tasks. Change 3298462 on 2017/02/11 by Ben.Marsh UBT: Fix some deprecated messages that have the wrong release version, and add a better message for how ModuleRules constructors need to be updated. Change 3299447 on 2017/02/13 by Graeme.Thornton Fix AES and pak signing key embedding for content only projects - Force temp target when any keys are specified by project config Change 3299649 on 2017/02/13 by Steve.Robb PLATFORM_HAS_DEFAULTED_OPERATORS fixed. Other obsolete compiler switches removed. Change 3299787 on 2017/02/13 by Steve.Robb IsAbstract() for testing if a reflected native type contains pure virtual functions. Needed for BP nativization. #fyi robert.manuszewski Change 3300576 on 2017/02/13 by Ben.Marsh EC: Add support for starting builds on any agent type. Mapping from agent types to resource pools is stored in an EC property sheet (/Generated/<Stream>/AgentTypes), allowing EC procedures to map it to a resource pool from a parameter. Change 3300600 on 2017/02/13 by Ben.Marsh EC: Add the -ClearHistory argument to UAT run to export BuildGraph settings, to allow running on incremental workspaces. Change 3300624 on 2017/02/13 by Ben.Marsh Switch incremental builds for all streams to start up on the incremental agent. Change 3302134 on 2017/02/14 by Steve.Robb UnrealCodeAnalyzer removed. #fyi ben.marsh,robert.manuszewski Change 3302639 on 2017/02/14 by Ben.Zeigler Fix crash cooking odin with default command line #jira UE-41952 Delete StealthTeleport map that crashes on load, and update default cook list that gets used if nothing specified Change 3303002 on 2017/02/14 by Ben.Zeigler #jira UE-41061 Fix it so editor only filtering on savepackage is uniformly applied regardless of if it's at package or object level #jira UE-41880 Rewrite editor/client/server only filtering logic in SavePackage to fix various bugs. It now does all of the filtering up front, and won't process any filtered objects for imports or exports Rename NotForEditorGame to NotAlwaysLoadedForEditorGame and improve comments, this flag says that the asset should be loaded EVEN IF it is editor only, it does not affect loading for normal objects Change the non-map cook flags to RF_Public instead of RF_Standalone. Blueprint classes aren't RF_Standalone so were only being cooked before due to an accident of the dependency checker Change it so anything with a Transient outer is marked transient at save time. These objects would not save out properly anyway Fix it so -cooksinglepackage works properly again and excludes localization and startup packages Tested with Fortnite and Odin, Odin works but with lots of warnings with nativization on which I need to investigate Change 3303084 on 2017/02/14 by Ben.Zeigler Attempt to get Nativization and EDL working without warnings Change 3305153 on 2017/02/15 by Ben.Zeigler Fix Fortnite and Orion cook, I don't understand why this passed my local testing Fix the CDO subobject finder to actually return things instead of doing nothing, and fix a shadow variable warning Change 3305959 on 2017/02/16 by Gil.Gribb UE4 - Tweaked out the EDL loader for the switch with benefits to all platforms. Change 3306159 on 2017/02/16 by Ben.Marsh Fix path to target binaries when building non-monolithic in a unique build environment. Change 3306584 on 2017/02/16 by Steve.Robb UEnum internal functions renamed from Index to Value. GetValueAsString_Internal() parameter now takes an int64, as is expected for enum values. #fyi ben.zeigler Change 3307836 on 2017/02/16 by Ben.Zeigler #jira UE-42055 Load very old redirects in cooked builds. Matinee has no way of resaving redirects, so as long as matinee exists we need to keep them around forever, or fix matinee manually Fixes lighting in Infiltrator demo Change 3307929 on 2017/02/16 by Ben.Zeigler #jira UE-42055 Second half of matinee redirector fix Change 3308840 on 2017/02/17 by Matthew.Griffin Reimplementing CL#3305808 from 4.15 Changed QA label build process so that it only allows version with 3 components (we always add the .0 for initial releases) Change 3309115 on 2017/02/17 by Ben.Marsh Windows: Fix the GetModulesDirectory() function always returning the engine binaries directory. It's possible to build non-monolithic targets which output all engine binaries to the game binaries directory - a requirement to being able to set game-specific defines or build settings, because we don't want shared engine binaries to be tainted with them. The module manager needs to be able to operate early on, before many of the game settings have been initialized, so just return the directory containing the Core module instead. Change 3309120 on 2017/02/17 by Ben.Marsh Fix support for creating modular builds which don't use the shared build environment. Change 3309125 on 2017/02/17 by Ben.Marsh Require that -CookDir arguments are specified separately on the command line. '+' is a valid path character (and common in build versions), so we shouldn't treat it as an argument separator. Change 3309128 on 2017/02/17 by Ben.Marsh Fix UnrealPak failures when enumerating all files from a source directory, if that directory happens to contain spaces. Change 3309131 on 2017/02/17 by Ben.Marsh Fix list of discovered assets being cleared by second call to FindFilesRecursive() when building DDC. Disable the -cookdir parameter again. Change 3309140 on 2017/02/17 by Ben.Marsh UAT: Fix exception moving a file from one location to another if the target directory does not exist. Change 3309212 on 2017/02/17 by Ben.Marsh Fixes/improvements for mod editor and code mods: * A separate top-level project is generated for each code mod in the Visual Studio solution. * Plugin descriptors now have a flag to identify themselves as mod as opposed to a regular game plugin, which prevents project plugins from getting their own VS project. New mods created with the mod editor will have this set by default, as do the three existing sample mods. * Cleaning and building code mods will never modify engine binaries. Presence of the Engine/Build/InstalledProjectBuild.txt file is used to indicate running in this environment. This flag also disables options to edit metadata for non-mod plugins in installed builds. * Plugin browser now includes a separate category for mods. * Mod editor now behaves as an "installed" program by default, and will use the user's home folder for storing settings. Change 3309231 on 2017/02/17 by Steve.Robb Fix for Ar << bSomeBool where Ar is a derived class which overrides an operator<<. #jira UE-42052 Change 3309248 on 2017/02/17 by Ben.Marsh Add support for hot-reloading game plugin modules from Visual Studio, as long as their module returns IsGameModule() = true. Change 3309257 on 2017/02/17 by Ben.Marsh Prevent game binaries from being renamed for hot reload when working with installed projects. Change 3309355 on 2017/02/17 by Steven.Hutton Changes to make the website compatible with the new database changes. Change 3309371 on 2017/02/17 by Ben.Marsh Fix exception on shutdown when running asset registry with threads disabled. #jira UE-41951 Change 3309389 on 2017/02/17 by Ben.Zeigler #jira UE-42051 Fix ensure and crash when loading a null asset ID via the LoadAsset BP node Change 3309570 on 2017/02/17 by Gil.Gribb UE4 - Switch load time performace tweaks, plus abstracted the IO tracker and handle manager for other platforms and applied it to the PS4. Change 3310039 on 2017/02/17 by Ben.Marsh BuildGraph: Prevent exception when trying to delete a file that does not exist. Change 3311484 on 2017/02/20 by Chris.Wood CrashReportProcess crash add retry logic improvements (CRP v1.2.16) Change 3311600 on 2017/02/20 by Matthew.Griffin Updated StripSymbols functions so that all platforms can deal with the source and target file being the same Change 3311675 on 2017/02/20 by Steve.Robb FNativeClassHeaderGenerator::CurrentSourceFile stack replaced with C++ stack. Change 3311893 on 2017/02/20 by Ben.Marsh UGS: Add support for notifying users if CIS steps fail for content changes. Badges which test content should be listed in the [Notifications] section of the project-specific INI file, through +ContentBadges= lines. Change 3313966 on 2017/02/21 by Ben.Marsh Fix EC parsing of error messages output by the editor in the form "LogXYZ:Error:". Greedy optional subexpression in regex was matching everything until a space, so terminate a colon too. Change 3314398 on 2017/02/21 by Ben.Zeigler #jira UE-42212 Fix shutdown of AnimGraph module to be safer [CL 3315211 by Ben Marsh in Main branch]
2017-02-21 15:51:42 -05:00
StringBuilder Pattern = new StringBuilder();
foreach(string Token in Tokens)
{
Pattern.Append(Token);
}
if(Pattern.Length > 0)
{
Pattern.Append(Path.DirectorySeparatorChar);
}
Pattern.Append("...");
return new FilePattern(BaseDirectory, Pattern.ToString());
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
}
}
/// <summary>
/// For a pattern that does not contain wildcards, returns the single file location
/// </summary>
/// <returns>Location of the referenced file</returns>
public FileReference GetSingleFile()
{
if(Tokens.Count == 1)
{
return FileReference.Combine(BaseDirectory, Tokens[0]);
}
else
{
throw new InvalidOperationException("File pattern does not reference a single file");
}
}
/// <summary>
/// Checks whether this pattern is explicitly a directory, ie. is terminated with a directory separator
/// </summary>
/// <returns>True if the pattern is a directory</returns>
public bool EndsWithDirectorySeparator()
{
string LastToken = Tokens[Tokens.Count - 1];
return LastToken.Length > 0 && LastToken[LastToken.Length - 1] == Path.DirectorySeparatorChar;
}
/// <summary>
/// Determines whether the pattern contains wildcards
/// </summary>
/// <returns>True if the pattern contains wildcards, false otherwise.</returns>
public bool ContainsWildcards()
{
return Tokens.Count > 1;
}
/// <summary>
/// Tests whether a pattern is compatible with another pattern (that is, that the number and type of wildcards match)
/// </summary>
/// <param name="Other">Pattern to compare against</param>
/// <returns>Whether the patterns are compatible.</returns>
public bool IsCompatibleWith(FilePattern Other)
{
// Check there are the same number of tokens in each pattern
if(Tokens.Count != Other.Tokens.Count)
{
return false;
}
// Check all the wildcard tokens match
for(int Idx = 1; Idx < Tokens.Count; Idx += 2)
{
if(Tokens[Idx] != Other.Tokens[Idx])
{
return false;
}
}
return true;
}
/// <summary>
/// Converts this pattern to a C# regex format string, which matches paths relative to the base directory formatted with native directory separators
/// </summary>
/// <returns>The regex pattern</returns>
public string GetRegexPattern()
{
StringBuilder Pattern = new StringBuilder("^");
Pattern.Append(Regex.Escape(Tokens[0]));
for(int Idx = 1; Idx < Tokens.Count; Idx += 2)
{
// Append the wildcard expression
if(Tokens[Idx] == "?")
{
Pattern.Append("([^\\/])");
}
else if(Tokens[Idx] == "*")
{
Pattern.Append("([^\\/]*)");
}
else
{
Pattern.AppendFormat("((?:.+{0})?)", Regex.Escape(Path.DirectorySeparatorChar.ToString()));
}
// Append the next sequence of characters to match
Pattern.Append(Regex.Escape(Tokens[Idx + 1]));
}
Pattern.Append("$");
return Pattern.ToString();
}
/// <summary>
/// Creates a regex replacement pattern
/// </summary>
/// <returns>String representing the regex replacement pattern</returns>
public string GetRegexReplacementPattern()
{
StringBuilder Pattern = new StringBuilder();
for(int Idx = 0;;Idx += 2)
{
// Append the escaped replacement character
Pattern.Append(Tokens[Idx].Replace("$", "$$"));
// Check if we've reached the end of the string
if(Idx == Tokens.Count - 1)
{
break;
}
// Insert the capture
Pattern.AppendFormat("${0}", (Idx / 2) + 1);
}
return Pattern.ToString();
}
/// <summary>
/// Creates a file mapping between a set of source patterns and a target pattern. All patterns should have a matching order and number of wildcards.
/// </summary>
/// <param name="Files">Files to use for the mapping</param>
/// <param name="SourcePatterns">List of source patterns</param>
/// <param name="TargetPattern">Matching output pattern</param>
/// <param name="Filter">Filter to apply to source files</param>
/// <param name="TargetFileToSourceFile">Dictionary to receive a mapping from target file to source file. An exception is thrown if multiple source files map to one target file, or a source file is also used as a target file.</param>
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
public static Dictionary<FileReference, FileReference> CreateMapping(HashSet<FileReference> Files, ref FilePattern SourcePattern, ref FilePattern TargetPattern)
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
{
// If the source pattern ends in a directory separator, or a set of input files are specified and it doesn't contain wildcards, treat it as a full directory match
if(SourcePattern.EndsWithDirectorySeparator())
{
SourcePattern = new FilePattern(SourcePattern.BaseDirectory, String.Join("", SourcePattern.Tokens) + "...");
}
else if(Files != null)
{
SourcePattern = SourcePattern.AsDirectoryPattern();
}
// If we have multiple potential source files, but no wildcards in the output pattern, assume it's a directory and append the pattern from the source.
if(SourcePattern.ContainsWildcards() && !TargetPattern.ContainsWildcards())
{
StringBuilder NewPattern = new StringBuilder();
foreach(string Token in TargetPattern.Tokens)
{
NewPattern.Append(Token);
}
if(NewPattern.Length > 0 && NewPattern[NewPattern.Length - 1] != Path.DirectorySeparatorChar)
{
NewPattern.Append(Path.DirectorySeparatorChar);
}
foreach(string Token in SourcePattern.Tokens)
{
NewPattern.Append(Token);
}
TargetPattern = new FilePattern(TargetPattern.BaseDirectory, NewPattern.ToString());
}
// If the target pattern ends with a directory separator, treat it as a full directory match if it has wildcards, or a copy of the source pattern if not
if(TargetPattern.EndsWithDirectorySeparator())
{
TargetPattern = new FilePattern(TargetPattern.BaseDirectory, String.Join("", TargetPattern.Tokens) + "...");
}
// Handle the case where source and target pattern are both individual files
Dictionary<FileReference, FileReference> TargetFileToSourceFile = new Dictionary<FileReference, FileReference>();
if(SourcePattern.ContainsWildcards() || TargetPattern.ContainsWildcards())
{
// Check the two patterns are compatible
if(!SourcePattern.IsCompatibleWith(TargetPattern))
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("File patterns '{0}' and '{1}' do not have matching wildcards", SourcePattern, TargetPattern);
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
}
// Create a filter to match the source files
FileFilter Filter = new FileFilter(FileFilterType.Exclude);
Filter.Include(String.Join("", SourcePattern.Tokens));
// Apply it to the source directory
List<FileReference> SourceFiles;
if(Files == null)
{
SourceFiles = Filter.ApplyToDirectory(SourcePattern.BaseDirectory, true);
}
else
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
SourceFiles = CheckInputFiles(Files, SourcePattern.BaseDirectory);
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
}
// Map them onto output files
FileReference[] TargetFiles = new FileReference[SourceFiles.Count];
// Get the source and target regexes
string SourceRegex = SourcePattern.GetRegexPattern();
string TargetRegex = TargetPattern.GetRegexReplacementPattern();
for(int Idx = 0; Idx < SourceFiles.Count; Idx++)
{
string SourceRelativePath = SourceFiles[Idx].MakeRelativeTo(SourcePattern.BaseDirectory);
string TargetRelativePath = Regex.Replace(SourceRelativePath, SourceRegex, TargetRegex);
TargetFiles[Idx] = FileReference.Combine(TargetPattern.BaseDirectory, TargetRelativePath);
}
// Add them to the output map
for(int Idx = 0; Idx < TargetFiles.Length; Idx++)
{
FileReference ExistingSourceFile;
if(TargetFileToSourceFile.TryGetValue(TargetFiles[Idx], out ExistingSourceFile) && ExistingSourceFile != SourceFiles[Idx])
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("Output file '{0}' is mapped from '{1}' and '{2}'", TargetFiles[Idx], ExistingSourceFile, SourceFiles[Idx]);
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
}
TargetFileToSourceFile[TargetFiles[Idx]] = SourceFiles[Idx];
}
}
else
{
// Just copy a single file
FileReference SourceFile = SourcePattern.GetSingleFile();
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
if(FileReference.Exists(SourceFile))
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
{
FileReference TargetFile = TargetPattern.GetSingleFile();
TargetFileToSourceFile[TargetFile] = SourceFile;
}
else
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("Source file '{0}' does not exist", SourceFile);
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
}
}
// Check that no source file is also destination file
foreach(FileReference SourceFile in TargetFileToSourceFile.Values)
{
if(TargetFileToSourceFile.ContainsKey(SourceFile))
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("'{0}' is listed as a source and target file", SourceFile);
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
}
}
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
// Return the map
return TargetFileToSourceFile;
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
}
/// <summary>
/// Checks that the given input files all exist and are under the given base directory
/// </summary>
/// <param name="InputFiles">Input files to check</param>
/// <param name="BaseDirectory">Base directory for files</param>
/// <returns>List of valid files</returns>
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3494741 by Steve.Robb Generated code size savings. #jira UE-43048 Change 3495484 by Steve.Robb Fix for generated indices of static arrays when saving configs. Change 3497926 by Robert.Manuszewski Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything. Change 3498077 by Robert.Manuszewski Only use the recursion guard in async loading code when the event driven loader is enabled. Change 3498112 by Ben.Marsh UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own. Change 3500239 by Robert.Manuszewski Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes. Change 3500395 by Steve.Robb Extra codegen savings when not in hot reload. Change 3501004 by Steve.Robb EObjectFlags now have constexpr operators. Change 3502079 by Ben.Marsh UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary. Change 3502527 by Steve.Robb Fix for zero-sized array compile error in generated code when all functions are editor-only. Change 3502542 by Ben.Marsh UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead. Change 3502868 by Steve.Robb Workaround for inefficient generated code with stateless lambdas on Clang. Change 3503550 by Steve.Robb Another generated code lambda optimization. Change 3503582 by Ben.Marsh BuildGraph: Add support for nullable parameter types. Change 3504424 by Steve.Robb New AllOf, AnyOf and NoneOf algorithms. Change 3504712 by Ben.Marsh UAT: Less spammy log and error output from UAT. * Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception). * Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information. * AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log) * Name of the calling function is not included in console output by default, but still included in the log. Change 3504808 by Ben.Marsh UAT: Suppress P4 output when running a recursive instance of UAT. Change 3505044 by Steve.Robb Code generation improved for TCppClassType code. Change 3505485 by Ben.Marsh Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module. Change 3505699 by Ben.Marsh Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins. Change 3506055 by Ben.Marsh UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output. Change 3507745 by Robert.Manuszewski Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses). Change 3507911 by Ben.Marsh Plugins: Minor changes to plugin descriptors. * Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors. * Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from. Change 3508669 by Ben.Marsh EC: Parse multi-line messages from UBT and UAT. Change 3508691 by Ben.Marsh Fix double-spacing of cook stats. Change 3509245 by Steve.Robb UHT makefiles removed. Flag audit removed. Change 3509275 by Steve.Robb Fix for mismatched stat categories in AudioMixer. #jira UE-46129 Change 3509289 by Robert.Manuszewski Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably. Change 3509294 by Robert.Manuszewski UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it. Change 3509312 by Steve.Robb GitHub# 3679: Add TArray constructor that takes a raw pointer and a count Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too. #jira UE-46136 Change 3509396 by Steve.Robb GitHub# 3676: Fix TUnion operator<< compile error #jira UE-46099 Change 3509633 by Steve.Robb Fix for line numbers on multiline macros. Change 3509938 by Gil.Gribb UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading. Change 3510593 by Daniel.Lamb Fixed up unsoilicited files getting populated with files which aren't finished being created yet. #test None Change 3510594 by Daniel.Lamb Fixed up temp files directory for patching. Thanks David Yerkess @ Milestone #review@Ben.Marsh Change 3511628 by Ben.Marsh PR #3707: Fixed UBT stack size (Contributed by gildor2) Change 3511808 by Ben.Marsh Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git) #jira UE-46540 Change 3512017 by Ben.Marsh Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface. Change 3513935 by Steve.Robb Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477. Change 3514142 by Steve.Robb MemoryProfiler2 added to generated solution. Change 3516463 by Ben.Marsh Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user. Change 3517860 by Ben.Marsh PR #3727: FString Dereference Fixes (Contributed by jovisgCL) Change 3517967 by Ben.Marsh Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line. Change 3518070 by Steve.Robb Disable Binned2 stats in shipping non-editor builds. Change 3520079 by Steve.Robb Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions. #jira UE-24034 Change 3520080 by Robert.Manuszewski Made max package summary size to be configurable with ini setting Change 3520083 by Steve.Robb Force a GC after hot reload to clean up reinstanced objects which may still tick. #jira UE-40421 Change 3520480 by Robert.Manuszewski Improved assert message when the initial package read request was too small. Change 3520590 by Graeme.Thornton SignedArchiveReader optimizations - Loads more stats - Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader - Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time - Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries Change 3521023 by Graeme.Thornton Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing Change 3521787 by Ben.Marsh PR #3736: Small static code analysis fixes (Contributed by jovisgCL) Change 3521789 by Ben.Marsh PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar) Change 3524721 by Ben.Marsh Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core. Change 3524741 by Ben.Marsh Move PumpMessages() into FPlatformApplicationMisc. Change 3525399 by Ben.Marsh UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment. Change 3525743 by Ben.Marsh UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds. Change 3525746 by Ben.Marsh EC: Include the clobber option on new workspaces, to allow overriding version files when syncing. Change 3526453 by Ben.Marsh UGS: Do not generate project files when syncing precompiled binaries. Change 3527045 by Ben.Marsh Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting. Change 3527420 by Ben.Marsh UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing). Config files are now read from: Engine/Programs/UnrealGameSync/UnrealGameSync.ini Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini If a project is selected: <ProjectDir>/Build/UnrealGameSync.ini <ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini If the .uprojectdirs file is selected: Engine/Programs/UnrealGameSync/DefaultProject.ini Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini Change 3528063 by Ben.Marsh Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse. Change 3528415 by Ben.Marsh UAT: Remove \r characters from the end of multiline log messages. Change 3528427 by Ben.Marsh EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent. Change 3528485 by Ben.Marsh EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places. Change 3528505 by Steve.Robb PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL) #jira UE-46819 Change 3528772 by Robert.Manuszewski Enabling actor and blueprint clustering in ShooterGame Change 3528786 by Robert.Manuszewski PR #3760: Fix typo (Contributed by jesseyeh) Change 3528792 by Steve.Robb PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL) #jira UE-46962 Change 3528941 by Robert.Manuszewski Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object. #jira UE-44996 Change 3530241 by Ben.Marsh UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value. Change 3531377 by Ben.Marsh Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it. This has several advantages over the per-module platform whitelist/blacklist: * Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore. * References to dependent plugins from platform-specific plugins can now be eliminated. * Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly). * The editor can load any plugins without having to whitelist supported editor host platforms. UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime. Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary. Change 3531502 by Jin.Zhang Add support for GPUCrash #rb Change 3531664 by Ben.Marsh UBT: Change output format from C# JSON writer to match output by the engine. Change 3531848 by Ben.Marsh UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable. Change 3531869 by Ben.Marsh UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field. Change 3532474 by Ben.Marsh UBT: Use the same mechanism as UAT for logging exceptions. Change 3532734 by Graeme.Thornton Initial VSCode Support - Tasks generated for building all game/engine/program targets - Debugging support for targets on Win64 Change 3532789 by Steve.Robb FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap. Set_Add and Map_Add no longer have a return value. FScriptSet::Find and FScriptMap::Find functions are now FindIndex. FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash. Change 3532845 by Steve.Robb Obsolete UHT settings deleted. Change 3532875 by Graeme.Thornton VSCode - Add debug targets for different target configurations - Choose between VS debugger (windows) and GDB (mac/linux) Change 3532906 by Graeme.Thornton VSCode - Point all builds directly at UBT rather than the batch files - Adjust mac build tasks to run through mono Change 3532924 by Ben.Marsh UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root. Change 3535234 by Graeme.Thornton VSCode - Pass intellisense system a list of paths to use for header resolution Change 3535247 by Graeme.Thornton UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation Change 3535376 by Graeme.Thornton VSCode - Added build jobs for C# projects - Linked launch tasks to relevant build task Change 3537083 by Ben.Marsh EC: Change P4 swarm links to start at the changelist for a build. Change 3537368 by Graeme.Thornton Fix for crash in FSignedArchiveReader when multithreading is disabled Change 3537550 by Graeme.Thornton Fixed a crash in the taskgraph when running single threaded Change 3537922 by Steve.Robb Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT. Change 3539691 by Graeme.Thornton VSCode - Various updates to get PC and Mac C++ projects building and debugging. - Some other changes to C# setup to allow compilation. Debugging doesn't work. Change 3539775 by Ben.Marsh Plugins: Various fixes to settings for enabling plugins. * Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled). * Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed. * Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them. Change 3540788 by Ben.Marsh UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile). Example usage: public class UnrealPakTarget : TargetRules { public UnrealPakTarget(TargetInfo Target) : base(Target) { Type = TargetType.Program; LinkType = TargetLinkType.Monolithic; LaunchModuleName = "UnrealPak"; if(HostPlatform == UnrealTargetPlatform.Win64) { PreBuildSteps.Add("echo Before building:"); PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); PostBuildSteps.Add("echo After building!"); PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)"); } } } Change 3541664 by Graeme.Thornton VSCode - Add problemMatcher tag to cpp build targets Change 3541732 by Graeme.Thornton VSCode - Change UBT command line switch to "-vscode" for simplicity Change 3541967 by Graeme.Thornton VSCode - Fixes for Mac/Linux build steps Change 3541968 by Ben.Marsh CRP: Pass through the EnabledPlugins element in crash context XML files. #jira UE-46912 Change 3542519 by Ben.Marsh UBT: Add chain of references to error messages when configuring plugins. Change 3542523 by Ben.Marsh UBT: Add more useful error message when attempt to parse a JSON object fails. Change 3542658 by Ben.Marsh UBT: Include a chain of references when reporting errors instantiating modules. Change 3543432 by Ben.Marsh Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set. Change 3543436 by Ben.Marsh UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails. Change 3543536 by Ben.Marsh UBT: Downgrade message about redundant plugin references to a warning. Change 3543871 by Gil.Gribb UE4 - Fixed a critical crash bug with non-EDL loading from pak files. Change 3543924 by Robert.Manuszewski Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes. +Small optimization to token stream generation code. Change 3544469 by Jin.Zhang Crashes page displays the list of plugins from the crash context #rb Change 3544608 by Steve.Robb Fix for nativized generated code. #jira UE-47452 Change 3544612 by Ben.Marsh Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages(). #jira UE-47449 Change 3545954 by Gil.Gribb Fixed a critical crash bug relating to a race condition in async package summary reading. Change 3545968 by Ben.Marsh UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same. #jira UE-47419 Change 3545976 by Ben.Marsh EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch. Change 3546185 by Ben.Marsh Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped. Change 3547084 by Gil.Gribb Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms. Change 3547968 by Gil.Gribb Fixed critical race which potentially could cause a crash in the pak precacher. Change 3504722 by Ben.Marsh BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run. For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as: ERROR: Unable to write to foo.txt while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" /> at Engine\Build\InstalledEngineBuild.xml(91) (see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace) Change 3512255 by Ben.Marsh Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated. Change 3512332 by Ben.Marsh Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4. Change 3512393 by Ben.Marsh Rename FPaths::GameLogDir() to FPaths::ProjectLogDir(). Change 3513452 by Ben.Marsh Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project. Change 3516262 by Ben.Marsh Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor. * Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod. * The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders). Change 3517565 by Ben.Marsh Remove fixed engine version numbers from OSS plugins. Change 3518005 by Ben.Marsh UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false. Change 3518054 by Ben.Marsh UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard. Change 3524496 by Ben.Marsh Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core. Change 3524641 by Ben.Marsh Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc. Change 3528723 by Steve.Robb MoveTemp now static asserts if passed a const reference or rvalue. MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious. Fixes to violations of these new rules. Change 3528876 by Ben.Marsh Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste. Change 3529073 by Ben.Marsh Add script to package ShooterGame for any platforms. Change 3531493 by Ben.Marsh Update platform-specific plugins to declare the target platforms they support. Change 3531611 by Ben.Marsh UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates. Change 3531868 by Ben.Marsh Resaving project descriptors to remove invalid fields. Change 3531983 by Ben.Marsh UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders. * Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer. * Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type) * Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo")) * An error is output if any restricted folder names other than the output platform are in the staged output. Change 3540315 by Ben.Marsh UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers. Change 3542410 by Ben.Marsh UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already. Change 3543018 by Ben.Marsh UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions. Change 3544371 by Steve.Robb Fixes to TSet_Add and TMap_Add BPs. #jira UE-47441 [CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
public static List<FileReference> CheckInputFiles(IEnumerable<FileReference> InputFiles, DirectoryReference BaseDirectory)
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
{
List<FileReference> Files = new List<FileReference>();
foreach(FileReference InputFile in InputFiles)
{
if(!InputFile.IsUnderDirectory(BaseDirectory))
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("Source file '{0}' is not under '{1}'", InputFile, BaseDirectory);
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
}
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
else if(!FileReference.Exists(InputFile))
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
{
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 4034418) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3851142 by Robert.Manuszewski When BP clustering is enabled, make sure to add the template to the BP cluster when replacing it. Change 3853797 by Ben.Marsh BuildGraph: Add a <Trace> element, which allows logging messages after the string is parsed (as opposed to the Log task, which logs them at runtime). Useful for debugging macro expansion, etc... Also add a -showdiagnostics parameter, to have diagnostic messages output even when running with the -listonly option. Change 3857540 by Graeme.Thornton Properly process the uexp file for a umap asset when generating a pak patch. Stop those uexp files being included in the patch even when they haven't changed Change 3860062 by Steve.Robb Fix for FString::Reset()'s buffer not being an empty null-terminated string (affects FString::ParseIntoArray, for example). Change 3860138 by Steve.Robb Fix for FString::ParseIntoArray() for when string memory has been allocated but has no characters. Change 3860273 by Steve.Robb Tidy up of FHotReloadClassReinstancer::FCDOWriter to not do stuff in constructors. Change 3863203 by Steve.Robb Crash fix for UObjects whose constructors are defined as = default;, which would re-null the UObject state (ClassPrivate, OuterPrivate etc.). See: https://udn.unrealengine.com/questions/412930/crash-due-to-default-constructor.html Change 3864588 by Graeme.Thornton Crypto Keys Improvements - Removed UAT command line params for encryption. Centrally configured by the editor settings now. - UAT staging now creates a small json file containing the keys and settings used for encryption and signing and stores it in the build metadata - Minor refactoring of UAT encryption processing to use the new cryptokeys json file - UnrealPak can be told to get its encryption settings from a json crypto file with the "-CryptoKeys=<filename>" - UnrealPak can now accept a "PatchCryptoKeys=<filename" parameter which gives it a filename to a cryptokeys json file that it can use to unpack the patch reference paks Change 3864691 by Robert.Manuszewski Don't add objects that are in root set to GC clusters to prevent them from keeping the clusters alive forever. Change 3864744 by Robert.Manuszewski Added the ability to get the actual filename of the log file FOutputDeviceFile writes to. Change 3864816 by Graeme.Thornton TBA: Minor formatting improvements to textasset commandlet Change 3868939 by Graeme.Thornton TBA: If -outputPath isn't supplied to TextAsset commandlet, output converted files to the {ProjectSaved}/TextAssets directory Change 3869031 by Graeme.Thornton TBA: Changed timing logs in TextAsset commandlet to be Display so we can see them in the EC log Change 3871802 by Steve.Robb Class cast flags and property flags are now visible in the debugger. Change 3871863 by Robert.Manuszewski Serializing object will now be passed to GC so that it can be logged in case the referenced objects is garbage. Change 3874413 by Steve.Robb Algo::MinElement and Algo::MaxElement, for finding the minimum and maximum element in a range, and *By versions which take projections. TRangePointerType moved to its own file and used in Algo::MinElement and Algo::MaxElement. Change 3874457 by Ben.Marsh When spawning child processes, only allow them to inherit the writable ends of the stderr and stdout pipe. Fixes an issue related to AutomationTool hanging when the editor closes after running automation tests. The editor launches ADB.EXE (Android Debug Bridge) on editor startup, which forks itself to initialize a server. Even though the child process has its own stdout and stderr pipes, it also inherits the pipes for the editor. When run from C#, as we do for automation tests, Process.WaitForExit() waits for all pipes to be closed before returning. This can't happen if the forked ADB instance still has a reference to the editor's pipes. Change 3876435 by Robert.Manuszewski Don't add root set objects to level actor container to prevent situations where clusters are kept alive forever Change 3878762 by Robert.Manuszewski Fixing potential LinkerLoad leak when a package that still has a linker associated with it is being destroyed. Change 3878850 by Robert.Manuszewski SerializePreloadDependencies will now serialize raw data into the array instead of serializing one element at a time to speed up serialization performance. Change 3881331 by Graeme.Thornton TBA: SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter Change 3886983 by Ben.Marsh UGS: Fix notification window not expanding to fit long captions. Change 3887006 by Ben.Marsh UGS: Change modal dialog to regular window style to avoid weird alignment issues under Windows 10. Change 3887500 by Ben.Marsh UGS: Add support for grouping build badges by a prefix. Badges such as "Foo:Bar1", "Foo:Bar2" will be grouped together (with "Foo:" stripped from the displayed badge names). Also add a separate column showing the type of each change, rather than including it in the CIS column, and change badges to a more angular Windows 10 style. Change 3887513 by Ben.Marsh UGS: Fix badge text drawing outside the clipping bounds. Change 3888010 by Josh.Engebretson Fix UVS logging to UnrealVersionSelector/Saved/Logs and instead use project's log path #jira none Change 3888418 by Ben.Marsh UGS: Add a cache for computed badge layout information. Improves responsiveness when redrawing. Change 3889457 by Steve.Robb GitHub #4457 : Display abbreviations properly when converting FNames to display string #jira UE-54611 Change 3889547 by Ben.Marsh UGS: Add an extensible method for adding arbitrary badges to the right of the "description" column, by running a regular expression over the changelist description. Epic uses a "#tag" style annotations in changelist descriptions and Perforce triggers to verify them. "#jira" is used to link a changelist to an issue tracked in Jira, for example. A matcher to add a badge next to every changelist with a #jira tag, and link to the corresponding issue in Jira, could be set up with an addition to the project's Build/UnrealGameSync.ini file like this: [Badges] +DescriptionBadges=(Pattern="(?i)#\\s*jira\\s*:?\\s+([A-Za-z]+-[0-9]+)", Name="$1", Group="Jira", Color="#c0c0c0", HoverColor="#e0e0e0", Url="https://jira.it.epicgames.net/browse/$1") The "Pattern" attribute specifies the regex to match, and may capture portions of the matched text to be substituted later. "Label" specifies the label to appear on the badge. "Group" specifies an arbitrary identifier used to group related badges together rather than separating them with whitespace. "Color" and "HoverColor" specify hex RGB colors for the badges. "Url" specifies the path to open with a C# Process.Open call if the badge is clicked. Change 3889726 by Ben.Marsh UGS: Fix description badges that don't have any associated URL. Change 3889995 by Ben.Marsh UGS: Fix issue where popup menus can create top level windows in the taskbar. Seemlingly caused by capturing mouse before the window has been activated - removed capture code, and replaced with handling of OnMouseLeave() event instead. Change 3890007 by Ben.Marsh UGS: Add a caption underneath the project logo which shows the current stream, to make it more obvious. Change 3890057 by Ben.Marsh UGS: Fix repainting glitch when resizing window; bounds for status panel lines was not being reset correctly. Change 3891069 by Robert.Manuszewski Fixing a crash in MallocBinned2 when running with malloc profiler enabled. Change 3891084 by Steve.Robb Back out changelist 3881331 because it's causing cook errors. Change 3891100 by Ben.Marsh UGS: Add support for a per-branch "message of the day"-style feature. Messages can be specified in a project's config file in Perforce (eg. <ProjectDir>/Build/UnrealGameSync.ini) as follows: [//UE4/Main/Samples/Games/ShooterGame.uproject] Message=:alert: Lockdown for fixes is **5pm on Friday**. Only fixes for the 2.0 release should be submitted to this branch. [34 issues](https://jira.it.epicgames.net) are remaining as of 2/15. A limited subset of Markdown is supported: [web links](http://www.google.com), *italic*, _italic_, **bold**, __bold__. Icons will be supported through :icon: syntax; the only icon currently available is :alert: Change 3891346 by Steve.Robb TSharedPtr::operator bool, and some usage of it. Change 3891787 by Steve.Robb Fix for buffer overflow in FDebug::LogFormattedMessageWithCallstack(). Change 3892379 by Ben.Marsh UGS: Fix notification window containing the group fix for each build type. Change 3892400 by Ben.Marsh UGS: Shrink the size of the alert panel. Change 3892496 by Ben.Marsh UGS: Dim badges for changes which aren't eligable for syncing. Change 3893932 by Steve.Robb Re-removal of SetShouldHandleAsWeakRef, which was originally removed in CL# 3437205. Change 3895872 by Ben.Marsh UGS: Show the stream name in tab labels by default. Change 3896366 by Ben.Marsh UGS: Automatically resize columns when the main window is resized, and allow specifying desired column widths for projects that have a large number of CIS badges. Columns are now resized proportionally, clamped to a minimum size. Columns will automatically expand up to a desired maximum size, though can be explicitly resized larger if necessary. Columns will not be resized if they are already larger than the window can show, or smaller than the window has space to show. Change 3896367 by Ben.Marsh UGS: UI tweaks - change and time columns are now centered, "Unknown" badge is displayed until a change's type has been determined, increase height of status panel. Change 3896425 by Ben.Marsh UGS: Speculative fix for race condition on clients displaying "under investigation" state. If the DB event is received before a change where an investigation is cancelled is polled from Perforce, we will exclude the resolve event from the list of active investigations. Change 3896461 by Ben.Marsh UGS: Add an option to allow setting a tint color to be applied to the status panel, to allow identifying streams more easily. To use, add a setting similar to the following to a project's Build/UnrealGameSync.ini file: [//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject] StatusPanelColor=#dcdcf0 Change 3899530 by Ben.Marsh Add unified syntax for overriding branch specific settings. Checks branch settings first, then [Default] section. Change 3901164 by Ben.Marsh UGS: Add a class to store all the resources for the status panel. Change 3901165 by Graeme.Thornton TBA: Attempt #2 at submitting the text asset saving code. SavePackage rejigged to write all header information in terms of FStructuredArchive, with all exports written through an FArchive adapter. Minimal amount of structured archive serialization functions added to allow this data to be written Change 3901301 by Ben.Marsh UGS: Add support for reading the latest version of the project config file from Perforce. Some settings should be read depending on the CL you are synced to (eg. build steps), whereas others (MOTD, branch status) should always use the latest version. Will read the local version if checked out, to allow testing local changes. Change 3902454 by Ben.Marsh UGS: Fix logo not being redrawn in the correct position when starting to sync. Change 3903416 by Ben.Marsh UGS: Group badges explicitly through INI file rather than by expecting name to contain ':'. Change 3904154 by Josh.Engebretson Adding Breakpad to ThirdParty sources (Git Commit: 49907e1c3457570f56d959ae26dec6c3a5edd417 https://chromium.googlesource.com/breakpad/breakpad) #jira UE-55442 Change 3904648 by Ben.Marsh UGS: Remove files from the workspace that are excluded by the sync filter. The user's config file stores a hash of the last sync filter. During syncing, if this hash doesn not match the previous value, we enumerate all the files in the #have list and remove anything masked out by the filter. #jira UE-47335 Change 3905442 by Steve.Robb Change of the ConvertFromType() multi-bool return value to a more descriptive enum. Some return values here do not make sense - this is because the existing logic is being preserved and will be fixed in a separate change. Change 3905629 by Ben.Marsh UGS: Fix race condition between two child processes starting on different threads, and inheriting the other's intended stdout/stderr pipes. This prevents pipes being closed when one of the child processes shuts down, and causes waits on the read ends of those pipes to continue indefinitely. Change 3906447 by Steve.Robb Rename EConvertFromTypeResult enumerators. Change 3906574 by Steve.Robb Crash fix for container conversion failure during tagged property import. Change 3909255 by Daniel.Lamb Fixed issue with DLCpackaging crashing on windows #jira UE-42880 #test EngineTest windows Change 3909270 by Steve.Robb Seek instead of skipping bad properties byte-by-byte. Change 3909324 by Steve.Robb Use switch statement instead of repeated if/else. Change 3909525 by Ben.Marsh UGS: Use the StudioEditor target when syncing content-only Enterprise projects. Change 3911754 by Daniel.Lamb Fix for building pak patches. #jira UE-55340 Change 3911942 by Robert.Manuszewski Fixing an ensure when MediaPlayer is being constructed from any thread other than the main one. Change 3913067 by Ben.Marsh UGS: Allow workspace sync filter categories to re-enable categories that are disabled by the global filter. Change 3913209 by Ben.Marsh UGS: Fix incorrect target name when compiling Enterprise projects. Change 3917358 by Steve.Robb Fix for GetLen(FString). Change 3919610 by Ben.Marsh Put data for CrashReportClient in a PAK file of its own (under Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak). There are a large number of small files required for it to run with loose files, which takes a lot of space on disk (due to cluster sizes), and is unweildy to move around. CrashReporter UFS files are tracked in a separate dictionary to regular UFS files to allow construction of the additional PAK file. Change 3921002 by Ben.Marsh UGS: Add option for syncing all projects in a branch. Off by default. Also add support for masking in additional paths to be synced (eg. one or two extra projects). Change 3921008 by Ben.Marsh UGS: Prevent pause waiting for mutual exclusivity when syncing precompiled binaries. We don't need to generate project files or build, so there's no need to wait in line. Change 3921906 by Steve.Robb New interpolation functions for quaternions. https://udn.unrealengine.com/questions/419028/quaternion-interp-to-functions.html Change 3921978 by Graeme.Thornton TBA: Make "Loader" member of FLinkerLoad private to prevent use outside of FLinkerLoad. This archive could be something unexpected if the linker is for a text asset package, so we need to stop people accessing it. Change 3924520 by Graeme.Thornton UnrealPak: Improve encryption summary log messages Change 3924522 by Graeme.Thornton UAT: Add *Encryption.ini to the list of auto-blacklisted config filenames Change 3924604 by Graeme.Thornton UnrealPak: If encryption keys are parsed and fail the encrypt/decrypt test, throw a fatal error. The exectutable will have those same keys embedded so there is no point allowing the paks to be created with broken keys. Change 3924638 by Graeme.Thornton Crypto: Improvements to parsing of old fashioned encryption.ini settings: - AES keys that are too long or short (need to be 32 bytes) will now emit a warning when being parsed, and be truncated or expanded before adding to the crypto settings. - Signing keys will emit an error when they are too long (>64bytes) - Unrealpak will still assert when invalid settings are passed via the other mechanisms (command line or -encryptionini mode). Settings via the crypto json file should now be sanitized and not cause issues #jira UE-55080 Change 3924747 by Steve.Robb Fix for degrees. Change 3925459 by Chad.Garyet Adding check to not to attempt to delete autosdk workspace if it doesn't already exist. Change 3926703 by Ben.Marsh BuildGraph: Include the path to the XML file when displaying an XML parse error. Change 3926917 by Ben.Marsh UBT: Allow overriding the name of the UE4 solution on a branch-specific basis. Useful for switching between multiple UE4 workspaces. Also add support to the editor and UGS for opening the correct solution (determined via a text file saved to Engine/Intermediate/ProjectFiles). Set the solution name using an entry in BuildConfiguration.xml as follows: <ProjectFileGenerator> <MasterProjectName>UE4_Main</MasterProjectName> </ProjectFileGenerator> Change 3927683 by Graeme.Thornton UAT: When building with chunk installs enabled, don't generate the master manifest from each pak creation thread. Just do it once after all pak files have been created. Avoids intermittent crash with multiple threads trying to write the same json file. Change 3928111 by Ben.Marsh UBT: Add an option <bMasterProjectNameFromFolder> which allows setting the solution name based on the folder that it's in. Change 3928926 by Ben.Marsh BuildGraph: Add support for enumerating content copied by the <CsCompile> task. Also add support for invoking methods on string properties. Change 3931041 by Graeme.Thornton TBA: Add option to textasset commandlet to also include engine content in a resave Change 3931043 by Graeme.Thornton TBA: Redirect some more FArchive members in FArchiveProxy Change 3931913 by Ben.Marsh UGS: Do not create a modal dialog if a scheduled sync is unable to run because the editor is open, and do not run the editor after a scheduled sync. #jira UE-47368 Change 3932419 by Ben.Marsh UGS: Allow selecting which projects to sync on schedule. Any projects not already opened at the time the schedule is triggered will be opened first. #jira UE-33541 Change 3932483 by Ben.Marsh PR #3949: UnrealGameSync: Add environment path field to custom BuildStep (Contributed by frankie-dipietro-epic) Change 3932624 by Ben.Marsh UGS: Add an error dialog when trying to clean the workspace before closing the editor. #jira UE-42308 Change 3932679 by Ben.Marsh UGS: Add the date/time to the end of the sync log. #jira UE-33540 Change 3932705 by Ben.Marsh UGS: Prompt to close the editor before allowing the user to enter a changelist to sync to, when syncing to a specific changelist. #jira UE-53182 Change 3933318 by Ben.Marsh UGS: Detect more programs running before allowing a sync to start, show a dialog listing them, and add an option to ignore if necessary. #jira UE-33535, UE-53914 Change 3933840 by Graeme.Thornton TBA: When loading assets, only use structured archive adapters for exports when loading text files. Change 3936040 by Ben.Marsh UGS: Rewrite application lifecycle to fix issues with scheduled syncs on background windows not activating, and window jumping to the front after auto-update. Now uses a custom application context to allow creating separate 'main' windows (first the "opening projects" form, then the regular form), and does not require any forms to be shown in order to be updating in the background. #jira UE-52870 Change 3940230 by Robert.Manuszewski Fixes for FilenameToLongPackageName crashes when runnign commandlets Change 3940240 by Graeme.Thornton Automated cycling of encryption and signing keys Change 3940243 by Graeme.Thornton UAT: CryptoKeys automation script Change 3940321 by Ben.Marsh UGS: Add a "Bisect" mode for regressing bugs between a certain range of changes. To use, select a range of changes by holding down the shift key or individual changes by holidng the control key, then right click and select "Bisect these changes". Individual changes in the list can be marked as "Bisect: Pass" or "Bisect: Fail" from the context menu, and syncing will find the next change in the center of the range. Change 3940538 by Ben.Marsh UBT: Always determine whether a project is a foreign project or not from the valid .uprojectdirs entries, rather than relying on the user passing -game on the command line. Change 3941285 by Gil.Gribb UE4 - Removed PRAGMA_DISABLE_OPTIMIZATION from PlatformFileCommon.h. It was an oversight. #jira none Change 3942404 by Graeme.Thornton Pak Signing: - Unify naming of pak precacher and signedarchivereader signature check functions to make it easier to search for them in crash reporter - Format the signedarchivereader output to match the pak precacher - When signedarchivereader detects a signature check, do the same master signature hash check that the pak precacher does to confirm that the .sig file contents haven't been corrupted since load. - Add PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL guarded exit to signedarchivereader signature failure - Optimization for pakprecacher signature checks. Instead of locking the cached files mutex for every decoded signature, take a local copy in blocks of 16. Only re-lock if we need more. Grab the initial batch when setting up. In most cases, reduces the number of locks to 1 per signature check call. Change 3942825 by Ben.Marsh UAT: Allow passing -Project<N>=Foo.uproject arguments to the MegaXGE commandlet (eg. -Target1="ShooterGame Win64 Development" -Project1="D:\ShooterGame\ShooterGame.uproject") so it can be used from an installed engine build. Change 3942839 by Ben.Marsh UBT: Explicitly query the number of logical processors in the system, to fix Environment.ProcessorCount just returning the number available to the .NET framework. For machines with > 64 cores, processors in a different processor group will not be included in this number. Change 3943153 by Ben.Marsh Use the correct logical processor count in ParallelExecutor. Change 3943210 by Ben.Marsh UGS: Add an option to the editor arguments window that allows prompting before launching the editor. Change 3943329 by Ben.Marsh UGS: Tweak appearance of bisect mode; now shows slightly transparent version of pass/fail icons, and includes remaining CL range in status panel. Change 3944294 by Ben.Marsh UGS: Prompt for confirmation before removing any files from the workspace. Change 3945283 by Ben.Marsh UGS: Add support for project-specific connection settings, and detection of Perforce login tickets expiring. Change 3945325 by Ben.Marsh PR #4558: Changed incorrect obsolete message for ReceiptPropertyList in Modules.cs (Contributed by ryanjon2040) Change 3947359 by Graeme.Thornton TBA: Fixes to loading code to allow bulk data to get a pointer from its loader archive to an archive that it can load from at a later date. For binary archives, this is just a pointer back to the same archive, but for text assets it is a pointer to a "child reader" which maintains its own structured archive that is scoped to the current location in the file. Change 3947360 by Graeme.Thornton TBA: Added RoundTrip mode to text asset commandlet. Performs determinism tests in project assets to see whether they save deterministically to binary and text files, and also when they are ping-ponged between the two formats. Change 3949431 by Graeme.Thornton TBA: Refactored string escaping code in json output formatter FString serializer into a common function which is now used by FName and UObject path serialization too. Fixes some odd cases where an FName contained quotation marks Change 3950843 by Ben.Marsh UBT: Add a better error if an XML config file is corrupt. Change 3952504 by Steve.Robb GitHub #4545 : UE-55924: CaseSensitive token recognition #jira UE-55961 #jira UE-55924 Change 3952707 by Graeme.Thornton Make RandInit(...) log message verbose Change 3954694 by Ben.Marsh BuildGraph: Add support for user-defined macros, which can contain a list of buildgraph commands and be expanded within a node. Example script in Engine/Build/Graph/Examples/Macros.xml. To define a Macro, use the syntax: <Macro Name="MyTestMacro" Arguments="PrintFirstMessage;PrintSecondMessage" OptionalArguments="PrintThirdMessage"> <Log Message="First message" If="$(PrintFirstMessage)"/> <Log Message="Second message" If="$(PrintSecondMessage)"/> <Log Message="Third message" If="'$(PrintThirdMessage)' == 'true'"/> </Macro> To expand a macro, use the syntax: <Expand Name="MyTestMacro" PrintFirstMessage="true" PrintSecondMessage="true"/> An error will be thrown if any required arguments are missing. Optional arguments default to empty if not specified. Tasks within a macro are validated by the schema at the point of definition using the same rules as apply to a <Node> element, but properties are not evaluated until the macro is expanded. This allows macros to get and set properties in scope at the point that it is expanded. Local properties that are introduced within a macro do not otherwise leak to the scope that they are expanded. Change 3954695 by Ben.Marsh PR #4582: Fixed incorrect condition in StagedFileSystemReference.cs (Contributed by moadib) #jira UE-56283 Change 3954961 by Ben.Marsh UBT: Fix issues caused by toolchain assuming that the editor target will be the name of the project with an "Editor" suffix. This is not necessarily the case; the launcher will allow you to instantiate a project with any name, and it will not rename the target files. #jira UE-56040 Change 3955785 by Steve.Robb GitHub #4546 : Don't discard errors from zlib inflate #jira UE-55969 Change 3955940 by Steve.Robb Redundant and confusing macro check removed. Change 3956809 by Ben.Marsh Guard against project paths passed on the command line to UBT being treated as project names. Previous code used to just take the first, which would mask this problem. Change 3959590 by Steve.Robb Useless IsIntrinsic constant and COMPILED_IN_INTRINSIC macro removed. Change 3959864 by Robert.Manuszewski Increasing the size of permanent object pool to fix warnings in cooked ShooterGame #jira UE-56001 Change 3960956 by Steve.Robb New ToCStr function which generically gets a TCHAR* from a 'string-like' argument. Change 3963628 by Ben.Marsh UBT: Fix intellisense issues caused by _API macros being defined as DLLIMPORT (imported symbols cause an error if they are defined). Generate intellisense macros with the -Monolithic argument to work around it. Change 3964349 by Ben.Marsh Move support for reading .modules files into FModuleManager, and always use it in modular builds. Pathway which discovers modules by filename only is no longer supported for simplicity, and due to platform-specific version checks being unreliable on any platforms other than Windows. Change 3964821 by Ben.Marsh Use a custom tool for deleting directories on Windows, to handle paths longer than MAX_PATH correctly. Change 3965269 by Ben.Marsh Add more [RequiresUniqueBuildEnvironment] attributes to target settings that modify the global environment. Change 3966554 by James.Hopkin #core Removed redundant cast Change 3966558 by James.Hopkin #core Removed redundant casts and changed some MakeShareables to MakeShared #robomerge #fortnite Change 3966754 by Ben.Marsh Always use the compiled-in app name when looking for a module manifest. Fixes issues with XGEControlWorker.exe being a renamed copy of ShaderCompileWorker.exe. Change 3967397 by Ben.Marsh Fix "copy local" files not being included in build products enumerated from C# projects. Remove files with "Embed Interop Types" from the output list. Change 3967664 by Ben.Marsh Update UGS solution to use Visual Studio 2017. Change 3967838 by Ben.Marsh Couple of fixes to conform scripts. Change 3968767 by Ben.Marsh Compile the name of the module manifest into the executable via a define explicitly set by UBT, rather than guessing at runtime. Change 3968771 by Ben.Marsh Fix compiled-in engine path being subject to macro expansion. #jira UE-56504 Change 3968886 by Robert.Manuszewski Merging 3914301: Remove any references we had added to the GGCObjectReferencer during Init Change 3968978 by Steve.Robb FString->FName fixes for module names in HotReload. Change 3969019 by Steve.Robb Minor refactor of property skipping logic in SerializeTaggedProperties(). Change 3969041 by Steve.Robb Simplification of Build.version filename construction. Change 3969049 by Steve.Robb Always do rolling names when recompiling in editor, because an unloaded module may still actually by loaded-but-abandoned by the executable. This also removes HotReload's dependence on FModuleManager::GetCleanModuleFilename(). #jira UE-52405 Change 3969120 by Ben.Marsh Enable errors for using undefined identifiers in conditional expressions by default. Change 3969161 by Ben.Marsh Remove log line that should only be included in the log. Change 3969216 by Steve.Robb Dump a list of module names - rather than DLL filenames - when the editor detects modules which need recompiling. This removes the only remaining use of FModuleManager::GetCleanModuleFilename(), which is also now removed. #jira UE-52405 Change 3969346 by Steve.Robb Missed some bad FScript(Map/Set)Helper usage from CL# 3698969. Change 3969598 by Ben.Marsh Fix warning from VS2017. Change 3971101 by Graeme.Thornton TBA: Added RoundTrip mode to TextAsset commandlet which does a sequence of saves and checks for determinism. It will do 3 binary saves, 3 text saves, then 3 alternate binary->text saves. Change 3971407 by Ben.Marsh UBT: Fix exception when enumerating toolchains if the directory does not exist yet. Change 3971523 by Graeme.Thornton Make compressed block offsets in a pak file store offsets relative to the file header, rather than absolute. Reduces the amount of entropy when data changes in the pak file, making it play nicely with patching Change 3971613 by Ben.Marsh Fix Lightmass non-unity compile errors. Change 3971649 by Ben.Marsh Disable optimization around FTickerObjectBase constructor on Win32 due to ICE. Change 3971829 by Ben.Marsh Fix deprecated header warning from PVS Studio. Change 3972503 by Ben.Marsh Changes to build failure notifications: * Only people that submitted between builds with different error messages will be included on emails by default. * Email subject line will be different for each failing build step, but will include the CL of the first failing step. This will result in one thread for each build failure (a success email is sent with the same subject line). * Anyone that starts a build will be included on all failure emails. Change 3972732 by Ben.Marsh Changes to ensure notification messages are stable. Change 3972810 by Ben.Marsh Write debug information about the digest computed for a change, to assist with debugging it if it's not stable. Change 3973331 by Ben.Marsh Fix missing dependency on linker response file. Prevents target being relinked when build environment changes. Change 3973343 by Ben.Marsh PR #4612: Adding support for PVS-Studio settings file to PVS-Studio Unreal Build Tool toolchain. (Contributed by PaulEremeeff) Change 3973820 by Ben.Marsh Fix incorrect error message when unable to find Visual C++ install directory. Change 3974295 by Robert.Manuszewski Made sure that lazy object pointers are only fixed up for PIE in actual PIE worlds. Change 3975336 by Robert.Manuszewski CIS fix after the last merge from main Change 3976999 by Ben.Marsh Move the Windows stack size settings onto the WindowsTargetRules object, and add the [RequiresUniqueBuildEnvironment] attribute to ensure it's not overwritten incorrectly. This should cause CIS to better errors for compiling Odin editor. Change 3977934 by Ben.Marsh UBT: Allow setting additional compiler/linker arguments through properties on the TargetRules object. Change 3977953 by Ben.Marsh UBT: Enumerate all Visual Studio 2017 install locations using the Visual Studio Setup interop SDK. Multiple simultaneous Visual Studio installations are now supported, and using registry keys to determine installation directories has been deprecated. Allows choosing toolchains from preview versions as well as full versions. Change 3978544 by Ben.Marsh UBT: Include verbose timing information from compiler frontend if using VS2017 15.7 preview 2 or later. Change 3978780 by Ben.Marsh Add Visual C++ 2017 redist files to AppLocalDependencies, and update the prereq installer to include 2017 support DLLs. Change 3979313 by Ben.Marsh UBT: Add the EngineDirectory property to ModuleRules. Makes it easier to find paths to files under the engine folder. Change 3980499 by Ben.Marsh UBT: Automatically enable /DEBUG:FASTLINK if we're using the VS2017 15.7 toolchain or newer and not doing a formal build. This contains fixes for debugger OOM issues present in older versions. Change 3980890 by Ben.Marsh UBT: Update project file generator to support VS2017 solution options file; fixes C# projects being opened by default when generating new project files. Change 3981495 by Ben.Marsh Do not include embedded interop assemblies in the list of references required by a C# project; they are not required build products. #jira UE-54343 Change 3982157 by Ben.Marsh Only output a warning message if BuildConfiguration.xml schema validation fails; we may have settings that only apply to code in another branch. Change 3982239 by Ben.Marsh Update tooltip directing users to install Visual Studio 2017 instead of 2015. Change 3983395 by Graeme.Thornton Fix reference to BUILD_VERSION in BootstrapPackagedGame RC file Change 3983523 by Graeme.Thornton Backwards compatibility for pak files with compressed chunk offsets Change 3983769 by Ben.Marsh UAT: Allow using PDBCOPY.EXE installed as part of the Windows 10 SDK to strip symbols, and add a better message if it can't be found. Change 3984529 by Ben.Marsh BuildGraph: When run with the -Preprocess=... argument, no steps will be executed. Change 3984557 by Ben.Marsh BuildGraph: Return the updated patterns from FilePattern.CreateMapping(), so we can print accurate messages when displaying the source and target directories for a copy or move task. Change 3986520 by Ben.Marsh Remove hacks to uniquify response file name on Android and Linux. Change 3987166 by Steve.Robb Allow overloading of functions which take TFunctions or TFunctionRefs with mutually exclusive signatures. Change 3989061 by Graeme.Thornton TBA: Text asset loading/saving work - Start using FStructuredArchive flavours of UObject Serialize functions when loading and saving exports. - Only use FStructuredArchive interface for text assets, and for classes that have the CLASS_MatchingSerializers which tells us that the class can serialize to both FStructuredArchives and FArchives. - Add GetCacheableArchive to FArchive, which allows transient archives to return a pointer to another archive that will outlive it. Used by bulk data to get a pointer to an archive that can be held and used at a later time to lazy load things. For text assets where the bulk data might be held inside a base64 encoded FArchiveFromStructuredArchive block, we can't dynamically seek back to that location after the on-stack wrapper has been destroyed after the original serialize, so this will return null. For binary assets, we just return a pointer to the same binary archive which can be used freely. Change 3989109 by Graeme.Thornton TBA: TextAsset commandlet emits a warning when binary package determinism fails Change 3990823 by Ben.Marsh UGS: Allow project settings to specify a client path rather than a filesystem path. Not currently usable through UI. Change 3990832 by Ben.Marsh UGS: Make the schedule window resizable. Change 3991569 by Steve.Robb GitHub #4636 : Fixed typo in HeaderParser.cpp for "missed WithValidation keyword" error message Change 3991970 by Steve.Robb Fix for 4096 char limit on FParse::Value. Change 3992222 by Steve.Robb Advice added to the coding standard for using default member initializers. Change 3993675 by Ben.Marsh UGS: Add UI to allow creating new workspaces and selecting projects from existing workspaces that are not currently synced. Change 3994199 by Ben.Marsh UGS: Fix child processes being unable to spawn other child processes with the CREATE_BREAKAWAY_FROM_JOB flag, to add them to their own job objects. In Windows 7 or earlier job objects cannot be nested, so child processes have to create separate job objects and spawn processes with CREATE_BREAKAWAY_FROM_JOB to be able to add them. This fails unless parent process' job object was created with JOB_OBJECT_LIMIT_BREAKAWAY_OK. Discussed here: https://msdn.microsoft.com/en-us/library/windows/desktop/hh448388(v=vs.85).aspx Change 3994243 by Ben.Marsh UGS: Use the select stream dialog instead of displaying a drop list unless there's a stream filter specified. We have way too many streams for this to be useful in a menu unless it's filtered. Change 3994260 by Ben.Marsh UGS: Tweak the stream filter dialog to only use the previous selected node if the filter terms match. It may be a parent node of something that matches, even though it doesn't match itself. Change 3994350 by Ben.Marsh UGS: Automatically guess the correct root path for new workspaces based on the most common existing workspaces for the current user. Change 3995159 by Ben.Marsh UGS: Do not delete files which are outside the sync filter. People expect to be able to sync different projects within a stream without having to update sync filters. Indend to re-introduce this functionality through the manual 'clean workspace' operation. Change 3995169 by Ben.Marsh UGS: Show options as dimmed in the open project dialog, if the radio button for those controls is not checked. Automatically set the radio button if the focus is given to one of those controls. Change 3995228 by Ben.Marsh UGS: Update recently opened projects list when editing project for an existing tab. Change 3995312 by Ben.Marsh UGS: Stop showing all dialogs in the taskbar. Change 3995929 by Robert.Manuszewski Completely rewritten FReferenceChainSearch class used by 'obj refs' command. - 3+ times faster - Uses the same code as GC to track all the references down - Actually reports all reference chains properly - Less code that is more readable than the previous version Change 3995981 by Ben.Marsh UGS: Clean workspace window will now force-sync files that have been deleted or which are writable. Change 3996113 by Ben.Marsh UGS: Fix crash upgrading config files from older versions. Change 3997990 by Ben.Marsh UGS: Prevent error when syncing an empty workspace. Change 3998095 by Ben.Marsh UGS: Change logic for dealing with job objects: rather than creating breakaway jobs (requires co-operation with spawning process), always try to use nested job objects (requires Windows 8.1+). If it fails, ignore the error if we're already part of a job. Also forcibly terminate the process on dispose to handle cases where the job object wasn't created. Change 3998264 by Ben.Marsh UGS: Fix exception when switching projects in-place. Change 3998643 by Ben.Marsh Fix shared DDC not being used for installed engine builds. #jira UE-57631 Change 4000266 by Ben.Marsh UnrealPak: Add an option that allows rebuilding a set of PAK files with different settings. Usage is: UnrealPak [PakFile] -Repack [-Output=FileOrDirectory] [Options] The input pak file may be a single file or wildcard, and is overwritten unless the -Output parameter is specified. Change 4000293 by Ben.Marsh Add a compression flag that allows selecting compressor without using the default platform implementation. Change 4000315 by Ben.Marsh Add support for custom compressors implemented via modular features. Specify -compressor=<PathToDll> on the command line to UnrealPak to load a compressor from an external DLL. Change 4000610 by Ben.Marsh UnrealPak: Add a parameter for compression block size (-compressionblocksize=XXX). Accepts arguments with MB/KB suffixes, as well as byte counts. Change 4000627 by Ben.Marsh UBT: Include enabled plugin info in the UBT log. Change 4000793 by Ben.Marsh UBT: Remove some member variables from VCEnvironment that don't need to be stored. Change 4000909 by Ben.Marsh UBT: Add VS2017 installations to the list of paths checked for MSBuild installations. Change 4001923 by Ben.Marsh UBT: Allow any plugins which are enabled by default to be included in the enabled list, even if they don't have any modules for the current platform. This changes the build-time logic to match the runtime logic. At some point in the future we may add a separate SupportedHostPlatforms list to each plugin to do this explicitly, rather than guessing via the per-module whitelist. Change 4001927 by Ben.Marsh Fixes for compiling against the Windows 10 SDK. Change 4002439 by Robert.Manuszewski Added TDefaultReferenceCollector and FSimpleReferenceProcessorBase to extract common code for clients of TFastReferenceCollector Change 4003508 by Ben.Marsh UGS: Fix new workspaces not having the correct owner and host set. Change 4003622 by Ben.Marsh UGS: Add support for "skipped" as a build result. Change 4004049 by Robert.Manuszewski Significantly improved performance of Reference Chain Search for objects that are nested deep in the object hierarchy Change 4005077 by Ben.Marsh UGS: Update version number. Change 4005112 by Ben.Marsh UBT: Reduce number of times a target has to be constructed while generating project files. Change 4005513 by Ben.Marsh UBT: Reduce number of checks for directories existing when adding include paths to a module. Accounted for 40% of runtime time when generating project files. Change 4005516 by Ben.Marsh UBT: Add warnings whenever a module adds an include path or library path that doesn't exist Change 4006168 by Ben.Marsh CIS fixes. Change 4006236 by Ben.Marsh UGS: Populate the workspace name/root directory text box with the cue banner when focus moves to the control. Change 4006266 by Ben.Marsh UGS: Swap around the new workspace/existing file boxes on the open project dialog. Change 4006552 by Ben.Marsh If staging fails because a restricted folder name is found, include a list of them in the error message. Change 4007397 by Steve.Robb Comments added to make it clear that GetAllocatedSize() only counts direct allocations made by the container. Change 4007458 by Ben.Marsh UBT: Change RPC utility to abort early, rather than continue to try to build even though SSH init failed. Change 4009343 by Ben.Marsh UGS: Set the rmdir option on new workspaces by default. Change 4009501 by Ben.Marsh UBT: Add Windows include paths to the compiler command line, rather than setting through environment variables. This ensures that incremental builds work correctly when SDK versions change. Change 4009509 by Ben.Marsh UBT: Check in a non-versioned directory under the Windows 10 SDK for the resource compiler. Change 4010543 by Ben.Marsh Remove the "Device" and "Simulator" platform groups, because they're unused and overly generic for folder names. Also remove source code for the HTML5 simulator (which is no longer supported). Change 4010553 by Ben.Marsh UAT: Include platform groups in restricted folder names when staging. Change 4012030 by Ben.Marsh UGS: Increase the size of the main window, and set the current stream as the default when creating a new workspace. Change 4012204 by Chad.Garyet - Cleanup to get the POSTs returning 400s the same way the GETs would (now no longer returns the exception text) - Create directory for sqlite db if it doesn't exist #jira none Change 4014209 by Brandon.Schaefer New changes in breakpad dump_syms to allow for producing a symbol file for elf files on windows #review-3998840 @Arciel.Rekman, @Ben.Marsh, @Josh.Engebreston, @Anthony.Bills Change 4015606 by Brandon.Schaefer Missed a code project that needed updating for new Breakpad changes for Mac Change 4017795 by Robert.Manuszewski GC assumption verification should now be 3-4x faster. - Refactored Disregard For GC to use TFastReferenceCollector - Move both Disregard For GC and Cluster verification code to separate source files Change 4020381 by Ben.Marsh Add link to the new official doc page for UnrealGameSync. Change 4020665 by Ben.Marsh UBT: Prevent plugins being precompiled if they don't support the current target platform. Change 4021829 by Ben.Marsh Update message about downloading a new version of Visual Studio. Change 4022063 by Ben.Marsh UBT: Suppress toolchain output when generating project files. Change 4023248 by Ben.Marsh Install an unhandled exception filter to ensure we get crash reports from threads that are not spawned by the engine. At the moment, we only receive crashes that are routed through ReportCrash() via our structured exception handlers in WinMain() and FRunnableThreadWin::Run(). (Also fix an exception within the exception handler, if GError has not been created yet) Change 4025759 by Ben.Marsh Fix universal CRT include paths not being added to compile environment for VS2015. Change 4026002 by Ben.Marsh UBT: Check the old registry locations for the Windows SDK installation directory. Change 4026068 by Ben.Marsh UBT: Use the correct compiler version in the error message for not having the UCRT. Change 4026181 by Ben.Marsh Fix DebugGame editor configurations not enumerating modules correctly. #jira UE-58153 Change 4026285 by Ben.Marsh UBT: Add additional logging for enumerating Windows SDKs. Change 4026708 by Ben.Marsh UBT: Keep a separate list of installed Universal CRT versions to the list of Windows 10 SDK versions. It's possible to install C++ support without the Windows 10 SDK, which still includes UCRT files in Windows 10 SDK folders. Change 4029404 by Ben.Marsh Remove incorrect include paths to fix CIS warnings. Change 4031517 by Steve.Robb Fix for UHT errors not being clickable in the Message Log. #jira UE-58173 Change 4031544 by Ben.Marsh Fix errors building asset catalog for IOS due to modifying shared build environment. #jira UE-58240 Change 4032227 by Ben.Marsh BuildGraph: Print out a warning message when trying to submit without the -Submit argument in BuildGraph. Change 4032262 by Ben.Marsh BuildGraph: Remove the need to copy files to the staging directory in BuildEditorAndTools.xml. Change 4032288 by Ben.Marsh Remove UFE from the BuildEditorAndTools script. Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3838569 by Steve.Robb Algo moved up a folder. Change 3848581 by Robert.Manuszewski Changing the UObjectArray to not be allocated up front but in 64K-FUObjectItem chunks. This is to fix strange OOM reports on editor startup where it's trying to allocate space for 1M+ FUObjectItems. #jira UE-49446 Change 3864743 by Steve.Robb Fix for buffer overrun when copying a context string. Fix for being unable to link to MallocLeakDetection. Fix to prefix for FMallocLeakDetection::ContextString. New MALLOCLEAK_SCOPED_CONTEXT macro to push/pop a context string. Overload for const TCHAR* added to FMallocLeakDetection::PushContext to save on redundant memory allocations. #jira UE-54612 Change 3865020 by Graeme.Thornton TBA: Changed FIELD_NAME macro to FIELD_NAME_TEXT so that FIELD_NAME can be used for non-literal name definitions Change 3869550 by Josh.Engebretson New SymGen and SymUpload tasks (ShooterGame usage example) Example C# symbolicator (using saved crash and data router formats) Updates for stack walking and crash runtime xml on Windows/Mac Change 3905453 by Steve.Robb USE_TUPLE_AUTO_RETURN_TYPES moved to PLATFORM_COMPILER_HAS_DECLTYPE_AUTO. Change 3910012 by Ben.Marsh UGS: Show an error window and allow setting default P4 server settings if syncing UGS fails. Change 3920044 by Graeme.Thornton TBA: Text asset loading * Added a structured archive layer to FLinkerLoad * Wrapped export loading in a ArchiveUObjectFromStructuredArchive * Updated TextAssetCommandlet to have a "loadtext" mode which will try to load every text asset in the project content * Changed text asset extensions to .utextasset and .utextmap. Couldn't go with the favourite .uasset.json because our various path functions (FPaths::GetCleanFilename etc.) will only strip one layer of extension, so leave a bogus filename. * Relaxed a few checks in structured archive where it was checking for field reentrance, which isn't a problem for loading. * Changed FArchiveFromStructuredArchive to not load all referenced objects at construction time. This introduced some changes to load order which don't work in the engine. Object names are resolved at the point that a reference to them is serialized from the main data block, same as with legacy archives. Change 3921587 by Steve.Robb Static asserts inside ensureMsgf() macros to prevent them being passed invalid arguments or non-literal formatting strings. Fixes for various misuses. #jira UE-55681 Change 3942873 by Ben.Marsh UBT: Allow link time code generation on any configurations where bAllowLTCG is set to true. Microsoft platforms were previously only allowing this option in shipping; the target can decide when to enable it or not. Change 3944629 by Graeme.Thornton Merging back a couple of fixes from Fortnite - Extra parenthesis around some calculations in the pakprecacher - Changed FChunkCacheWorker::DoSignatureCheck() back to ::CheckSignature() - Added documentation for build script crypto options Change 3945381 by Ben.Marsh Disable warning C4770 on Windows (partially validated enum 'xxx' used as index), which occurs when enabling LTCG. Can't find a reference online for this warning, but I suspect it's due to LTCG allowing the compiler to trace code paths where we don't validate that an enum is a known value. Change 3968969 by Steve.Robb Fixes to incorrect uses of FScriptMapHelper and FScriptSetHelper, which weren't accounting for gaps in the sparse array. Change 3969417 by Ben.Marsh Make Visual Studio 2017 the default compiler for UE4 projects, and add support using Visual C++ toolchains from an AutoSDKs. Also add support for selecting a specific toolchain version to use through the WindowsPlatform.CompilerVersion property, which can be configured via a Target.cs files or BuildConfiguration.xml (eg. <WindowsPlatform><CompilerVersion>14.13.26128</CompilerVersion></WindowsPlatform). As well as allowing a specific version number, you can always use the latest toolchain by setting it to "Latest". Change 3972443 by Ben.Marsh Change build scripts to allow running any steps on non-compile workspaces. Setup Dev-Core to just use a non-compile Win64 workspace for everything. Change 3977198 by Ben.Marsh Remove INI file override for editor stack size on Windows. This is rarely valid since editor targets share build products with other games by deafult. Fix to add linker response file as prerequisite exposed targets overriding this as a bug. Change 3979632 by Ben.Marsh Consolidate codepaths for embedding versioning information in the engine. Engine/Build/Build.version is now the authoritative place to read version information; Engine/Source/Runtime/Launch/Resources/Version.h no longer includes macros for the current branch and changelist. * Settings from Build.version are compiled into the (tiny) BuildSettings module via macros set in BuildSettings.build.cs, which is used to initialize version information inside the engine at runtime. * The IsPromotedBuild value is now set to zero by default (but set to 1 by the UpdateLocalVersion UAT command). * The -Licensee argument to the UpdateLocalVersion UAT command, and the IsLicenseeVersion setting for UnrealGameSync, is determined automatically by looking for the Engine/Build/NotForLicensees/EpicInternal.txt file. This path is not visible to licensees. Change 3981738 by Ben.Marsh Move utility classes for filtering files and matching wildcards into DotNETUtilities. Change 3983888 by Steve.Robb Warning C4868 disabled, about evaluation order of braced initializer lists. https://udn.unrealengine.com/questions/426081/help-with-error-c4868-braced-initializers.html Change 3984019 by Steve.Robb FString::Printf formatting argument checking added. Vararg support for FText::Format. All remaining usage fixed. Change 3985502 by Steve.Robb Change to TFunction debugger visualization to allow right-clicking on the [Lambda] and selecting 'Go To Source Code'. Change 3985999 by Graeme.Thornton TBA: Serialize function generation for FArchive and FStructuredArchive overloads on a UObject, using UHT. - Adds a restriction that UObject::Serialize() functions MUST be declared outside of any conditional compilation directives, except for WITH_EDITORONLY_DATA Change 3986461 by Ben.Marsh Fixup lots of platforms not adding response files as a prerequisite. This can cause incremental builds to fail if input files/compile arguments change, because the action graph does not know that the response file being updated invalidates the build artifacts. Change 3990081 by Ben.Marsh Remove custom output formatters for errors and warnings. These are not well supported by different executors, and cause fences between actions with the same formatter with external executors like XGE. Clang supports -fdiagnostics-format=msvc for all platforms, which should do a better job than our crude attempts at regexing errors (causing botched output in some cases). Change 3996714 by Chad.Garyet UGSRestAPI, conversion of UGS to use it. #jira none Change 4008287 by Ben.Marsh UBT: Change the engine to use the Windows 10 SDK by default. Also add support for switching between specific Windows SDK versions. The WindowsPlatform.WindowsSdkVersion property in the target rules can be used to select a desired version, which can also be configured by the <WindowsPlatform><WindowsSdkVersion>Foo</WindowsSdkVersion></WindowsPlatform> parameter in the BuildConfiguration.xml file. The version of Windows to target (ie. the WINVER macro) can be modified by setting WindowsPlatform.TargetWindowsVersion. The default is 0x0601 (Windows 7). Change 4008516 by Chad.Garyet - Adding support for both SQLite and MsSql - API now reads from only MsSql, but writes to both - Added support for POST to CIS for badges - PostBadgeStatus now writes out via API Url rather than a direct connection to the DB #jira none Change 4010296 by Chad.Garyet Moving SQLite db initilization into Application_Start. An exception thrown creating or seeding the db will unload the entire AppDomain and all pages will return a 404. #jira none Change 4024045 by Ben.Marsh Set the list of supported target platforms for OnlineSubsystemGameCircle. #jira UE-57887 Change 4031014 by Ben.Marsh UAT: Add a WhitelistDirectories list in DefaultEngine.ini, which allows specifying folders that can be staged despite having restricted folder names. [CL 4034515 by Ben Marsh in Main branch]
2018-04-26 14:11:04 -04:00
throw new FilePatternException("Source file '{0}' does not exist", InputFile);
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
}
else
{
Files.Add(InputFile);
}
}
return Files;
}
/// <summary>
/// Formats the pattern as a string
/// </summary>
/// <returns>The original representation of this pattern</returns>
public override string ToString()
{
return BaseDirectory.ToString() + Path.DirectorySeparatorChar + String.Join("", Tokens);
}
}
}