Files
UnrealEngineUWP/Engine/Source/Programs/UnrealBuildTool/IOS/IOSToolChain.cs

1700 lines
72 KiB
C#
Raw Normal View History

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Diagnostics;
using System.Security.AccessControl;
using System.Xml;
using System.Text;
using Ionic.Zip;
using Ionic.Zlib;
namespace UnrealBuildTool
{
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
class IOSToolChainSettings : AppleToolChainSettings
{
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
/// <summary>
/// Which version of the iOS SDK to target at build time
/// </summary>
[XmlConfigFile(Category = "IOSToolChain")]
public string IOSSDKVersion = "latest";
public readonly float IOSSDKVersionFloat = 0.0f;
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
/// <summary>
/// Which version of the iOS to allow at build time
/// </summary>
[XmlConfigFile(Category = "IOSToolChain")]
public string BuildIOSVersion = "7.0";
/// <summary>
/// Directory for the developer binaries
/// </summary>
public string ToolchainDir = "";
/// <summary>
/// Location of the SDKs
/// </summary>
public readonly string BaseSDKDir;
public readonly string BaseSDKDirSim;
public readonly string DevicePlatformName;
public readonly string SimulatorPlatformName;
public IOSToolChainSettings() : this("iPhoneOS", "iPhoneSimulator")
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -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
protected IOSToolChainSettings(string DevicePlatformName, string SimulatorPlatformName) : base(true)
{
XmlConfig.ApplyTo(this);
this.DevicePlatformName = DevicePlatformName;
this.SimulatorPlatformName = SimulatorPlatformName;
// update cached paths
BaseSDKDir = XcodeDeveloperDir + "Platforms/" + DevicePlatformName + ".platform/Developer/SDKs";
BaseSDKDirSim = XcodeDeveloperDir + "Platforms/" + SimulatorPlatformName + ".platform/Developer/SDKs";
ToolchainDir = XcodeDeveloperDir + "Toolchains/XcodeDefault.xctoolchain/usr/bin/";
// make sure SDK is selected
SelectSDK(BaseSDKDir, DevicePlatformName, ref IOSSDKVersion, true);
// convert to float for easy comparison
IOSSDKVersionFloat = float.Parse(IOSSDKVersion, System.Globalization.CultureInfo.InvariantCulture);
}
}
class IOSToolChain : AppleToolChain
{
protected IOSProjectSettings ProjectSettings;
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
public IOSToolChain(FileReference InProjectFile, IOSProjectSettings InProjectSettings)
: this(CppPlatform.IOS, InProjectFile, InProjectSettings, () => new IOSToolChainSettings())
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
{
}
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
protected IOSToolChain(CppPlatform TargetPlatform, FileReference InProjectFile, IOSProjectSettings InProjectSettings, Func<IOSToolChainSettings> InCreateSettings)
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
: base(TargetPlatform, UnrealTargetPlatform.Mac, InProjectFile)
{
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
ProjectSettings = InProjectSettings;
Settings = new Lazy<IOSToolChainSettings>(InCreateSettings);
}
// ***********************************************************************
// * NOTE:
// * Do NOT change the defaults to set your values, instead you should set the environment variables
// * properly in your system, as other tools make use of them to work properly!
// * The defaults are there simply for examples so you know what to put in your env vars...
// ***********************************************************************
// If you are looking for where to change the remote compile server name, look in RemoteToolChain.cs
/// <summary>
/// If this is set, then we don't do any post-compile steps except moving the executable into the proper spot on the Mac
/// </summary>
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
[XmlConfigFile]
public static bool bUseDangerouslyFastMode = false;
/// <summary>
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
/// The lazily constructed settings for the toolchain
/// </summary>
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
private Lazy<IOSToolChainSettings> Settings;
/// <summary>
/// Which compiler frontend to use
/// </summary>
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
private const string IOSCompiler = "clang++";
/// <summary>
/// Which linker frontend to use
/// </summary>
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
private const string IOSLinker = "clang++";
/// <summary>
/// Which library archiver to use
/// </summary>
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
private const string IOSArchiver = "libtool";
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
public static List<FileReference> BuiltBinaries = new List<FileReference>();
/// <summary>
/// Additional frameworks stored locally so we have access without LinkEnvironment
/// </summary>
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
public static List<UEBuildFramework> RememberedAdditionalFrameworks = new List<UEBuildFramework>();
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
public override void ModifyBuildProducts(ReadOnlyTargetRules Target, UEBuildBinary Binary, List<string> Libraries, List<UEBuildBundleResource> BundleResources, Dictionary<FileReference, BuildProductType> BuildProducts)
{
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 (Target.bCreateStubIPA && Binary.Config.Type != UEBuildBinaryType.StaticLibrary)
{
FileReference StubFile = FileReference.Combine(Binary.Config.OutputFilePath.Directory, Binary.Config.OutputFilePath.GetFileNameWithoutExtension() + ".stub");
BuildProducts.Add(StubFile, BuildProductType.Executable);
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 (CppPlatform == CppPlatform.TVOS)
{
FileReference AssetFile = FileReference.Combine(Binary.Config.OutputFilePath.Directory, "Assets.car");
BuildProducts.Add(AssetFile, BuildProductType.Executable);
}
}
}
/// <summary>
/// Adds a build product and its associated debug file to a receipt.
/// </summary>
/// <param name="OutputFile">Build product to add</param>
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
/// <param name="OutputType">Type of build product</param>
public override bool ShouldAddDebugFileToReceipt(FileReference OutputFile, BuildProductType OutputType)
{
return OutputType == BuildProductType.Executable;
}
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
string GetCompileArguments_Global(CppCompileEnvironment CompileEnvironment)
{
Copying //UE4/WEX-Staging to Dev-Main (//UE4/Dev-Main) =================== MAJOR FEATURES + CHANGES =================== Change 3123735 on 2016/09/13 by Josh.Markiewicz #UE4 - added FNames for some common online features to be refactored later #codereview david.nikdel Change 3123608 on 2016/09/13 by Josh.Markiewicz #OSS - refactor FUniqueNetIdRepl to derive from FUniqueNetIdWrapper and clean up redundant code #codereview david.nikdel Change 3120074 on 2016/09/09 by David.Nikdel #Analytics: Move log message to more correct location Change 3120073 on 2016/09/09 by David.Nikdel #Analytics: Adjustments to ET.DroppedSubmission per Wes's feedback - Don't try to restore events at all if caching is disabled (but do log the error) - Stop accumulating events (even the ET.DroppedSubmission event) at 1024 cached to defend against run away accumulation #CodeReview: Wes.Hunt Change 3119959 on 2016/09/09 by Peter.Sauerbrei update to engine to provide the generic chunk install when one is not implemented or requested #rb none Change 3119378 on 2016/09/09 by David.Nikdel #Analytics #ET: Added a config option to not drop events in the event of a failure to flush. - Events are re-added to the queue (may result in some reordering but timestamps will still be there) in the event of a failure - Also appending an ET.DroppedSubmission event in this case so we can track how often clients fail. Has HTTP_STATUS and URL attributes. - Events accumulate within a given application run but no attempt is made to persist across crashes etc. #CodeReview: Wes.Hunt Change 3118773 on 2016/09/08 by Peter.Sauerbrei bring over fix for missing debug information in IOS executables #rb none Change 3118574 on 2016/09/08 by Peter.Sauerbrei pulled over architecture fix for IOS from Main #rb none Change 3117672 on 2016/09/08 by Steve.Allison Adding 3544_iPadMini3_ChAIRQA Change 3116529 on 2016/09/07 by Josh.Markiewicz #UE4 - reverted started IOS purchase/store work from default engine OSS plugins #codereview david.nikdel Change 3116010 on 2016/09/07 by Josh.Markiewicz #WEX - Copying //WEX/Dev-Mobile to Dev-Main (//WEX/Dev-Main) to get OnlineSubsystemiOS changes Change 3114411 on 2016/09/06 by Peter.Sauerbrei fix for deploying movies to the correct directory #rb none Change 3113944 on 2016/09/06 by Peter.Sauerbrei addition of resave packages command to UAT #rb none Change 3112948 on 2016/09/02 by Nathan.Green #WEX - Fixing file length on Android so that we can write out stats files (change is being submitted into Dev-Mobile by Chris Babcock) #CodeReview: Chance.Lyon, David.Nikdel Change 3112567 on 2016/09/02 by Josh.Markiewicz #UE4 - fixed possible exception when checking directories that don't exist (copy of CL#3099217) #rb ben.marsh Change 3112055 on 2016/09/02 by Chance.Lyon #WEX - Merging mobile branch changes into main Change 3108827 on 2016/08/31 by Peter.Sauerbrei fix for warning #rb none Change 3105012 on 2016/08/29 by Peter.Sauerbrei enable ICMP for Android #rb none Change 3103322 on 2016/08/26 by David.Nikdel #WEX: Fix for clang warnings in Font Outline code #CodeReview: Matt.Kuhlenschmidt Change 3102935 on 2016/08/26 by David.Nikdel Merging CL 3102878 from //UE4/Dev-Editor/Engine/... to //WEX/Main/Engine/... ------ Added support for outline fonts - An outline size (in slate units), optional material and optional fill color can be specified with each font info. - Outlines do not contribute to measurement directly so the text measuring and shaping methods have been modified to account for outlines - Fixed a bug where font materials do not work properly if part of the font's rendered glyphs were in a different atlas #CodeReview: Matt.Kuhlenschmidt, Matt.Hancy, Peter.Sauerbrei Change 3102541 on 2016/08/26 by Peter.Sauerbrei fix for build warning on Mac and IOS #rb none Change 3101820 on 2016/08/25 by Peter.Sauerbrei Moved the online changes to the plugins directory #rb none Change 3101808 on 2016/08/25 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing in UE4 engine 4.14 #rb none Change 3097879 on 2016/08/23 by David.Nikdel #Analytics #OSS: Adjusted cohort selection algorithm and test cases Change 3096606 on 2016/08/22 by Nathan.Green #WEX - Adding bAllowWindowResize, bAllowClose, bAllowMaximize, and bAllowMinimize boolean to GeneralProjectSettings - Preventing us from resizing the window for the time being (in the future we may only allow along aspect ratio resizing) #CodeReview: Chance.Lyon, David.Nikdel Change 3094946 on 2016/08/19 by David.Nikdel #OSS - Added FUserOnlineAccountMcp::SelectCohort Change 3094942 on 2016/08/19 by David.Nikdel #UE4 - Made FMD5 const-correct Change 3092494 on 2016/08/17 by Nathan.Green #WEX - Making sure we never build zip64 instead of zip #CodeReview: Chance.Lyon, David.Nikdel, Chris.Babcock Change 3090760 on 2016/08/16 by Michael.Trepka Copy of CL 3089133 Fix for task bar displayed over the fullscreen window on Windows 10 with Anniversary Update Change 3090759 on 2016/08/16 by Michael.Trepka Copy of CL 3078927 Updated WindowTitleBarArea widget to not override window zone in fullscreen mode, to prevent window from being moved. That required adding separate handling for double click in fullscreen, as it's no longer handled by window action. Change 3087872 on 2016/08/12 by Josh.Markiewicz #UE4 - cleaned up IOS store/purchase interface (first pass, minus IAP restore) #codereview david.nikdel, josh.adams Change 3084182 on 2016/08/10 by Peter.Sauerbrei revert out the OpenGL shader compression code #rb none Change 3082565 on 2016/08/09 by Ben.Marsh Fix building with VS2015 update 3. Change 3082557 on 2016/08/09 by Ben.Marsh Fix UBT makefile being invalidated to update adaptive unity build settings, even if that module happens to not include that file in a unity file. Keep a list of all files included by unity files as well as files in the working set. #codereview Mike.Fricker, Michael.Noland Change 3082456 on 2016/08/09 by Josh.Markiewicz #UE4 - fixed typo Change 3082439 on 2016/08/09 by Josh.Markiewicz #UE4 - added CanMakePurchase call to IOS Change 3081905 on 2016/08/09 by Michael.Noland Editor: Made the text colors and font size in the output log configurable in the editor appearance settings (no changes to default values ... yet) #codereview matt.kuhlenschmidt Change 3080932 on 2016/08/08 by Josh.Markiewicz #UE4 - New IOS purchasing/store interface v2 - added interfaces to main IOS subsystem - added proper destruction of interfaces to Shutdown of IOS - moved FStoreKitHelper to its own file -- extended it for new v2 (improvements forthcoming) - MCPCatalogHelper returns bogus user id for IOS app store #codereview josh.adams, david.nikdel #tests very basic IAP stuff so far Change 3080217 on 2016/08/07 by Michael.Noland Engine: Prevented a startup warning when SpectatorClass is nullptr, as not all games require a spectator pawn - Also reduced the number of GetWorld() calls in APlayerController::SpawnSpectatorPawn() Change 3080046 on 2016/08/06 by Michael.Noland Engine: Moved where scissor rect reset happens for custom slate drawables to avoid a conflict with an existing fix in another branch #codereview matt.kuhlenschmidt Change 3080032 on 2016/08/06 by Michael.Noland UMG: Fixed a bug where screen-mode UWidgetComponent widgets were drawn incorrectly offset in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080031 on 2016/08/06 by Michael.Noland Engine: Add the option to return player viewport-relative positions to ProjectWorldLocationToScreenWithDistance, ProjectWorldLocationToScreen, and ProjectWorldToScreen, which is useful if the position is going to be used for widgets in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080029 on 2016/08/06 by Michael.Noland Engine: Fixed a bug where the debug console and other debug rendering would be an incorrect size (based on the last player viewport) and also be partially clipped (depending on what in Slate rendered previously) - This fixes issues with the console being offset and clipped when using aspect ratio constrained cameras or split screen #codereview matt.kuhlenschmidt Change 3079656 on 2016/08/05 by Josh.Markiewicz #WEX - basic IOS changes to project - added OnlineSubsystemIOS - added some default settings - removed GoogleVR from project #codereview david.nikdel Change 3078971 on 2016/08/05 by Steve.Allison Updating to match check-in for UE4 Main @ CL 3078968 Change 3078025 on 2016/08/04 by Michael.Trepka Copy of CLs 3073978 and 3075931 - More reliable way of checking if the cursor should be changed to resize cursor in bordeless window mode - On Windows, lock the cursor to the center of the rect if the cursor is hidden to avoid problems with borderless window's round corners not treated as part of the window. Change 3075415 on 2016/08/03 by Peter.Sauerbrei reduce the metal command buffers Change 3071457 on 2016/07/31 by David.Hunt #WEX Blueprint indexing @Pete: This change and anything in Engine/Content can be stomped by any engine integration. This is just to help with not having to resave all of these to udpate a few of our own content blueprints for search indexing. #CodeReview Peter.Sauerbrei, Steve.Allison, David.Nikdel Change 3068661 on 2016/07/28 by Josh.Markiewicz #WEX - changed the max number of possible UObjects allowed by a factor of 10 to reduce the memory footprint #codereview david.nikdel, peter.sauerbrei Change 3068500 on 2016/07/28 by David.Nikdel #OSSMCP: Use correct HttpRequest creation method to respect game service config Change 3066945 on 2016/07/27 by David.Nikdel Reproduced CL 3063869 from Michael.Noland >> Engine: Added a cvar (t.FPSChart.OpenFolderOnDump) to control whether or not FPS charts automatically open the profiling folder when stopfpschart is executed, which can be useful to avoid a bunch of open >> windows while doing automated testing #CodeReview: Michael.Noland #JIRA: WEX-2342 Change 3063495 on 2016/07/25 by Michael.Trepka Copy of CL 3063426 Borderless window support improvements: - the cursor changes to resize when hovering over the window edge - added a way for widgets to register a delegate that's called when window actions occur (maximize, restore, etc.) - used window action notification for WindowTitleBarArea to improve how toggling fullscreen on double click is handled Change 3063431 on 2016/07/25 by Michael.Trepka Copy of CL 3063057 - Use round corners for windows with no system title bar and border only in windowed mode. Change 3062654 on 2016/07/23 by Michael.Trepka Copy of CL 3046975 and 3056204 - Support for making the game window borderless (no system border or title bar). Disabled by default. Enabling requires adding bUseBorderlessWindow=True to [/Script/EngineSettings.GeneralProjectSettings] in DefaultGame.ini. The game using this is responsible for adding WindowTitleBarArea widget to its UI, as well as window minimize/maximize/close buttons. Change 3062647 on 2016/07/23 by Michael.Trepka Copy of CL 3029211 - Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3062646 on 2016/07/23 by Michael.Trepka Copy of CLs 3039855, 3042644 and 3042911 - Added an option to toggle fullscreen with F11 key in addition to Alt+Enter Change 3062638 on 2016/07/23 by Michael.Trepka Copy of CL 3038201 and CL 3046803 -Added WindowTitleBarArea widget Change 3062056 on 2016/07/22 by Peter.Sauerbrei addition of optimization for ios compile times Change 3054586 on 2016/07/18 by Nathan.Green #WEX - Adding tags around my engine level change #CodeReview: Chance.Lyon, David.Nikdel Change 3054581 on 2016/07/18 by Nathan.Green #WEX - Removing previous change, making all buttons ignore space bar and enter as we don't really care about that functionality #JIRA: WEX-2256 #CodeReview: Chance.Lyon, Colin.Pyle, David.Nikdel Change 3048243 on 2016/07/13 by Steve.Allison This one actually has the changes from rev4 Change 3046649 on 2016/07/12 by Steve.Allison Updating to match provision in UE4 Main @ CL 3046262 Change 3046127 on 2016/07/12 by Ian.Fox #UE4, #OnlineSubSystem - Hotfix in the ExpirationDate field early so we can update the OGF plugin #codereview David.Nikdel Change 3034707 on 2016/06/30 by Peter.Sauerbrei update provision to go with latest certificate #rb none Change 3031429 on 2016/06/28 by David.Nikdel #WEX: porting an engine change we depend on in latest OGF (pre integrate) Change 3030084 on 2016/06/27 by David.Nikdel #GameCatalog: Add code to export attributes in itemGrants #CodeReview: Scott.Bowen Change 3030073 on 2016/06/27 by David.Nikdel #Json: Make JsonObjectWrapper play nice with serialization and Import/Export Text #CodeReview: Scott.Bowen Change 3030029 on 2016/06/27 by David.Nikdel #WEX: Fix for FJsonObjectWrapper::ImportTextItem (use FParse::QuotedString to read from Buffer) #CodeReview: Scott.Bowen Change 3029740 on 2016/06/27 by David.Nikdel #OGF #JsonObjectWrapper - Add attributes to catalog grants @ScottB - I didn't get a chance to test this today. Things are crazy for PS+. All the code should already be there on the backend though. Here's a shelf in case you need it asap #CodeReview: Scott.Bowen Change 3028704 on 2016/06/27 by Ian.Fox Duplicating 3027482 from //Orion/Main Read TaggedPropertyRedirects from all config files to allow plugins to register property redirectors You'll need this before you grab the latest OGF or your catalog prices will go away, so here it is now #ue4 #rb David.Nikdel #tests none Change 3021448 on 2016/06/21 by Peter.Sauerbrei potential fix for android apk size issue Change 3020999 on 2016/06/21 by David.Nikdel #WEX: Likely fix for WEX-1610 #CodeReview: Chance.Lyon Change 3008450 on 2016/06/09 by Colin.Pyle #PF - WEX-1737, WEX-1744 - Adding the ability to set new layers in widget components - WidgetComponents are now blueprintable - New blueprint for the level marker menu widget components - Map marker menus are now in a layer above other widget components Change 3007804 on 2016/06/09 by Peter.Sauerbrei fix for build set up failure Change 3007292 on 2016/06/09 by Peter.Sauerbrei add the WEX e-mail stuff back in, seems to have gotten lost in the transition Change 3004478 on 2016/06/07 by Peter.Sauerbrei for now have the cooker respect the bCookAll flag in the project settings. Change 3000256 on 2016/06/03 by Peter.Sauerbrei fix for iOS compile warning Change 2998304 on 2016/06/02 by Nathan.Green #PF - Fixing Windowed Mode #CodeReview: Chance.Lyon, Colin.Pyle, Peter.Sauerbrei Change 2994269 on 2016/05/31 by Peter.Sauerbrei Merging //depot/UE4-WEX/... to //WEX/Main/... Change 2987181 on 2016/05/23 by Peter.Sauerbrei Merging //UE4/WEX-Staging/.p4ignore.txt //UE4/WEX-Staging/Engine/... //UE4/WEX-Staging/GenerateProjectFiles.bat //UE4/WEX-Staging/GenerateProjectFiles.command //UE4/WEX-Staging/GenerateProjectFiles.sh //UE4/WEX-Staging/UE4Games.uprojectdirs //UE4/WEX-Staging/WEX/... to //WEX/Main/... Change 2984959 on 2016/05/20 by Peter.Sauerbrei re-applying HSL engine change #PF PF-292 - Make sure to regenerate the list when you open the recipe view - Fixes cases where you buy an item in the store then return to evolve Change 2984957 on 2016/05/20 by Peter.Sauerbrei re-apply engine change from HSL #PF PF-33 - Check if we are in BeginDestroyed on Animation updates, possibly fixes a crash on level transition - Make interactive items play their mouseover animations - Heroes make the screen shake if they are on cooldown, we should figure out how to remove that on PC Change 2984956 on 2016/05/20 by Peter.Sauerbrei re-apply HSL change #PF PF-11 - Remove simulated touch with the mouse - Add Right-click support to the game - Right click now does the special attack Change 2984345 on 2016/05/19 by Peter.Sauerbrei Copying //UE4/WEX-Staging/... to //WEX/Main/... This should reset the merge history Change 2981872 on 2016/05/18 by Peter.Sauerbrei fixes for IOS build of WEX Change 2980734 on 2016/05/17 by Peter.Sauerbrei Copying //depot/UE4-WEX/... to //WEX/Main/... Populating WEX stream from old depot at CL2979954 #lockdown nick.penwarden [CL 3129012 by Peter Sauerbrei in Main branch]
2016-09-16 17:07:30 -04:00
string Result = "";
Result += " -fmessage-length=0";
Result += " -pipe";
Result += " -fpascal-strings";
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
// Optionally enable exception handling (off by default since it generates extra code needed to propagate exceptions)
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 (CompileEnvironment.bEnableExceptions)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
{
Result += " -fexceptions";
}
else
{
Result += " -fno-exceptions";
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
string SanitizerMode = Environment.GetEnvironmentVariable("ENABLE_ADDRESS_SANITIZER");
if(SanitizerMode != null && SanitizerMode == "YES")
{
Result += " -fsanitize=address";
}
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
Result += GetRTTIFlag(CompileEnvironment);
Result += " -fvisibility=hidden"; // hides the linker warnings with PhysX
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 (CompileEnvironment.TargetConfiguration == CPPTargetConfiguration.Shipping)
// {
// Result += " -flto";
// }
Result += " -Wall -Werror";
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 (CompileEnvironment.bEnableShadowVariableWarnings)
{
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
Result += " -Wshadow" + (CompileEnvironment.bShadowVariableWarningsAsErrors? "" : " -Wno-error=shadow");
}
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 (CompileEnvironment.bEnableUndefinedIdentifierWarnings)
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
{
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
Result += " -Wundef" + (CompileEnvironment.bUndefinedIdentifierWarningsAsErrors ? "" : " -Wno-error=undef");
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
}
Result += " -Wno-unused-variable";
Result += " -Wno-unused-value";
// this will hide the warnings about static functions in headers that aren't used in every single .cpp file
Result += " -Wno-unused-function";
// this hides the "enumeration value 'XXXXX' not handled in switch [-Wswitch]" warnings - we should maybe remove this at some point and add UE_LOG(, Fatal, ) to default cases
Result += " -Wno-switch";
// this hides the "warning : comparison of unsigned expression < 0 is always false" type warnings due to constant comparisons, which are possible with template arguments
Result += " -Wno-tautological-compare";
//This will prevent the issue of warnings for unused private variables.
Result += " -Wno-unused-private-field";
// needed to suppress warnings about using offsetof on non-POD types.
Result += " -Wno-invalid-offsetof";
// we use this feature to allow static FNames.
Result += " -Wno-gnu-string-literal-operator-template";
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 (Settings.Value.IOSSDKVersionFloat >= 9.0)
{
Result += " -Wno-inconsistent-missing-override"; // too many missing overrides...
Result += " -Wno-unused-local-typedef"; // PhysX has some, hard to remove
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
// fix for Xcode 8.3 enabling nonportable include checks, but p4 has some invalid cases in it
if (Settings.Value.IOSSDKVersionFloat >= 10.3)
{
Result += " -Wno-nonportable-include-path";
}
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
if (IsBitcodeCompilingEnabled(CompileEnvironment.Configuration))
{
Result += " -fembed-bitcode";
}
Result += " -c";
// What architecture(s) to build for
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
Result += GetArchitectureArgument(CompileEnvironment.Configuration, CompileEnvironment.Architecture);
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 (CompileEnvironment.Architecture == "-simulator")
{
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
Result += " -isysroot " + Settings.Value.BaseSDKDirSim + "/" + Settings.Value.SimulatorPlatformName + Settings.Value.IOSSDKVersion + ".sdk";
}
else
{
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
Result += " -isysroot " + Settings.Value.BaseSDKDir + "/" + Settings.Value.DevicePlatformName + Settings.Value.IOSSDKVersion + ".sdk";
}
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
Result += " -m" + GetXcodeMinVersionParam() + "=" + ProjectSettings.RuntimeVersion;
// Optimize non- debug builds.
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 (CompileEnvironment.bOptimizeCode)
{
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 (CompileEnvironment.bOptimizeForSize)
{
Result += " -Oz";
}
else
{
Result += " -O3";
}
}
else
{
Result += " -O0";
}
// Create DWARF format debug info if wanted,
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 (CompileEnvironment.bCreateDebugInfo)
{
Result += " -gdwarf-2";
}
// Add additional frameworks so that their headers can be found
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
foreach (UEBuildFramework Framework in CompileEnvironment.AdditionalFrameworks)
{
if (Framework.OwningModule != null && Framework.FrameworkZipPath != null && Framework.FrameworkZipPath != "")
{
Result += " -F\"" + GetRemoteIntermediateFrameworkZipPath(Framework) + "\"";
}
}
return Result;
}
static string GetCompileArguments_CPP()
{
string Result = "";
Result += " -x objective-c++";
Result += " -fobjc-abi-version=2";
Result += " -fobjc-legacy-dispatch";
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
Result += " -std=c++14";
Result += " -stdlib=libc++";
return Result;
}
static string GetCompileArguments_MM()
{
string Result = "";
Result += " -x objective-c++";
Result += " -fobjc-abi-version=2";
Result += " -fobjc-legacy-dispatch";
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
Result += " -std=c++14";
Result += " -stdlib=libc++";
return Result;
}
static string GetCompileArguments_M()
{
string Result = "";
Result += " -x objective-c";
Result += " -fobjc-abi-version=2";
Result += " -fobjc-legacy-dispatch";
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
Result += " -std=c++14";
Result += " -stdlib=libc++";
return Result;
}
static string GetCompileArguments_C()
{
string Result = "";
Result += " -x c";
return Result;
}
static string GetCompileArguments_PCH()
{
string Result = "";
Result += " -x objective-c++-header";
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3233741) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== [NOTE: Switch changes have been removed from this list, and will be in a comment in //UE4/Main/Engine/Build/Switch/SwitchChanges.txt] Change 3207431 on 2016/11/22 by Keith.Judge Make VectorSign on XB1 match (incorrect) SSE implementation rather than the reference FPU implementation. Too many things seem to rely on this to change the default behaviour now. #jira UE-36921 #jira UE-38560 Change 3208206 on 2016/11/22 by Josh.Adams - Changed plugins upgrading a content-only project to code-based, even if the modules inside aren't compiled for the current platform. There are issues with runtime not knowing the plugin isn't needed. The proper way is to non-whitelist the platform in the project, not in the modules, if you don't want it to upgrade the project. See the comments in this change for more info. #jira UE-38929 Change 3209137 on 2016/11/23 by Alicia.Cano Add a check to iOS tool chain for exception flag #jira UE-36528 #ios Change 3209296 on 2016/11/23 by Ben.Marsh Always send build failure notifications in Dev-Platform to Will.Fissler@epicgames.com and Owen.Stupka@epicgames.com Change 3211316 on 2016/11/28 by Joe.Barnes Fix some typos Change 3211318 on 2016/11/28 by Joe.Barnes Fix wrong function name in header file. Didn't match actual function name in RenderingThread.cpp Change 3213227 on 2016/11/29 by Dmitry.Rekman Add -fPIC to libwebsockets on Linux. Change 3213463 on 2016/11/29 by Nick.Shin helper build scripts for CentOS 7 Linux (via Docker) LINUX: pull source and compile: zlib openssl libcurl & libwebsockets using [ glibc 2.17 ] & [ gcc 4.8.5 ] Docker creates an image (that is essentially a CentOS box) and runs the build script within that environment (called a container). think of this as a VM -- but waaaaaaay better -- nothing is virtualized -- it's all on the metal. #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1203 - Add Linux library for libwebsockets #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 3213939 on 2016/11/29 by Michael.Trepka Ignore parent widget's geometry scale when showing a popup menu in a separate window #jira UE-38706 Change 3215583 on 2016/11/30 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3216345 on 2016/11/30 by Josh.Adams Better fix for poison proxy fix Change 3217106 on 2016/12/01 by Michael.Trepka Fixed a crash caused by an attempt to use FPlayWorldCommands::GlobalPlayWorldActions before it's initialized when showing suppressable warning dialogs in UEditorEngine::UpdateAutoLoadProject() #jira UE-38816 Change 3217223 on 2016/12/01 by Josh.Adams - Fixed some TEXT macro warnings that crept in from IWYU changes Change 3217253 on 2016/12/01 by Dmitry.Rekman Linux: fix GL crash (UE-17649). - Making sure all streams are set up. Fix by Cengiz. Change 3217473 on 2016/12/01 by Daniel.Lamb Fixed a case when we load a map it might not have it's sublevels loaded because it's not treated like a map. #test cook run QAGame Change 3217588 on 2016/12/01 by Peter.Sauerbrei Pull in IPv6 fix Change 3217654 on 2016/12/01 by Michael.Trepka Changed the Mac-specific high DPI code to use system backingScaleFactor only if NSHighResolutionCapable in Info.plist is set to true. This solves the problem with macOS Sierra giving us actual backingScaleFactor values even in low DPI modes. Change 3217873 on 2016/12/01 by Josh.Adams - Added some logging to a tvOS assert, since debugging it right away is tricky Change 3218097 on 2016/12/01 by Josh.Adams - Fixed up the Switch MediaFramework, making editor better, etc - ALso changed PS4 and Xbox plugins to be enabled by default by having two entries in the plugin module for the Factory modules (an editor only entry, and a platform specific runtime entry... this will make it so that UE4Game.exe won't ahve it compiled in, even with it enabled by default) Change 3218133 on 2016/12/01 by Dmitry.Rekman Linux: report server hangs by crashing the hung thread (UE-39164). Change 3218512 on 2016/12/01 by Josh.Adams - Made the MfMedia plugin to be distributable in public builds, since it's for Windows and Xbox Change 3219804 on 2016/12/02 by Dmitry.Rekman Linux: fix project settings crash (UE-38800). - Also submitted as a pull request #2945. Change 3220027 on 2016/12/02 by Nick.Shin plow all physx libs into build NOTE: most browsers will not function - chrome and firefox nightly only works checking this in as per email #jira UE-38323 VehicleTemplate Vehicle does not move in HTML5 Change 3221620 on 2016/12/05 by Joe.Barnes UE-37275 - Temporary workaround for log lines losing carriage returns. Add's a \n when outputting lines if there isn't one at the end. Change 3221689 on 2016/12/05 by Dmitry.Rekman Attempt to change/rename. Change 3221700 on 2016/12/05 by Dmitry.Rekman Another attempt to change renamed file (from Linux). Change 3221731 on 2016/12/05 by Michael.Trepka Added missing initialization for FAvfVideoSampler::MetalTextureCache #jira UE-38689 Change 3221792 on 2016/12/05 by Michael.Trepka Fixed a crash in FMetalDynamicRHI::RHIAsyncReallocateTexture2D for PVRTC2 textures Change 3222675 on 2016/12/05 by Josh.Adams - Removed some resolution setting junk that was recently added to PlatformerGame - settings resolution on AppleTV is bad, it doesn't need to change resolution on non-desktop platforms #jira UE-39188 Change 3223546 on 2016/12/06 by Brent.Pease + Properly set and use the realtime compression for ios. + Reduce unused memory on ios from the precached first buffer + Fix a resource tracking issue that was causing a double free on the sound buffer Change 3223785 on 2016/12/06 by Brent.Pease + Add support for iPhone7 (implemented by peter.sauerbrei, merged in from WEX) #jira ue-38701 Change 3224314 on 2016/12/06 by Chris.Babcock Send OnTargetPlatformChangedSupportedFormats when format changed in Android project settings in editor #jira UE-38361 #ue4 #android Change 3225367 on 2016/12/07 by Josh.Adams - Added FKey::Virtual_Accept and Virtual_Back, which will map to FaceButton Right/Down appropriately based on platform (Switch swaps them) - Made changes to ShooterGame and VehicleGame for Virtual_Accept and Back - Added some icons for ShooterGame, and changed some text blocks to SRichTextBlock to insert the icons Change 3225426 on 2016/12/07 by Chris.Babcock Add missing Android UPL file for binary builds #jira UE-39420 #ue4 #android Change 3225471 on 2016/12/07 by Dmitry.Rekman Update all platforms to C++14. Change 3225525 on 2016/12/07 by Nick.Shin Cook-On-The-Fly for HTML5 - re-enabled: ENetworkFileServerProtocol::NFSP_Http - cleaned up port numbers used with cook-on-the-fly situations - fixed null_ptr in NetworkFileServerHttp.cpp - fix CORS issue with HTML5LaunchHelper (not really needed -- but doesn't hurt to have it in the test server) - finally, the core of the jira issue: o fix serialization bug: do not append zero sized data o fix de-serialization bug: removed double insertion of packet "Marker and Size" header #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3225690 on 2016/12/07 by Dmitry.Rekman Linux: improvements in touch support. - Multiple fingers. - Filtering out "moved" events from the same location. - Consistent logging. (Edigrating 3225194 from Wombat to Dev-Platform) Change 3225868 on 2016/12/07 by Josh.Stoddard Gracefully handle delete without matching new on iOS & Mac #jira UE-39395 Change 3226159 on 2016/12/07 by Omar.Rodriguez UEPLAT-1423 WEX: Improved virtual keyboard for Android * Renamed old virtual keyboard functions by adding "Dialog" suffix to the name * Added new virtual keyboard functions that use InputMethodManager to show/hide keyboard * Hide the virtual keyboard, if shown, onPause * Slate edit box decides which functions to call for showing/hiding keyboard - eventually will be based on command line parameter like in IOS #jira UEPLAT-1423 Change 3226167 on 2016/12/07 by Dmitry.Rekman Allow running as root on ARM. (Edigrating 3204974 to Dev-Platform) Change 3226168 on 2016/12/07 by Dmitry.Rekman Print current CVar value when denying an override. (Based on CL 3205476). Change 3226169 on 2016/12/07 by Dmitry.Rekman Allow enabling sound (if disabled by default). (Based on CL 3205505) Change 3226171 on 2016/12/07 by Dmitry.Rekman Allow running from symlinks. (Edigrating 3205518 to Dev-Platform). Change 3226174 on 2016/12/07 by Dmitry.Rekman Linux: do not init SDL audio (we do not use it anyway). (Based on CL 3205505). Change 3226327 on 2016/12/07 by Nick.Shin fix CIS warning #jira UE-38281 Quicklaunch UFE HTML5 fails to get COTF Header Size Change 3226506 on 2016/12/08 by Dmitry.Rekman Fix one more case-sensitive misspelling (UE-39030). - Submitted as part of PR #2976. Change 3226542 on 2016/12/08 by Dmitry.Rekman Linux: fix weirdness with tesselation in GL4 (UE-32865). - Workaround by CengizT. Proper fix tracked as UE-39489. Change 3226570 on 2016/12/08 by Dmitry.Rekman Fix for ar failing due to too long command line (UE-39009). - Based on PR #2973. Change 3226575 on 2016/12/08 by Dmitry.Rekman Add build-essential to dependencies (UE-39053). - PR #2981 contributed by cpyarger. Change 3227129 on 2016/12/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Fixed up a deferred GL error as well Fixed some copyrights of files not in main Change 3227260 on 2016/12/08 by Omar.Rodriguez UE-39140 Projects with iCloud are failing provisioning check when code signing. * Set default value of bEnableCloudKitSupport to False * Set value of get-task-allow to true only on non-distribution builds * Only write out the entitlements file if changes have been made #jira UE-39140 Change 3229312 on 2016/12/09 by Dmitry.Rekman Fix missing responses (UE-39572). - Proper implementation of UE-39009. Change 3230849 on 2016/12/12 by Dmitry.Rekman Linux: fixed Android packaging (UE-39635). - Misspelled case; fixed by JohnHenry Carawon. #jira UE-39635 Change 3231591 on 2016/12/12 by Peter.Sauerbrei fix for splash screen not being turned off by default #jira UE-39591 Change 3231880 on 2016/12/12 by Josh.Adams - Fixing StaticAnalysis warnings, but -enablecodeanalysis stopped working for some reason, and the /Zm thing has hit me really hard, so this is a hopeful checkin for static analysis issues #jira UE-39680 Change 3232816 on 2016/12/13 by Dmitry.Rekman Linux: fix for CEF (UE-39682) - Fix by Cengiz.Terzibas. Change 3232873 on 2016/12/13 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3232933 on 2016/12/13 by Josh.Adams - Missed the files that were needed to fix up after merge from main, but didn';t come from main Change 3233066 on 2016/12/13 by Ben.Marsh UBT: Ignore exception if PATH variable contains invalid characters when looking for XGE. Change 3233512 on 2016/12/13 by Ben.Marsh Fix static analysis warnings. [CL 3233813 by Josh Adams in Main branch]
2016-12-13 19:47:16 -05:00
Result += " -std=c++14";
Result += " -stdlib=libc++";
return Result;
}
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
// Conditionally enable (default disabled) generation of information about every class with virtual functions for use by the C++ runtime type identification features
// (`dynamic_cast' and `typeid'). If you don't use those parts of the language, you can save some space by using -fno-rtti.
// Note that exception handling uses the same information, but it will generate it as needed.
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
static string GetRTTIFlag(CppCompileEnvironment CompileEnvironment)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
{
string Result = "";
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 (CompileEnvironment.bUseRTTI)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
{
Result = " -frtti";
}
else
{
Result = " -fno-rtti";
}
return Result;
}
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
static string GetLocalFrameworkZipPath(UEBuildFramework Framework)
{
if (Framework.OwningModule == null)
{
throw new BuildException("GetLocalFrameworkZipPath: No owning module for framework {0}", Framework.FrameworkName);
}
return Path.GetFullPath(Framework.OwningModule.ModuleDirectory + "/" + Framework.FrameworkZipPath);
}
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
static string GetRemoteFrameworkZipPath(UEBuildFramework Framework)
{
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
return ConvertPath(GetLocalFrameworkZipPath(Framework));
}
return GetLocalFrameworkZipPath(Framework);
}
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
static string GetRemoteIntermediateFrameworkZipPath(UEBuildFramework Framework)
{
if (Framework.OwningModule == null)
{
throw new BuildException("GetRemoteIntermediateFrameworkZipPath: No owning module for framework {0}", Framework.FrameworkName);
}
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
string IntermediatePath = UnrealBuildTool.EngineDirectory + "/Intermediate/UnzippedFrameworks/" + Framework.OwningModule.Name;
IntermediatePath = Path.GetFullPath((IntermediatePath + Framework.FrameworkZipPath).Replace(".zip", ""));
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
return ConvertPath(IntermediatePath);
}
return IntermediatePath;
}
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
static void CleanIntermediateDirectory(string Path)
{
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
// Delete the intermediate directory on the mac
RPCUtilHelper.Command("/", String.Format("rm -rf \"{0}\"", Path), "", null);
// Create a fresh intermediate after we delete it
RPCUtilHelper.Command("/", String.Format("mkdir -p \"{0}\"", Path), "", null);
}
else
{
// Delete the local dest directory if it exists
if (Directory.Exists(Path))
{
Directory.Delete(Path, true);
}
// Create the intermediate local directory
string ResultsText;
RunExecutableAndWait("mkdir", String.Format("-p \"{0}\"", Path), out ResultsText);
}
}
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
bool IsBitcodeCompilingEnabled(CppConfiguration Configuration)
{
return Configuration == CppConfiguration.Shipping && ProjectSettings.bShipForBitcode;
}
public virtual string GetXcodeMinVersionParam()
{
return "iphoneos-version-min";
}
public virtual string GetArchitectureArgument(CppConfiguration Configuration, string UBTArchitecture)
{
// get the list of architectures to compile
string Archs =
UBTArchitecture == "-simulator" ? "i386" :
String.Join(",", (Configuration == CppConfiguration.Shipping) ? ProjectSettings.ShippingArchitectures : ProjectSettings.NonShippingArchitectures);
Log.TraceLogOnce("Compiling with these architectures: " + Archs);
// parse the string
string[] Tokens = Archs.Split(",".ToCharArray());
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
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
string Result = "";
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
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
foreach (string Token in Tokens)
{
Result += " -arch " + Token;
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
// Remove this in 4.16
// Commented this out, for now. @Pete let's conditionally check this when we re-implement this fix.
// Result += " -mcpu=cortex-a9";
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
return Result;
}
public string GetAdditionalLinkerFlags(CppConfiguration InConfiguration)
{
if (InConfiguration != CppConfiguration.Shipping)
{
return ProjectSettings.AdditionalLinkerFlags;
}
else
{
return ProjectSettings.AdditionalShippingLinkerFlags;
}
}
string GetLinkArguments_Global(LinkEnvironment LinkEnvironment)
{
Copying //UE4/WEX-Staging to Dev-Main (//UE4/Dev-Main) =================== MAJOR FEATURES + CHANGES =================== Change 3123735 on 2016/09/13 by Josh.Markiewicz #UE4 - added FNames for some common online features to be refactored later #codereview david.nikdel Change 3123608 on 2016/09/13 by Josh.Markiewicz #OSS - refactor FUniqueNetIdRepl to derive from FUniqueNetIdWrapper and clean up redundant code #codereview david.nikdel Change 3120074 on 2016/09/09 by David.Nikdel #Analytics: Move log message to more correct location Change 3120073 on 2016/09/09 by David.Nikdel #Analytics: Adjustments to ET.DroppedSubmission per Wes's feedback - Don't try to restore events at all if caching is disabled (but do log the error) - Stop accumulating events (even the ET.DroppedSubmission event) at 1024 cached to defend against run away accumulation #CodeReview: Wes.Hunt Change 3119959 on 2016/09/09 by Peter.Sauerbrei update to engine to provide the generic chunk install when one is not implemented or requested #rb none Change 3119378 on 2016/09/09 by David.Nikdel #Analytics #ET: Added a config option to not drop events in the event of a failure to flush. - Events are re-added to the queue (may result in some reordering but timestamps will still be there) in the event of a failure - Also appending an ET.DroppedSubmission event in this case so we can track how often clients fail. Has HTTP_STATUS and URL attributes. - Events accumulate within a given application run but no attempt is made to persist across crashes etc. #CodeReview: Wes.Hunt Change 3118773 on 2016/09/08 by Peter.Sauerbrei bring over fix for missing debug information in IOS executables #rb none Change 3118574 on 2016/09/08 by Peter.Sauerbrei pulled over architecture fix for IOS from Main #rb none Change 3117672 on 2016/09/08 by Steve.Allison Adding 3544_iPadMini3_ChAIRQA Change 3116529 on 2016/09/07 by Josh.Markiewicz #UE4 - reverted started IOS purchase/store work from default engine OSS plugins #codereview david.nikdel Change 3116010 on 2016/09/07 by Josh.Markiewicz #WEX - Copying //WEX/Dev-Mobile to Dev-Main (//WEX/Dev-Main) to get OnlineSubsystemiOS changes Change 3114411 on 2016/09/06 by Peter.Sauerbrei fix for deploying movies to the correct directory #rb none Change 3113944 on 2016/09/06 by Peter.Sauerbrei addition of resave packages command to UAT #rb none Change 3112948 on 2016/09/02 by Nathan.Green #WEX - Fixing file length on Android so that we can write out stats files (change is being submitted into Dev-Mobile by Chris Babcock) #CodeReview: Chance.Lyon, David.Nikdel Change 3112567 on 2016/09/02 by Josh.Markiewicz #UE4 - fixed possible exception when checking directories that don't exist (copy of CL#3099217) #rb ben.marsh Change 3112055 on 2016/09/02 by Chance.Lyon #WEX - Merging mobile branch changes into main Change 3108827 on 2016/08/31 by Peter.Sauerbrei fix for warning #rb none Change 3105012 on 2016/08/29 by Peter.Sauerbrei enable ICMP for Android #rb none Change 3103322 on 2016/08/26 by David.Nikdel #WEX: Fix for clang warnings in Font Outline code #CodeReview: Matt.Kuhlenschmidt Change 3102935 on 2016/08/26 by David.Nikdel Merging CL 3102878 from //UE4/Dev-Editor/Engine/... to //WEX/Main/Engine/... ------ Added support for outline fonts - An outline size (in slate units), optional material and optional fill color can be specified with each font info. - Outlines do not contribute to measurement directly so the text measuring and shaping methods have been modified to account for outlines - Fixed a bug where font materials do not work properly if part of the font's rendered glyphs were in a different atlas #CodeReview: Matt.Kuhlenschmidt, Matt.Hancy, Peter.Sauerbrei Change 3102541 on 2016/08/26 by Peter.Sauerbrei fix for build warning on Mac and IOS #rb none Change 3101820 on 2016/08/25 by Peter.Sauerbrei Moved the online changes to the plugins directory #rb none Change 3101808 on 2016/08/25 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing in UE4 engine 4.14 #rb none Change 3097879 on 2016/08/23 by David.Nikdel #Analytics #OSS: Adjusted cohort selection algorithm and test cases Change 3096606 on 2016/08/22 by Nathan.Green #WEX - Adding bAllowWindowResize, bAllowClose, bAllowMaximize, and bAllowMinimize boolean to GeneralProjectSettings - Preventing us from resizing the window for the time being (in the future we may only allow along aspect ratio resizing) #CodeReview: Chance.Lyon, David.Nikdel Change 3094946 on 2016/08/19 by David.Nikdel #OSS - Added FUserOnlineAccountMcp::SelectCohort Change 3094942 on 2016/08/19 by David.Nikdel #UE4 - Made FMD5 const-correct Change 3092494 on 2016/08/17 by Nathan.Green #WEX - Making sure we never build zip64 instead of zip #CodeReview: Chance.Lyon, David.Nikdel, Chris.Babcock Change 3090760 on 2016/08/16 by Michael.Trepka Copy of CL 3089133 Fix for task bar displayed over the fullscreen window on Windows 10 with Anniversary Update Change 3090759 on 2016/08/16 by Michael.Trepka Copy of CL 3078927 Updated WindowTitleBarArea widget to not override window zone in fullscreen mode, to prevent window from being moved. That required adding separate handling for double click in fullscreen, as it's no longer handled by window action. Change 3087872 on 2016/08/12 by Josh.Markiewicz #UE4 - cleaned up IOS store/purchase interface (first pass, minus IAP restore) #codereview david.nikdel, josh.adams Change 3084182 on 2016/08/10 by Peter.Sauerbrei revert out the OpenGL shader compression code #rb none Change 3082565 on 2016/08/09 by Ben.Marsh Fix building with VS2015 update 3. Change 3082557 on 2016/08/09 by Ben.Marsh Fix UBT makefile being invalidated to update adaptive unity build settings, even if that module happens to not include that file in a unity file. Keep a list of all files included by unity files as well as files in the working set. #codereview Mike.Fricker, Michael.Noland Change 3082456 on 2016/08/09 by Josh.Markiewicz #UE4 - fixed typo Change 3082439 on 2016/08/09 by Josh.Markiewicz #UE4 - added CanMakePurchase call to IOS Change 3081905 on 2016/08/09 by Michael.Noland Editor: Made the text colors and font size in the output log configurable in the editor appearance settings (no changes to default values ... yet) #codereview matt.kuhlenschmidt Change 3080932 on 2016/08/08 by Josh.Markiewicz #UE4 - New IOS purchasing/store interface v2 - added interfaces to main IOS subsystem - added proper destruction of interfaces to Shutdown of IOS - moved FStoreKitHelper to its own file -- extended it for new v2 (improvements forthcoming) - MCPCatalogHelper returns bogus user id for IOS app store #codereview josh.adams, david.nikdel #tests very basic IAP stuff so far Change 3080217 on 2016/08/07 by Michael.Noland Engine: Prevented a startup warning when SpectatorClass is nullptr, as not all games require a spectator pawn - Also reduced the number of GetWorld() calls in APlayerController::SpawnSpectatorPawn() Change 3080046 on 2016/08/06 by Michael.Noland Engine: Moved where scissor rect reset happens for custom slate drawables to avoid a conflict with an existing fix in another branch #codereview matt.kuhlenschmidt Change 3080032 on 2016/08/06 by Michael.Noland UMG: Fixed a bug where screen-mode UWidgetComponent widgets were drawn incorrectly offset in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080031 on 2016/08/06 by Michael.Noland Engine: Add the option to return player viewport-relative positions to ProjectWorldLocationToScreenWithDistance, ProjectWorldLocationToScreen, and ProjectWorldToScreen, which is useful if the position is going to be used for widgets in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080029 on 2016/08/06 by Michael.Noland Engine: Fixed a bug where the debug console and other debug rendering would be an incorrect size (based on the last player viewport) and also be partially clipped (depending on what in Slate rendered previously) - This fixes issues with the console being offset and clipped when using aspect ratio constrained cameras or split screen #codereview matt.kuhlenschmidt Change 3079656 on 2016/08/05 by Josh.Markiewicz #WEX - basic IOS changes to project - added OnlineSubsystemIOS - added some default settings - removed GoogleVR from project #codereview david.nikdel Change 3078971 on 2016/08/05 by Steve.Allison Updating to match check-in for UE4 Main @ CL 3078968 Change 3078025 on 2016/08/04 by Michael.Trepka Copy of CLs 3073978 and 3075931 - More reliable way of checking if the cursor should be changed to resize cursor in bordeless window mode - On Windows, lock the cursor to the center of the rect if the cursor is hidden to avoid problems with borderless window's round corners not treated as part of the window. Change 3075415 on 2016/08/03 by Peter.Sauerbrei reduce the metal command buffers Change 3071457 on 2016/07/31 by David.Hunt #WEX Blueprint indexing @Pete: This change and anything in Engine/Content can be stomped by any engine integration. This is just to help with not having to resave all of these to udpate a few of our own content blueprints for search indexing. #CodeReview Peter.Sauerbrei, Steve.Allison, David.Nikdel Change 3068661 on 2016/07/28 by Josh.Markiewicz #WEX - changed the max number of possible UObjects allowed by a factor of 10 to reduce the memory footprint #codereview david.nikdel, peter.sauerbrei Change 3068500 on 2016/07/28 by David.Nikdel #OSSMCP: Use correct HttpRequest creation method to respect game service config Change 3066945 on 2016/07/27 by David.Nikdel Reproduced CL 3063869 from Michael.Noland >> Engine: Added a cvar (t.FPSChart.OpenFolderOnDump) to control whether or not FPS charts automatically open the profiling folder when stopfpschart is executed, which can be useful to avoid a bunch of open >> windows while doing automated testing #CodeReview: Michael.Noland #JIRA: WEX-2342 Change 3063495 on 2016/07/25 by Michael.Trepka Copy of CL 3063426 Borderless window support improvements: - the cursor changes to resize when hovering over the window edge - added a way for widgets to register a delegate that's called when window actions occur (maximize, restore, etc.) - used window action notification for WindowTitleBarArea to improve how toggling fullscreen on double click is handled Change 3063431 on 2016/07/25 by Michael.Trepka Copy of CL 3063057 - Use round corners for windows with no system title bar and border only in windowed mode. Change 3062654 on 2016/07/23 by Michael.Trepka Copy of CL 3046975 and 3056204 - Support for making the game window borderless (no system border or title bar). Disabled by default. Enabling requires adding bUseBorderlessWindow=True to [/Script/EngineSettings.GeneralProjectSettings] in DefaultGame.ini. The game using this is responsible for adding WindowTitleBarArea widget to its UI, as well as window minimize/maximize/close buttons. Change 3062647 on 2016/07/23 by Michael.Trepka Copy of CL 3029211 - Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3062646 on 2016/07/23 by Michael.Trepka Copy of CLs 3039855, 3042644 and 3042911 - Added an option to toggle fullscreen with F11 key in addition to Alt+Enter Change 3062638 on 2016/07/23 by Michael.Trepka Copy of CL 3038201 and CL 3046803 -Added WindowTitleBarArea widget Change 3062056 on 2016/07/22 by Peter.Sauerbrei addition of optimization for ios compile times Change 3054586 on 2016/07/18 by Nathan.Green #WEX - Adding tags around my engine level change #CodeReview: Chance.Lyon, David.Nikdel Change 3054581 on 2016/07/18 by Nathan.Green #WEX - Removing previous change, making all buttons ignore space bar and enter as we don't really care about that functionality #JIRA: WEX-2256 #CodeReview: Chance.Lyon, Colin.Pyle, David.Nikdel Change 3048243 on 2016/07/13 by Steve.Allison This one actually has the changes from rev4 Change 3046649 on 2016/07/12 by Steve.Allison Updating to match provision in UE4 Main @ CL 3046262 Change 3046127 on 2016/07/12 by Ian.Fox #UE4, #OnlineSubSystem - Hotfix in the ExpirationDate field early so we can update the OGF plugin #codereview David.Nikdel Change 3034707 on 2016/06/30 by Peter.Sauerbrei update provision to go with latest certificate #rb none Change 3031429 on 2016/06/28 by David.Nikdel #WEX: porting an engine change we depend on in latest OGF (pre integrate) Change 3030084 on 2016/06/27 by David.Nikdel #GameCatalog: Add code to export attributes in itemGrants #CodeReview: Scott.Bowen Change 3030073 on 2016/06/27 by David.Nikdel #Json: Make JsonObjectWrapper play nice with serialization and Import/Export Text #CodeReview: Scott.Bowen Change 3030029 on 2016/06/27 by David.Nikdel #WEX: Fix for FJsonObjectWrapper::ImportTextItem (use FParse::QuotedString to read from Buffer) #CodeReview: Scott.Bowen Change 3029740 on 2016/06/27 by David.Nikdel #OGF #JsonObjectWrapper - Add attributes to catalog grants @ScottB - I didn't get a chance to test this today. Things are crazy for PS+. All the code should already be there on the backend though. Here's a shelf in case you need it asap #CodeReview: Scott.Bowen Change 3028704 on 2016/06/27 by Ian.Fox Duplicating 3027482 from //Orion/Main Read TaggedPropertyRedirects from all config files to allow plugins to register property redirectors You'll need this before you grab the latest OGF or your catalog prices will go away, so here it is now #ue4 #rb David.Nikdel #tests none Change 3021448 on 2016/06/21 by Peter.Sauerbrei potential fix for android apk size issue Change 3020999 on 2016/06/21 by David.Nikdel #WEX: Likely fix for WEX-1610 #CodeReview: Chance.Lyon Change 3008450 on 2016/06/09 by Colin.Pyle #PF - WEX-1737, WEX-1744 - Adding the ability to set new layers in widget components - WidgetComponents are now blueprintable - New blueprint for the level marker menu widget components - Map marker menus are now in a layer above other widget components Change 3007804 on 2016/06/09 by Peter.Sauerbrei fix for build set up failure Change 3007292 on 2016/06/09 by Peter.Sauerbrei add the WEX e-mail stuff back in, seems to have gotten lost in the transition Change 3004478 on 2016/06/07 by Peter.Sauerbrei for now have the cooker respect the bCookAll flag in the project settings. Change 3000256 on 2016/06/03 by Peter.Sauerbrei fix for iOS compile warning Change 2998304 on 2016/06/02 by Nathan.Green #PF - Fixing Windowed Mode #CodeReview: Chance.Lyon, Colin.Pyle, Peter.Sauerbrei Change 2994269 on 2016/05/31 by Peter.Sauerbrei Merging //depot/UE4-WEX/... to //WEX/Main/... Change 2987181 on 2016/05/23 by Peter.Sauerbrei Merging //UE4/WEX-Staging/.p4ignore.txt //UE4/WEX-Staging/Engine/... //UE4/WEX-Staging/GenerateProjectFiles.bat //UE4/WEX-Staging/GenerateProjectFiles.command //UE4/WEX-Staging/GenerateProjectFiles.sh //UE4/WEX-Staging/UE4Games.uprojectdirs //UE4/WEX-Staging/WEX/... to //WEX/Main/... Change 2984959 on 2016/05/20 by Peter.Sauerbrei re-applying HSL engine change #PF PF-292 - Make sure to regenerate the list when you open the recipe view - Fixes cases where you buy an item in the store then return to evolve Change 2984957 on 2016/05/20 by Peter.Sauerbrei re-apply engine change from HSL #PF PF-33 - Check if we are in BeginDestroyed on Animation updates, possibly fixes a crash on level transition - Make interactive items play their mouseover animations - Heroes make the screen shake if they are on cooldown, we should figure out how to remove that on PC Change 2984956 on 2016/05/20 by Peter.Sauerbrei re-apply HSL change #PF PF-11 - Remove simulated touch with the mouse - Add Right-click support to the game - Right click now does the special attack Change 2984345 on 2016/05/19 by Peter.Sauerbrei Copying //UE4/WEX-Staging/... to //WEX/Main/... This should reset the merge history Change 2981872 on 2016/05/18 by Peter.Sauerbrei fixes for IOS build of WEX Change 2980734 on 2016/05/17 by Peter.Sauerbrei Copying //depot/UE4-WEX/... to //WEX/Main/... Populating WEX stream from old depot at CL2979954 #lockdown nick.penwarden [CL 3129012 by Peter Sauerbrei in Main branch]
2016-09-16 17:07:30 -04:00
string Result = "";
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
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
Result += GetArchitectureArgument(LinkEnvironment.Configuration, LinkEnvironment.Architecture);
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -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
bool bIsDevice = (LinkEnvironment.Architecture != "-simulator");
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
Result += String.Format(" -isysroot {0}Platforms/{1}.platform/Developer/SDKs/{1}{2}.sdk",
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
Settings.Value.XcodeDeveloperDir, bIsDevice? Settings.Value.DevicePlatformName : Settings.Value.SimulatorPlatformName, Settings.Value.IOSSDKVersion);
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
if(IsBitcodeCompilingEnabled(LinkEnvironment.Configuration))
{
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
FileItem OutputFile = FileItem.GetItemByFileReference(LinkEnvironment.OutputFilePath);
FileItem RemoteOutputFile = LocalToRemoteFileItem(OutputFile, false);
Result += " -fembed-bitcode -Xlinker -bitcode_verify -Xlinker -bitcode_hide_symbols -Xlinker -bitcode_symbol_map ";
Result += " -Xlinker " + Path.GetDirectoryName(RemoteOutputFile.AbsolutePath);
}
Result += " -dead_strip";
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
Result += " -m" + GetXcodeMinVersionParam() + "=" + ProjectSettings.RuntimeVersion;
Result += " -Wl";
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
if(!IsBitcodeCompilingEnabled(LinkEnvironment.Configuration))
{
Result += "-no_pie";
}
Result += " -stdlib=libc++";
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3056808) #lockdown Nick.Penwarden #rb The Forces of Good and Evil, twixt the realms from which bugs doth come ========================== MAJOR FEATURES + CHANGES ========================== Change 3026722 on 2016/06/24 by Chad.Taylor IStereoLayers SteamVR initial implementation Change 3027397 on 2016/06/24 by Chad.Taylor SteamVR stereo layer texture updating rework. It now upadtes textures from the render thread and supports "continous update" Change 3033004 on 2016/06/29 by Nick.Whiting Integrating GoogleVR plugin from Google branch Change 3033248 on 2016/06/29 by Sam.Zamani Copying //Tasks/UE4/Dev-VR-Online to Dev-VR (//UE4/Dev-VR) Merged up to cl #3029677 from //depot/Partners/Oculus/UE4-Research/4.12-dev/Engine/Source/Runtime/Online/... Added PacketHandler module dependency to new OnlineSubsystemOculus module Replaced std::move usage with UE equivalent MoveTemp Trigger OnLoginStatusChanged delegate during login/logout processing of FOnlineIdentityOculus Implemented Oculus unique net id creation from string and byte* Added OnlineSubsystemOculus module as a dependency for QAGame testing Make sure to always call completion delegates in FOnlineFriendsOculus Trigger success OnMatchmakingComplete delegate in FOnlineSessionOculus::StartMatchmaking Fixed shadowed variable PlayerId in FOnlineSessionOculus::OnRoomInviteAccepted Split out 32/64bit dll dependencies of LibOVRPlatform Replaced "unsigned long long" with UE equivalent "uint64" Replaced "unsigned int" with UE equivalent "uint32" Change 3033490 on 2016/06/29 by Jeff.Fisher UE-32601 Changed from Flush to FlushImmediate when switching from rendering one eye buffer to the other on GoogleVR because we are trying to clear the immediate RHI command list. Change 3034920 on 2016/06/30 by Chad.Taylor PSVR ApplyMorpheusReprojection support for separate texture per stereo eye. Change 3038640 on 2016/07/05 by Chad.Taylor Fixing Morpheus "HasValidTrackingPosition" to actually return true when tracking is valid. Change 3038940 on 2016/07/06 by Nick.Whiting Haptics Refactor: Adding support for multiple types of haptics effect, defined by their data format (curves, buffer, sound waves) Change 3040512 on 2016/07/06 by Chad.Taylor Fix for CopyOverOtherViewportsIfNeeded that was selecting an incorrect FSceneView. This was picking the wrong hmd mesh for render and causing strange flickering. Change 3041314 on 2016/07/07 by Nick.Whiting Extending core hand types for motion tracking controllers to have external camera tracking available, as well as Special_1 - 9 for systems like STEM that have multiple special packs. Change 3041353 on 2016/07/07 by Nick.Whiting Modifying SteamVR HMD detection check to use a lighter weight function that doesn't launch the compositor Change 3043516 on 2016/07/08 by Chad.Taylor PSVR A3D Sound fix Change 3043808 on 2016/07/08 by Nick.Whiting Fixing issue with SteamVR plugin starting while trying to detect connected HMDs, fix for editor quitting when VR Compositor quits Change 3043840 on 2016/07/09 by Nick.Whiting OSVR Updated plugin, from Sensics Change 3043958 on 2016/07/09 by Nick.Whiting Oculus 1.5 Support Integration Change 3045493 on 2016/07/11 by Ryan.Vance Copying //UE4/Dev-VR-InstancedStereo to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) PS4 multi-view copy up Change 3046896 on 2016/07/12 by Ryan.Vance #jira UE-30842 We need to also late update ShadowViewMatrices, otherwise we compute an incorrect volume for translucent lighting which manifests as flickering. Note: I'm not bothering to check the r.Shadow.FreezeCamera cvar here, as debugging shadowing *in vr* is probably not a case we need to support. Change 3047272 on 2016/07/12 by Ryan.Vance #jira UE-30278 We need to forward the eye index interpolator along. Also removed a superfluous call to resolve view. Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3048151 on 2016/07/13 by Nick.Whiting Integrating small controller initialization fix from AndroidVR-DevVR branch Change 3048363 on 2016/07/13 by Ryan.Vance Fix for crash with HMDs when the adapter description isn't found. Crashing case was having monitors plugged into one adapter, and an HMD plugged into another, which caused a gap in AdapterDescription array, which later crashed in FindAdapter. Change 3048783 on 2016/07/13 by Chad.Taylor Fixing up SteamVR's -vr to mimic the same behavior as Oculus and use the appropriate resolution #jira UE-30173 Change 3049101 on 2016/07/13 by Chad.Taylor Part 2 of: Fixing up SteamVR's -vr to mimic the same behavior as Oculus and use the appropriate resolution. Had to defer setting of the viewport size to occur after we have a valid Window. #jira UE-30173 Change 3050707 on 2016/07/14 by Nick.Whiting Fix for motion controllers on remote clients responding to local motion controllers Change 3051043 on 2016/07/14 by Nick.Whiting Stub funcitonality to allow for rebasing based on other external trackers Change 3051882 on 2016/07/15 by Nick.Whiting Moving OnlineSubsystemOculus to a plugin, instead of a module Change 3053772 on 2016/07/18 by Chad.Taylor Code cleanup: Removing defunct IStereoRendering methods Change 3054515 on 2016/07/18 by Chad.Taylor Changing HMD resolution resizing to no longer occur in "Windowed" mode because its causing an issue in VR Preview #jira UE-33341 Change 3056435 on 2016/07/19 by Jeff.Fisher UES-2981 UEVR-13 Implemented VRHeadsetLost and VRHeadsetReconnected Delegates for Morpheus (Playstation VR). https://udn.unrealengine.com/questions/301886/trying-to-use-vrheadsetlost-and-vrheadsetreconnect.html #review-3056100 @nick.whiting Change 3056491 on 2016/07/19 by Chad.Taylor Audio thread assertion from HandlePause being called on the game thread. Submitting on behalf of Aaron McLeran #jira UE-33360 [CL 3057155 by Nick Whiting in Main branch]
2016-07-20 01:48:44 -04:00
Result += " -ObjC";
// Result += " -v";
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
string SanitizerMode = Environment.GetEnvironmentVariable("ENABLE_ADDRESS_SANITIZER");
if(SanitizerMode != null && SanitizerMode == "YES")
{
Result += " -rpath \"@executable_path/Frameworks/libclang_rt.asan_ios_dynamic.dylib\"";
Result += " -fsanitize=address";
}
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
Result += " " + GetAdditionalLinkerFlags(LinkEnvironment.Configuration);
Merging //UE4/Release-4.11 to //UE4/Main (up to CL#2852902) ========================== MAJOR FEATURES + CHANGES ========================== Change 2835191 on 2016/01/19 by Nick.Whiting Invert the y-axis on the SteamVR controllers to match the convention of the engine and the rest of the gamepads #jira UE-22705 Change 2835686 on 2016/01/20 by Gareth.Martin Fixed landscape material instances not being updated if holes are painted on a landscape that doesn't have the landscape visibility mask node in the material and then the visibility mask node is added to the material later. #jira UE-18187 Change 2835767 on 2016/01/20 by Richard.Hinckley #jira UE-25499 Added a cursor to TopDown template (C++ version) to match the BP version. Change 2835772 on 2016/01/20 by Richard.Hinckley #jira UE-25499 Adding the material asset for the C++ TopDown template's cursor. Change 2835811 on 2016/01/20 by Taizyd.Korambayil #jira UE-25699 Added Validity Checks in BP logic, unchecked CDO for Pixel Ship, to Fix Log Warnings #jira UE-25704 Adjusted Matinee to happen at Box Location #jira UE-25688 Adjusted Player Starts #jira UE-25693 Adjusted Player Starts Change 2835863 on 2016/01/20 by Gareth.Martin Fixed crash in the landscape ramp and mirror tools if the streaming level containing the landscape is hidden (or possibly if the landscape actor is deleted) #jira UE-24883 Change 2835889 on 2016/01/20 by Taizyd.Korambayil #jira UE-25698 Enabled V-sync, also fixed up player Respawn Issue Change 2835995 on 2016/01/20 by Jamie.Dale The output log now hard-wraps lines to prevent long lines causing performance issues #jira UE-24187 Change 2836052 on 2016/01/20 by Taizyd.Korambayil #jira UE-25675 Added Blocking Volume to prevent Player from Falling off map #jira UE-25676 Added Blocking Volumes so that the Player doesn't get stucl at awkward corners under the Bridge Change 2836137 on 2016/01/20 by Chad.Taylor Vehicle and VehicleAdv template content fixes for new VR camera #jira UE-25507 Change 2836166 on 2016/01/20 by Gareth.Martin Fixed hiding a streaming level containing a landscape causing the landscape editor to switch to the "New Landscape" tool instead of exiting #jira UE-25093 Change 2836174 on 2016/01/20 by Chad.Taylor IHeadMountedDisplay crash fix associated with accessing a dangling pointer. #jira UE-25272 Change 2836179 on 2016/01/20 by Jamie.Dale Optimized FShapedGlyphSequence reverse look-up There's now a reverse look-up map of cluster indices to their glyph data in order to avoid brute force looping #jira UE-24187 Change 2836286 on 2016/01/20 by Chris.Babcock Update Qualcomm TextureConverter for OSX #jira UE-22092 #ue4 #android Change 2836328 on 2016/01/20 by Nick.Darnell Fixing a problem with widget components crashing on destruction with the render commands to pre/post render for window render commands needing access to the policy, but it potentially being deleted. Inserting a NoOp command that keeps the shared ptr alive through the RHI render process. #jira UE-25752 Change 2836342 on 2016/01/20 by Nick.Darnell Depending on shutdown order, the Slate Renderer may go away, and then render data handles may not be collected correctly because they are trying to reference a pointer that's no longer valid and cause a crash on exit. The correct approach would be to have render handles actually have a pointer back to who owns them, in this case the RHI Resource Manager, which is still alive and well at this point in the pipeline. Then if the resource manager is collected, it forces all handles to get cleaned up correctly, or if the handles are collected first, they can be sure they've got a valid pointer back to the resource manager. #jira UE-25753 Change 2836358 on 2016/01/20 by Taizyd.Korambayil #jira UE-25710 Replaced Deprecated Nodes Change 2836510 on 2016/01/20 by Taizyd.Korambayil #jira UE-25718 Adjsuted BP to make pointer decal rotate in the direction of surface Change 2836564 on 2016/01/20 by Taizyd.Korambayil #jira UE-25716 Added bool to store last Moved Direction Change 2836697 on 2016/01/20 by Taizyd.Korambayil #jira UE-25740 Removed unused VR Nodes to remove Log errors on Mac Change 2836725 on 2016/01/20 by Peter.Sauerbrei workaround for thread race when trying to release the TargetDeviceService endpoint after an unclaim message is sent #jira UE-25123 Change 2836782 on 2016/01/20 by Jamie.Dale Added FTextLayout::AddLines This is similar to AddLine, however it allows you to add multiple lines in a single call, thus avoiding the re-justification cost associated with each call to AddLine. AddLine has also been changed to take the same structure type as AddLines (which takes an array of these structures), and the existing version of AddLine has been deprecated. #jira UE-24187 Change 2836801 on 2016/01/20 by Jeff.Campeau [CL 2857187 by Matthew Griffin in Main branch]
2016-02-05 11:54:00 -05:00
// link in the frameworks
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
foreach (string Framework in LinkEnvironment.Frameworks)
{
Result += " -framework " + Framework;
}
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
foreach (UEBuildFramework Framework in LinkEnvironment.AdditionalFrameworks)
{
if (Framework.OwningModule != null && Framework.FrameworkZipPath != null && Framework.FrameworkZipPath != "")
{
// If this framework has a zip specified, we'll need to setup the path as well
Result += " -F\"" + GetRemoteIntermediateFrameworkZipPath(Framework) + "\"";
}
Result += " -framework " + Framework.FrameworkName;
}
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
foreach (string Framework in LinkEnvironment.WeakFrameworks)
{
Result += " -weak_framework " + Framework;
}
return Result;
}
static string GetArchiveArguments_Global(LinkEnvironment LinkEnvironment)
{
string Result = "";
Result += " -static";
return Result;
}
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
public override CPPOutput CompileCPPFiles(CppCompileEnvironment CompileEnvironment, List<FileItem> SourceFiles, string ModuleName, ActionGraph ActionGraph)
{
string Arguments = GetCompileArguments_Global(CompileEnvironment);
string PCHArguments = "";
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 (CompileEnvironment.PrecompiledHeaderAction == PrecompiledHeaderAction.Include)
{
// Add the precompiled header file's path to the include path so GCC can find it.
// This needs to be before the other include paths to ensure GCC uses it instead of the source header file.
var PrecompiledFileExtension = UEBuildPlatform.GetBuildPlatform(UnrealTargetPlatform.IOS).GetBinaryExtension(UEBuildBinaryType.PrecompiledHeader);
PCHArguments += string.Format(" -include \"{0}\"", ConvertPath(CompileEnvironment.PrecompiledHeaderFile.AbsolutePath.Replace(PrecompiledFileExtension, "")));
}
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
foreach(FileReference ForceIncludeFile in CompileEnvironment.ForceIncludeFiles)
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
{
PCHArguments += String.Format(" -include \"{0}\"", ConvertPath(ForceIncludeFile.FullName));
}
// Add include paths to the argument list.
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
HashSet<string> AllIncludes = new HashSet<string>(CompileEnvironment.IncludePaths.UserIncludePaths);
AllIncludes.UnionWith(CompileEnvironment.IncludePaths.SystemIncludePaths);
foreach (string IncludePath in AllIncludes)
{
Arguments += string.Format(" -I\"{0}\"", ConvertPath(Path.GetFullPath(IncludePath)));
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
// sync any third party headers we may need
if (IncludePath.Contains("ThirdParty"))
{
string[] FileList = Directory.GetFiles(IncludePath, "*.h", SearchOption.AllDirectories);
foreach (string File in FileList)
{
FileItem ExternalDependency = FileItem.GetItemByPath(File);
LocalToRemoteFileItem(ExternalDependency, true);
}
FileList = Directory.GetFiles(IncludePath, "*.cpp", SearchOption.AllDirectories);
foreach (string File in FileList)
{
FileItem ExternalDependency = FileItem.GetItemByPath(File);
LocalToRemoteFileItem(ExternalDependency, true);
}
}
}
}
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
foreach (string Definition in CompileEnvironment.Definitions)
{
Arguments += string.Format(" -D\"{0}\"", Definition);
}
CPPOutput Result = new CPPOutput();
// Create a compile action for each source file.
foreach (FileItem SourceFile in SourceFiles)
{
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
Action CompileAction = ActionGraph.Add(ActionType.Compile);
string FileArguments = "";
string Extension = Path.GetExtension(SourceFile.AbsolutePath).ToUpperInvariant();
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 (CompileEnvironment.PrecompiledHeaderAction == PrecompiledHeaderAction.Create)
{
// Compile the file as a C++ PCH.
FileArguments += GetCompileArguments_PCH();
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
FileArguments += GetRTTIFlag(CompileEnvironment);
}
else if (Extension == ".C")
{
// Compile the file as C code.
FileArguments += GetCompileArguments_C();
}
else if (Extension == ".CC")
{
// Compile the file as C++ code.
FileArguments += GetCompileArguments_CPP();
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
FileArguments += GetRTTIFlag(CompileEnvironment);
}
else if (Extension == ".MM")
{
// Compile the file as Objective-C++ code.
FileArguments += GetCompileArguments_MM();
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
FileArguments += GetRTTIFlag(CompileEnvironment);
}
else if (Extension == ".M")
{
// Compile the file as Objective-C++ code.
FileArguments += GetCompileArguments_M();
}
else
{
// Compile the file as C++ code.
FileArguments += GetCompileArguments_CPP();
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3206916) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3175510 on 2016/10/26 by Josh.Adams - New Wolf SDK support (11). - Added new input plugin now that extra NDA is lifted Change 3176629 on 2016/10/27 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3177232 on 2016/10/27 by Josh.Adams - Minor comment change Change 3177348 on 2016/10/27 by Dmitry.Rekman Linux: default to GL4. Change 3177523 on 2016/10/27 by Dmitry.Rekman Linux: update libc++ to 3.9 and add AArch64. Change 3178208 on 2016/10/28 by Daniel.Lamb Enable multithreaded lightmap encoding. Change 3178273 on 2016/10/28 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix crash in PS4 packaging step. - Parallel-for accessing the same log files, causing IOException. Change 3178573 on 2016/10/28 by Dmitry.Rekman Linux: fix for projects not having proper version associations (UE-5954). - Fixed by CengizT. Change 3180487 on 2016/10/31 by Josh.Adams Moved new file to peoper spot Change 3180508 on 2016/10/31 by Josh.Adams - Fixed crash on audio free for Wolf Change 3181821 on 2016/11/01 by Josh.Adams - Fixed ShooterGame cooking after sync from main Change 3182469 on 2016/11/01 by Josh.Adams - test/shipping build wolf fixes Change 3183078 on 2016/11/02 by Josh.Adams - Added AllDesktop back in for Windows (File | Package) Change 3183229 on 2016/11/02 by Josh.Adams - Fixed wrong path in JunkManifest.txt Change 3184245 on 2016/11/02 by Dmitry.Rekman Linux: add AArch64 (ARM64) libs. Change 3184326 on 2016/11/02 by Dmitry.Rekman Linux: add more files for AArch64. Change 3184353 on 2016/11/02 by Dmitry.Rekman Linux: Add missed AArch64 libpng. Change 3184871 on 2016/11/03 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix broken DownloadImage blueprint node on PS4. - Node should return a UTexture2DDynamic, otherwise the RHI assumes the data has been pre-formatted for the GPU, and we get pitch/layout issues. #jira UE-36365 Change 3185407 on 2016/11/03 by Dmitry.Rekman Linux: fix PhysX on AArch64. (Edigrating 3184484 from Wombat to Dev-Platform). Change 3187488 on 2016/11/04 by Josh.Adams Copying //Tasks/UE4/Private-Platform-Switch to Dev-Platform-Minimal (//UE4/Dev-Platform-Minimal) Change 3187740 on 2016/11/04 by Josh.Adams - Re-copying the Switch files, now with proper case in the directory names Change 3188304 on 2016/11/07 by Dan.Mahashin - Removed deprecated functions in NVN window creation Change 3188865 on 2016/11/07 by Luke.Thatcher [PLATFORM] [PS4] [~] Move PS4 console input handler into engine classes from OrionGame. - Enables console input from Sony's "Console Output" tool for all games, in debug/development builds. #jira UE-37672 Change 3189517 on 2016/11/07 by Jeff.Campeau Fix incorrect local platform identification in device manager. #jira UE-38312 Change 3189897 on 2016/11/08 by Luke.Thatcher [PLATFORM] [!] Fix width/height mismatch in DownloadImage blueprint node. Change 3190042 on 2016/11/08 by Josh.Adams - Fixed default and Shooter App Ids for Switch Change 3190181 on 2016/11/08 by Joe.Barnes [UE-37275] Split reflection capture error message into two UE_LOG()s. Line length causes truncation and line wrap on some platforms. Change 3190185 on 2016/11/08 by Joe.Barnes Fix another instance of UE_LOG() where the string was being truncated on Switch platform. Change 3190272 on 2016/11/08 by Daniel.Lamb Add file hashes to depependency tracking info. Moved partial gc controlling code outside of the cooker. Store cooked file hashes in cooked asset registry. Cooked asset registry is now part of the cooker instead of chunking manifest. #test cook paragon Change 3190332 on 2016/11/08 by Omar.Rodriguez Fixing issues with iOS remote notifications * Update UPlatformGameInstance::FPlatformRegisteredForRemoteNotificationsDelegate signature so the parameter is const& which will work with BlueprintAssignable * Fix misspelling when doing respondsToSelector check * Update generated Xcode project to use the generated entitlements file * Add remote-notification as a background mode * Update the generated entitlements file contents to include APS environment for push notifications * Added bEnableRemoteNotificationsSupport ini parameter to control whether iOS push notifications code is compiled Change 3190391 on 2016/11/08 by Brent.Pease UE-31739 - Crash when Deploying to iPad Air with BC4 Texture Compression Setting (Josh's suggestion worked out of the box) Change 3190786 on 2016/11/08 by Bart.Hawthorne Fix some missing PLATFORM_WOLF changes to PLATFORM_SWITCH in ShooterGame Change 3190902 on 2016/11/08 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android #jira UE-37845 #android Change 3190973 on 2016/11/08 by Chris.Babcock Add ability to set element value field with new text parameter for UPL #jira UE-37390 #PR #2869 #ue4 #upl Change 3191411 on 2016/11/09 by Josh.Stoddard Warn when user tries to use a shared pak reader on the wrong thread #jira UE-38049 Change 3191635 on 2016/11/09 by Josh.Stoddard More useful message during cook when AT9 assets fail to encode using SCE's tool #jira UE-38053 Change 3191663 on 2016/11/09 by Peter.Sauerbrei fix for ios build from PC Change 3191701 on 2016/11/09 by Brent.Pease implement iOS device logs on windows Change 3191794 on 2016/11/09 by Daniel.Lamb Fixed up compile error missing header file. #test Compile editor #jira UE-38414 Change 3191807 on 2016/11/09 by Josh.Adams - Fixed one chage that was missed in the WolfPlat->Switch rename Change 3191867 on 2016/11/09 by Josh.Adams - Enabled Switch for ShooterGame project Change 3191958 on 2016/11/09 by Jeff.Campeau Add warning for anyone still using XP Change 3192185 on 2016/11/09 by Josh.Adams - Updated to SDK 0.11.12 - Added TrackLotCheckItem API to track guidelines with limits (nothing using it yet) Change 3192241 on 2016/11/09 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3192324 on 2016/11/09 by Josh.Adams - Worked around an issue with RunOnTarget stripping quotes around paths with spaces #jira UE-38388 Change 3192387 on 2016/11/09 by Josh.Adams - Updating editor icon for Switch #jira UE-38295 Change 3192476 on 2016/11/09 by Dmitry.Rekman Linux: put correct OpenAL lib per architecture. (Edigrating CL 3185947 from Wombat to Dev-Platform) Change 3192527 on 2016/11/09 by Josh.Adams - Fixed a shadow variable warning #jira UE-38408 Change 3192606 on 2016/11/09 by Jeff.Campeau XP option removed #jira UEPLAT-1542 Change 3192644 on 2016/11/09 by Josh.Adams - Fixed a CIS error (not sure why I don't get it, but hey) Change 3192659 on 2016/11/09 by Josh.Adams - Fixed a crash in DeploymentServer Change 3192672 on 2016/11/09 by Jeff.Campeau Fix WinXP message spamming Change 3193252 on 2016/11/10 by Josh.Adams - Remove assertion in SwitchTextureFormat when the SDK can't be found (if you are sharing DLLs) Change 3193756 on 2016/11/10 by Dmitry.Rekman Linux: add support for touch events. (Edigrating CL 3188159 from Wombat to Dev-Platform). Change 3194297 on 2016/11/10 by Jeff.Campeau HarfBuzz implementation for Xbox One #jira UE-28590 Change 3194299 on 2016/11/10 by Jeff.Campeau Pump Xbox One messaging during slow startup tasks #jira UEPLAT-1276 Change 3194300 on 2016/11/10 by Jeff.Campeau Use response files when building for Xbox One #jira UEPLAT-1296 Change 3194313 on 2016/11/11 by Jeff.Campeau Stop uploading symbols on the first error Show a more detailed error message if symbol uploading fails Add a command line option to disable upload of symbols #1852 #jira UE-24425 Change 3194327 on 2016/11/11 by Jeff.Campeau Deduplicate Xbox One build.cs setup for several modules #jira UE-37540 Change 3194402 on 2016/11/11 by Dmitry.Rekman Linux: do not apply mouse workaround unnecessarily. - Only matters when there is more than one window. (Edigrating 3194399 from Wombat to Dev-Platform). Change 3194434 on 2016/11/11 by Dan.Mahashin - Ported fix CL 3193690: Add workaround to file I/O error about ResultInvalidCurrentMemory when reloading levels - remove uncached attribute during memory pool finalization Change 3194569 on 2016/11/11 by Daniel.Lamb Fixed issue with CreateLinker failing to return LinkerLoad but creating a UPackage which can't be cleaned up. Change 3194570 on 2016/11/11 by Daniel.Lamb Fix for DiffSerializeArchive not using the correct archive when saving packages. #test Cook paragon Change 3194571 on 2016/11/11 by Daniel.Lamb Make sure dependent packages are valid before using them. Added FastBuildCookRun bat file for paragon testing. #test Cook Paragon Change 3194575 on 2016/11/11 by Daniel.Lamb Reworked a warning for the cooker. Change 3194698 on 2016/11/11 by Daniel.Lamb Skip skin verify only runs on build machines now. Saves paragon cook time. Change 3194699 on 2016/11/11 by Daniel.Lamb Changed the wording of skip editor content setting so it's more clear. #test none Change 3194702 on 2016/11/11 by Daniel.Lamb Potential fix for default materials not being in chunk zero. #test run ps4 cooked build paragon Change 3194711 on 2016/11/11 by Alicia.Cano Allow RTTI and exceptions to be enabled for Android Allow RTTI to be enabled for IOS, Mac #jira UE-37845, UE-20314 #android #ios #mac Change 3194956 on 2016/11/11 by Josh.Adams - Removed the crash with unknown socket error code, left in the warning Change 3195028 on 2016/11/11 by Dmitry.Rekman Linux: repair launch on. (Edigrating 3194384 from //UE4/Private-Wombat/... to //UE4/Dev-Platform/...) Change 3195041 on 2016/11/11 by Dmitry.Rekman Linux: support selecting architectures per project. (Edigrating 3192783 from Wombat to Dev-Platform). Change 3195058 on 2016/11/11 by Dmitry.Rekman Linux: fix code to determine number of cores. - ARM topology seems not to be in line with the assumptions made by x86-centric code. (Merging 3184632 from Wombat to Dev-Platform). Change 3195082 on 2016/11/11 by Josh.Adams - Fixed name of packaged Switch builds to have the config in it (Shipping, etc) #jira UE-38394 Change 3195151 on 2016/11/11 by Bart.Hawthorne - Add game server settings to project settings to connect to the actual game server, instead of the debug login - Use the system software dialog box to show error codes for login failures Change 3195153 on 2016/11/11 by Josh.Adams - Fixed copy and paste logs errors Change 3195156 on 2016/11/11 by Josh.Adams - Fixed some default values, especially for save games (uses their default of 4MB size) - Added some LotCheck write tracking Change 3195285 on 2016/11/11 by Jeff.Campeau Fix HarfBuzz warning on Xbox One Change 3195477 on 2016/11/11 by Josh.Adams - Fixed up some IsGameOnly calls #jira UE-37575 Change 3195490 on 2016/11/11 by Dmitry.Rekman UAT: fix CIS (removed old variables). Change 3195724 on 2016/11/11 by Josh.Adams - Final fix for name of .nsp (content only projects in Shipping config, etc) #jira UE-38394 Change 3195755 on 2016/11/11 by Josh.Adams - Made translucent Switch icons Change 3195771 on 2016/11/11 by Josh.Adams - Fixed some Switch "space in path" issues #jira UE-38393 Change 3195801 on 2016/11/11 by Josh.Adams - Handle making sure the save is completed before we shutdown #jira UE-38215 Change 3196593 on 2016/11/14 by Michael.Trepka Implemented Info string in AvfMedia for display in Media Player Editor #jira UE-35386 Change 3196782 on 2016/11/14 by Josh.Adams - Added a comment for a workaround Change 3196784 on 2016/11/14 by Michael.Trepka Alembic importer for Mac #jira UE-37708 Change 3196901 on 2016/11/14 by Alicia.Cano ADB over wifi fails to deploy on Launch on. #jira UE-37957 #android Change 3197055 on 2016/11/14 by Josh.Adams - Fixed BinnedAllocator crash that happened with PoisonProxy and large allocations with large alignment Change 3197059 on 2016/11/14 by Josh.Adams - Removed some stat code with no STATS Change 3197066 on 2016/11/14 by Josh.Adams - Fixed the generic growableallocator to not free metadata before it's used for stats, and cleaned up a couple minor things Change 3197176 on 2016/11/14 by Josh.Adams - Added some helper scripts to switch in and out of debug mode on Switch Change 3197183 on 2016/11/14 by Bart.Hawthorne Error dialog fixes based on peer review feedback from JoshA Change 3197339 on 2016/11/14 by Josh.Adams Allow -htcs on the commandline now to override disabling Htcs in packaged builds Change 3197401 on 2016/11/14 by Josh.Adams - Fixed the Switch package installation script to remove the path of the package, since it causes problems with spaces, and also it makes the script less portable! #jira UE-38556 Change 3197691 on 2016/11/14 by Dmitry.Rekman Linux: save added devices. (Edigrating 3196529 from Wombat to Dev-Platform). Change 3197854 on 2016/11/15 by Dan.Mahashin - MemoryProfiler2: fixed Switch parser file path in the csproj Change 3197960 on 2016/11/15 by Dan.Mahashin - NVN RHITransitionResources() directly uses a barrier instead of relying on CopyToResolveTarget() side effect (UE-33834) Change 3198488 on 2016/11/15 by Bart.Hawthorne Submit missing NoRedist/DefaultEngine.ini file Change 3198970 on 2016/11/15 by Michael.Trepka Don't try to use installed Mono 4.6 on Mac as it's known to have issues on macOS 10.12 (for example building the editor with UBT often fails with Mono running out of file desriptors) Change 3199050 on 2016/11/15 by Daniel.Lamb Some more output to help track down iterative cooking scenarios #test Cook paragon Change 3199097 on 2016/11/15 by Josh.Adams - Fixed up Switch packaging to re-generate the meta data in case it changed since compile time (esp with content only projects - Fixed default Program Id in code - Fixed a problem with Run with a space in the path #jira UE-38608 Change 3199181 on 2016/11/15 by Dmitry.Rekman Fix CIS (compiling LinuxTargetDevice without engine). Change 3199253 on 2016/11/15 by Dmitry.Rekman Hopeful fix for a static analysis warning. Change 3199325 on 2016/11/15 by Joe.Barnes Start a new CommandBuffer immediately upon ending one. Prevents fetching when there's no CommandBuffer. Needed for Loading Screen movie playback. Change 3199814 on 2016/11/15 by Dmitry.Rekman Linux: remove forced -windowed when launching. (Merging CL 3199789 from Wombat to Dev-Platform) Change 3200580 on 2016/11/16 by Josh.Adams Updasted DeploymentServer Change 3200595 on 2016/11/16 by Joe.Barnes Removed inadvertent SleepThread() when starting movie playback. Change 3200604 on 2016/11/16 by Josh.Adams - Added NN_MIDDLEWARE macros to tag ths apps as using UE4 middleware Change 3200632 on 2016/11/16 by Brent.Pease Update PlatformShowcase with latest tests Change 3200704 on 2016/11/16 by Dmitry.Rekman Linux: fix native compilation. Change 3200711 on 2016/11/16 by Brent.Pease - Support ios audio streaming from disk - Flushed out ADPCMAudioInfo to be more flexible with buffer management in addition to support streaming from disk. This should make more code platform independent. + Other platforms should work fine but will need to be updated to use the new buffer flexability (and hence simplify their own code and buffer management) - IOS audio implementation simplified to use new ADPCMAudioInfo functionality - Fixed adpcm seamless looping NOTE: While everything works with my testing (admittedly simple tests) a little more code cleanup needs to happen... Change 3201015 on 2016/11/16 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3201023 on 2016/11/16 by Josh.Stoddard Fix splash screen assignment for iPad #jira UE-38623 Change 3201215 on 2016/11/16 by Brent.Pease Hopefully final fix for build breakage Change 3201259 on 2016/11/16 by Josh.Adams - Removed the clock rate settings from the Project Settings, and the cvars - it was just confusing - Further improved the metadata recreation during packaging (can get rid of the temp meta/desc files now I believe) - Reduced audio pool alignment to not waste massive memory from it Change 3202332 on 2016/11/17 by Daniel.Lamb Changed build scripts to support iterative cooking #test Ran new build scripts Change 3202371 on 2016/11/17 by Michael.Trepka Changed FAppleHttpResponse::GetContentLength to return expected content size instead of payload size so it's consistent with other implementations #jira UE-38392 Change 3202421 on 2016/11/17 by Michael.Trepka Decrease the number of max open files for a thread on Apple platforms from 256 to 192 to leave more file descriptors to Cocoa #jira UE-18343 Change 3202462 on 2016/11/17 by Michael.Trepka Fixed HTTP If-None-Match response code on Mac and iOS Fixed by iktomi, https://answers.unrealengine.com/questions/492514/http-if-none-match-logic-isnt-working-on-mac-due-t.html #jira UE-36317 Change 3202620 on 2016/11/17 by Daniel.Lamb Fixed issue with some objects being garbage collected which shouldn't be because the collection handler didn't get registered. Commandlets now do not always have GIsRequestingExit true. Made crash handler check for commandlets running and exit appropriately. #test Rebuild lighting QAGame Change 3202955 on 2016/11/17 by Daniel.Lamb Add support for clearing all the cached cooked platform data for a platform when requested. #test cook QA game #jira UE-38361 Change 3202983 on 2016/11/17 by Daniel.Lamb Added support to rebuild lightmaps commandlet for building lightmaps in seperate files. #test rebuild lighting Custom QAGame maps. #jira OR-31907 Change 3203128 on 2016/11/17 by Josh.Adams - Fixed split screen user selection in ShooterGame (brought over some changes from NickD for it as well) Change 3203537 on 2016/11/18 by Dmitry.Rekman Fix ProjectWorldToScreen node for letterboxed viewports. (Merging CL 3201546 from Wombat to Dev-Platform). Change 3203540 on 2016/11/18 by Dmitry.Rekman Linux: be more verbose when setting vblank sync. (Merging CL 3199633 from Private-Wombat to Dev-Platform). Change 3203599 on 2016/11/18 by Dmitry.Rekman Speedup bForceCompilationAtStartup=True when nothing changed (UE-37067). - PR #2849: Contributed by slonopotamus. Change 3203610 on 2016/11/18 by Dmitry.Rekman Add CEF support for Linux (UE-6743). Change 3203615 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script so it is independent of working dir (UE-37016). - PR #2842 contributed by slonopotamus Change 3203645 on 2016/11/18 by Dmitry.Rekman Linux: fix UnrealCEFSubProcess. Change 3203658 on 2016/11/18 by Dmitry.Rekman Remove hard-coded paths to mono binary (UE-35228). - Another way to implement pull request #2741. Change 3203770 on 2016/11/18 by Josh.Adams - Brought over some changes from Dev-Core to not crash in AsyncLoading with debug code Change 3204244 on 2016/11/18 by Dmitry.Rekman Unsuppress mistakenly suppressed warnings and fix one more (UE-38788). Change 3204277 on 2016/11/18 by Brent.Pease + Fix seamless looping bug found on Dan's QAGame test + Fix static analyzer warning (which was a real bug with uncompressed streaming) + Code review feedback from Aaron + Small addition from channel sync ios bug fix Change 3204576 on 2016/11/18 by Omar.Rodriguez Expose the bEnableRemoteNotificationsSupport ini setting in the iOS project settings. Change 3204629 on 2016/11/18 by Chris.Babcock Fix case of VulkanSwapChain.h #include #jira UE-38843 #ue4 #vulkan Change 3204708 on 2016/11/18 by Josh.Adams - Set SwitchMoviePlayer to include the libs from the proper directory Change 3204730 on 2016/11/18 by Josh.Adams - Changed a check to a checkf to narrow down why FMaterialUniformExpressionType::GetTypeMap().FindRef(TypeName) is returning nullptr on tvOS Change 3204865 on 2016/11/18 by Brent.Pease + Turn off ios console logs on Windows to help sort through ios packaging and launch-on issues - This is NOT a fix but it should make it easier to track down the problem with it off. Change 3204883 on 2016/11/18 by Dmitry.Rekman Linux: fix native LaunchOn (UE-38616). Change 3204914 on 2016/11/18 by Brent.Pease + Turn off the device check to prevent it from conflicting with remote packaging/launch-on Change 3204940 on 2016/11/18 by Josh.Adams Backing out changes to the profiler for Switch. Shouldn't have checked it in today during smoke Change 3204952 on 2016/11/18 by Dmitry.Rekman Linux: fix bootstrap script (UE-38851). - Caused by UE-37016. Change 3205630 on 2016/11/21 by Brent.Pease + Fix audio sound queuing bug by ensuring audio buffers are not reused by different sound source objects. + Cleaned up the locking mechanism around stopping sound sources to make its intent and function are clear + Cleaned up memory tracking and freeing. #jira ue-38846 Change 3205787 on 2016/11/21 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) [CL 3206922 by Josh Adams in Main branch]
2016-11-21 20:27:58 -05:00
FileArguments += GetRTTIFlag(CompileEnvironment);
// only use PCH for .cpp files
FileArguments += PCHArguments;
}
// Add the C++ source file and its included files to the prerequisite item list.
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
AddPrerequisiteSourceFile(CompileEnvironment, SourceFile, CompileAction.PrerequisiteItems);
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 (CompileEnvironment.PrecompiledHeaderAction == PrecompiledHeaderAction.Create)
{
var PrecompiledFileExtension = UEBuildPlatform.GetBuildPlatform(UnrealTargetPlatform.IOS).GetBinaryExtension(UEBuildBinaryType.PrecompiledHeader);
// Add the precompiled header file to the produced item list.
FileItem PrecompiledHeaderFile = FileItem.GetItemByFileReference(
FileReference.Combine(
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
CompileEnvironment.OutputDirectory,
Path.GetFileName(SourceFile.AbsolutePath) + PrecompiledFileExtension
)
);
FileItem RemotePrecompiledHeaderFile = LocalToRemoteFileItem(PrecompiledHeaderFile, false);
CompileAction.ProducedItems.Add(RemotePrecompiledHeaderFile);
Result.PrecompiledHeaderFile = RemotePrecompiledHeaderFile;
// Add the parameters needed to compile the precompiled header file to the command-line.
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
FileArguments += string.Format(" -o \"{0}\"", RemotePrecompiledHeaderFile.AbsolutePath);
}
else
{
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 (CompileEnvironment.PrecompiledHeaderAction == PrecompiledHeaderAction.Include)
{
CompileAction.bIsUsingPCH = true;
CompileAction.PrerequisiteItems.Add(CompileEnvironment.PrecompiledHeaderFile);
}
var ObjectFileExtension = UEBuildPlatform.GetBuildPlatform(UnrealTargetPlatform.IOS).GetBinaryExtension(UEBuildBinaryType.Object);
// Add the object file to the produced item list.
FileItem ObjectFile = FileItem.GetItemByFileReference(
FileReference.Combine(
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
CompileEnvironment.OutputDirectory,
Path.GetFileName(SourceFile.AbsolutePath) + ObjectFileExtension
)
);
FileItem RemoteObjectFile = LocalToRemoteFileItem(ObjectFile, false);
CompileAction.ProducedItems.Add(RemoteObjectFile);
Result.ObjectFiles.Add(RemoteObjectFile);
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
FileArguments += string.Format(" -o \"{0}\"", RemoteObjectFile.AbsolutePath);
}
// Add the source file path to the command-line.
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
FileArguments += string.Format(" \"{0}\"", ConvertPath(SourceFile.AbsolutePath));
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
string CompilerPath = Settings.Value.ToolchainDir + IOSCompiler;
if (!Utils.IsRunningOnMono && BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
CompileAction.ActionHandler = new Action.BlockingActionHandler(RPCUtilHelper.RPCActionHandler);
}
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
string AllArgs = Arguments + FileArguments + CompileEnvironment.AdditionalArguments;
string SourceText = System.IO.File.ReadAllText(SourceFile.AbsolutePath);
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 (CompileEnvironment.bOptimizeForSize && (SourceFile.AbsolutePath.Contains("ElementBatcher.cpp") || SourceText.Contains("ElementBatcher.cpp") || SourceFile.AbsolutePath.Contains("AnimationRuntime.cpp") || SourceText.Contains("AnimationRuntime.cpp")
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
|| SourceFile.AbsolutePath.Contains("AnimEncoding.cpp") || SourceText.Contains("AnimEncoding.cpp") || SourceFile.AbsolutePath.Contains("TextRenderComponent.cpp") || SourceText.Contains("TextRenderComponent.cpp")
Copying //UE4/Release-Staging-4.12 to //UE4/Dev-Main (Source: //UE4/Release-4.12 @ 2962397) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2962397 on 2016/05/02 by Dmitriy.Dyomin Fixed: Crash generating LOD for a Landscape #jira UE-30144 Change 2962367 on 2016/05/01 by Zachary.Wilson Building lighting on QA-Effects #jira UE-29618 Change 2962363 on 2016/05/01 by Zachary.Wilson Updating Reflection Capture Test Content #jira UE-29618 Change 2962362 on 2016/05/01 by Benjamin.Hyder Built Lighting in QA-PostProcessing level #jira UE-29618 Change 2962361 on 2016/05/01 by Zachary.Wilson Adding testing content for Custom Resolutions and Cubemaps for Sky Cubemaps and Reflection Probes. #jira UE-29618 Change 2962357 on 2016/05/01 by Benjamin.Hyder Built Lighting for Tm_SceneTexture #jira UE-29618 Change 2962356 on 2016/05/01 by Benjamin.Hyder Adding PlayerStart to TM-TranslucencyLghtingMode map #jira UE-29618 Change 2962351 on 2016/05/01 by Benjamin.Hyder Adding high Precision GBuffer Normal Encoding example to TM-Shadermodels #jira UE-29618 Change 2962349 on 2016/05/01 by Benjamin.Hyder Correcting Planar Reflection in TM-Shadermodels #Jira UE-29618 Change 2962348 on 2016/05/01 by Benjamin.Hyder Adding Planar Reflection Test Case content to TM-Shadermodels #jira UE-29618 Change 2962347 on 2016/05/01 by Zachary.Wilson Adding testing content for Dual Normal Clfar Coat Material Expression #jira UE-29618 Change 2962340 on 2016/05/01 by Zachary.Wilson Adding testing content for engine scalability (WIP) #jira UE-29618 Change 2962173 on 2016/04/30 by Ben.Marsh Fix typo. Change 2962172 on 2016/04/30 by Ben.Marsh Disable Vulkan in installed UE4 buids. Build machines don't have the Vulkan SDK installed so they can't generate static libraries for VulkanRHI, so if we try to link against it on user's machines they'll fail due to the missing LIB. #jira UE-30156 Change 2961782 on 2016/04/29 by Mike.Beach Guarding against an invalid (null) target for the Blueprint debugger (watch viewer) panel. #jira UE-30110 Change 2961780 on 2016/04/29 by Mike.Beach Guarding against interface arrays with null entries (null checking in property editor processing code). #jira UE-30015 Change 2961580 on 2016/04/29 by Owen.Stupka #jira UE-29796 Rollback //UE4/Release-4.12/Samples/NotForLicensees/ProtoStar/Content/Blueprints/NickD/StarCoreSliceNick.uasset to revision 2 Change 2961531 on 2016/04/29 by Ryan.Gerleve Fix for an assert that could occur in monolithic builds when seamless traveling while recording a replay. #jira UE-22047 Change 2961499 on 2016/04/29 by Marc.Audy Use accessor instead of variable directly. #jira UE-00000 Change 2961492 on 2016/04/29 by Chris.Babcock Android Vulkan dynamic loader with fallback to ES2 - works with either NDK r11c+ or VulkanSDK (does not require .so) #jira UEPLAT-1249 #jira UEMOB-103 #ue4 #android Change 2961462 on 2016/04/29 by Chris.Babcock Fix issue with stripping symbols for non-armv7 architectures #jira UE-30138 #android #ue4 Change 2961442 on 2016/04/29 by Marc.Audy Fix undo/redo of attachment between an IWCE and blueprint constructed component not working #jira UE-28948 Change 2961400 on 2016/04/29 by Samuel.Proctor Test assets for FiB test cases. #jira UE-29618 Change 2961382 on 2016/04/29 by Daniel.Lamb Fix for shadowed variables. #jira UE-29470 Change 2961319 on 2016/04/29 by mitchell.wilson #jira UE-29618 - Adding TM-LandscapeFoliage map Change 2961278 on 2016/04/29 by Chris.Babcock Fix 64-bit cast #jira UE-30132 #ue4 #android Change 2961263 on 2016/04/29 by Daniel.Lamb Fixed issue with iterative cooking missing dependent sublevels when checking for dependent timestamps. #jira UE-29470 Change 2961227 on 2016/04/29 by Taizyd.Korambayil #jira UE-30068 Resaved Some assets and Updated TexturePool in DefaultEninge.ini Change 2961208 on 2016/04/29 by Nick.Darnell UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping. #jira UE-29919 Change 2961190 on 2016/04/29 by Nick.Darnell UMG - Unable to reproduce the issue of the designer crashing because it popping more messages than it has, but adding a check to make sure the array isn't already empty before popping. #jira UE-29919 Change 2961161 on 2016/04/29 by Gareth.Martin Added warnings when trying to use the Landscape Visibility Tool without the landscape material having a "Landscape Visibility Mask" node. #jira UE-30032 Change 2961109 on 2016/04/29 by Keith.Judge Xbox One - Enable USE_NEW_LOCK_FREE_LISTS, and refactor code to allow VS2015 to compile it (was using a non-standard GCC/Clang behaviour). Lots of duplicated code, but there already was... #jira UEPLAT-1288 Change 2961055 on 2016/04/29 by Mike.Beach Mirroring CL 2961019: Temporarily disabling InitProperties() spawning optimization, as it was causing GC issues. #jira UE-29940 Change 2961018 on 2016/04/29 by Rolando.Caloca UE4.12 - Compile fix for shipping #jira UE-30096 Change 2960921 on 2016/04/29 by Matthew.Griffin Updated AutoSDK used by Android so that arm64 will build Change 2960920 on 2016/04/29 by Martin.Wilson Missing files from 2960847 #jira ue-25715 Change 2960906 on 2016/04/29 by Peter.Sauerbrei added more explicit message when the deployment fails due to device not on provision #jira UE-19875 Change 2960869 on 2016/04/29 by Chris.Bunner Allow custom material nodes to be used with tessellation outputs. #jira UE-29586 Change 2960847 on 2016/04/29 by Martin.Wilson Fix setting incorrect animation assets on anim player nodes. #jira ue-25715 Change 2960842 on 2016/04/29 by Keith.Judge Xbox One - Remove SetGpuMemoryPriority() call as it turns out most actual game titles are CPU bound, and this is just hurting them. #jira UEPLAT-1288 Change 2960841 on 2016/04/29 by Keith.Judge Xbox One - Make temporary buffers last for three frames. #jira UEPLAT-1288 Change 2960838 on 2016/04/29 by Keith.Judge Xbox One - Change the MemoryBarrier function to be FORCENOINLINE so that the compiler doesn't reorder writes around it. #jira UEPLAT-1288 Change 2960834 on 2016/04/29 by Keith.Judge Xbox One - Change GPUMalloc memory type to write combined, as cached non-coherent caused major UMG flickering issues, and would appear to be unsafe, according to the latest XDK docs. #jira UEPLAT-1288 Change 2960829 on 2016/04/29 by Keith.Judge Xbox One - Fix RHIUpdateTexture2D not actually updating the texture. It was silently failing because the GPU_READONLY flag was set on the memory. Grrrrrr! #jira UEPLAT-1288 Change 2960826 on 2016/04/29 by Keith.Judge Xbox One - Turn on GSupportsEfficientAsyncCompute and GSupportsParallelOcclusionQueries. Duplcated from Dev-Platform. #jira UEPLAT-1288 Change 2960820 on 2016/04/29 by Keith.Judge Xbox One - Replicate Windows critical section changes. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960819 on 2016/04/29 by Marc.Audy Owned components are once again referenced by their Owning actor for GC purposes #jira UE-29131 Change 2960817 on 2016/04/29 by Keith.Judge Xbox One - Further fix for flickering HUD. Also seems to fix weird bloom when Fast Semantics are enabled. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960814 on 2016/04/29 by Keith.Judge Xbox One - Fix crash when creating odd sized textures with initial data. Duplicated from Dev-Platform. #jira UEPLAT-1288 Change 2960805 on 2016/04/29 by Keith.Judge Fix .ini.ini filename issue (duplicated fix from Dev-Platform). #jira UES-2270 Change 2960797 on 2016/04/29 by Mason.Seay Deleting asset associated with crashing map, just to be safe (neither are needed anymore) #jira UE-25215 Change 2960793 on 2016/04/29 by Mason.Seay Deleting map that's causing a crash #jira UE-25215 Change 2960774 on 2016/04/29 by Robert.Manuszewski (temp) Fix for missing packages after cooking. #jira UE-29876 Change 2960747 on 2016/04/29 by Jurre.deBaare Mac build fixes #jira abc-123 Change 2960739 on 2016/04/29 by Benn.Gallagher Use mesh update mode to update cloth rather than whether or not it was rendered. #jira UE-25934 Change 2960707 on 2016/04/29 by Jurre.deBaare HLOD cluster dirtying from changes in static mesh component and spline mesh component, required making the HierarchicalLODUtilities Module to have an abstract interface (for dynamic loading in the Engine module) #jira UE-24378 Change 2960704 on 2016/04/29 by Matthew.Griffin Added Architectures and GPUArchitectures to UEBuildConfiguration that can be passed through on the UBT command line Changed Android Tool Chain so that it checks the command line architectures as an additional way to setup which ones to build Added option to pass architectures on command line when precompiling monolithic targets via UAT (with armv7, arm64 & es2 set for Android for now) Added code to read precompiled architectures in Rocket build and write out additional Installed Platform Info entries for each one #jira UEB-560 Change 2960694 on 2016/04/29 by Robert.Manuszewski Log free disk space when DirectoryWatcher's File Cache fails to move a file. #jira UE-24660 Change 2960687 on 2016/04/29 by Benn.Gallagher Demoted eINTERNAL_ERROR (PhysX error code) to warning as we were flagging things too zealously (degenerate poly failing a cook) #jira UE-30053 Change 2960381 on 2016/04/28 by Chris.Babcock Handle movie playback not covering full surface #jira UE-28705 #ue4 #android Change 2960162 on 2016/04/28 by Ryan.Vance #jira UE-30099 Re-enabling the occlusion area mask for the Rift. Any Rift HMD's newer than the CB prototype will use the CV1 masks. We'll need to revist this in the future. We need to ensure we always set the InstancedEyeIndex uniform if it's bound. Otherwise passes that aren't using instanced stereo will resolve their views using an uninitialized variable (translucency). Change 2960100 on 2016/04/28 by Andrew.Porter Removing old sub sequences. #jira UE-29618 Change 2959962 on 2016/04/28 by Peter.Sauerbrei fix for enabling InApp purchasing not enabling Online Subsystem IOS #jira UE-25512 Change 2959937 on 2016/04/28 by Patrick.Donovan Screen aligned UVs test material for QAGame for testing if they work in VR. #jira UE-29618 Change 2959914 on 2016/04/28 by Dan.Oconnor Fix for copy paste error, likely of no consequence because nothing calls IsExporting(), found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959859 on 2016/04/28 by Ryan.Gerleve Fix for fatal error crash when loading the default map fails. Now we load a dummy world and request graceful exit in standalone, or shutdown the current play session in PIE. #jira UE-26634 Change 2959856 on 2016/04/28 by Chris.Babcock Fix scaling on low-resolution devices in Match3 #jira UE-28706 #ue4 #match3 Change 2959839 on 2016/04/28 by Dan.Oconnor Fix IsControlCharacter result for 'pop directional isolate' character (u2069), found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959836 on 2016/04/28 by Dan.Oconnor Remove unused local variable, found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959829 on 2016/04/28 by Dan.Oconnor Using OverridePredrawBatchTime and OverridePredrawBatchTime correctly, found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959817 on 2016/04/28 by Peter.Sauerbrei fix for parsing the IOS Device ID addition of iPhone SE (courtesy davidrpozesky, PR2307) addition of iPadPro 9.7 #jira UE-21921 Change 2959808 on 2016/04/28 by Nick.Darnell UBT - Restoring GetModuleFilename to the RulesCompiler but only to deprecate it, and point users at the method they should now be using. #jira ue-none Change 2959805 on 2016/04/28 by Chad.Taylor Merging //UE4/Dev-VR/Engine/... to //UE4/Release-4.12/Engine/... #jira UEBP-188 Change 2959798 on 2016/04/28 by Dan.Oconnor Manually integrate 2947850, also found with PVS-Studio by Robert Troughton #jira UE-30058 Change 2959796 on 2016/04/28 by Aaron.McLeran Duplicating CL 2959785 from //UE4/Dev-Framework #jira UE-30083 Sound concatenator node doesn't progress if child nodes don't produce wave instances #tests created new sound cue with concat node with child nodes that don't play sound-instances, concat node continues playing Change 2959793 on 2016/04/28 by Dan.Oconnor Fixed setter that did nothing, found with PVS-Studio by Robert Troughton. This code will be removed soon. #jira UE-30058 Change 2959739 on 2016/04/28 by Ori.Cohen Remove box2d ensure as it's confusing for legit crashes since it shows up in the end of the log. #JIRA UE-29932 Change 2959709 on 2016/04/28 by Nick.Darnell Slate - Menu Stack no longer crashes when forcefully dismissing multiple menus in the stack at once. #jira UE-30087 Change 2959701 on 2016/04/28 by Nick.Darnell Slate - The MoviePlayer now has an OnPrepareLoadingScreen callback that modules can hook instead of relying on the PreLoadMap, which depending on when you hook it, you may be before or after the movie player. Therefore to aleviate that ordering problem - if the movie player goes to play a loading screen and one has not yet been configured this callback will be triggered so that hopefully one is supplied. #jira UE-30085 Change 2959691 on 2016/04/28 by Nick.Darnell UMG - Fixed Aspect ratios now correctly size the right side of the screen, allowing right anchored content to be fit properly inside the black frame borders. #jira UE-30084 Change 2959678 on 2016/04/28 by mason.seay Updated test sound cue asset, as it appeared to be partially filled out. Moved it out of developer folder. Also rebuilt lighting on associated test map. #jira UE-29618 Change 2959514 on 2016/04/28 by Aaron.McLeran Duplicating CL 2959506 from //UE4/Dev-Framework #jira UE-30000 PR #2330: Fix for ambient sounds not stopping when active and told to play again (Contributed by hgamiel) #tests Playing another looping sound on an audio component will stop the previous looping sound. Change 2959486 on 2016/04/28 by Bob.Tellez Duplicating CL#2948431 from //Orion/Dev-General CL#s 2919775 and 2942793 integrated to prevent annotation map performance problems on shutdown and asserts in PIE. #JIRA UE-29625 #tests Ran editor Change 2959414 on 2016/04/28 by Chad.Taylor IStereoLayers API and Oculus Rift implementation #jira UEBP-185 Change 2959395 on 2016/04/28 by Taizyd.Korambayil #jira UE-29710 Resaved Kite Demo Maps and Audio files to Fix Build Warnings Change 2959386 on 2016/04/28 by Richard.TalbotWatkin Replicated from CL 2959360 in //UE4/Dev-Editor/ Fixed potential crash when mesh painting actors whose geometry adapters are no longer registered. #jira UE-29615 - [CrashReport] UE4Editor_MeshPaint!FEdModeMeshPaint::DoPaint() [meshpaintedmode.cpp:1127] Change 2959377 on 2016/04/28 by Matthew.Griffin Added 2015 versions of OpenSSL dlls to list of RuntimeDependencies, so that they will be included in the binary build #jira UE-30024 Change 2959367 on 2016/04/28 by Alexis.Matte #jira OR-20622 make sure LOD import Materials get map with LOD 0 material index Change 2959302 on 2016/04/28 by Jamie.Dale Removed invalid assert #jira UE-30042 Change 2959263 on 2016/04/28 by Peter.Sauerbrei fix for virtual joysticks showing up on tvOS removed usage of ES2 define for tvOS #jira UE-26122 Change 2959235 on 2016/04/28 by Taizyd.Korambayil #jira UE-29744 Resaved Vehicle Game maps to Fix Build Warnings Change 2959177 on 2016/04/28 by Thomas.Sarkanen Fixed curve names getting incorrectly duplicated when DuplicateObject was called Fixes crash when trying to convert curves to metadata after newly importing a sequence. #jira UE-29988 - Crash when converting custom curve to metadata in persona Change 2959170 on 2016/04/28 by Taizyd.Korambayil #jira UE-29683 Resaved Maps to Fix Build Warnings #jira UE-29685 #jira UE-29679 #jira UE-29684 Change 2959154 on 2016/04/28 by Dan.Bullard Added Media Player assets and added example to TM-ShaderModels. #jira UE-29618 Change 2959112 on 2016/04/28 by Jamie.Dale Fixed a long time IME crash that could happen under certain circumtances #jira OPP-5607 Change 2959086 on 2016/04/28 by Jamie.Dale Refreshing the editable text layout now makes sure the layout is up-to-date This addresses some update issues when the widget is being ticked, but not running a layout pass. #jira UE-30054 Change 2958927 on 2016/04/28 by Phillip.Kavan [UE-30040] Fix broken editor UI display of values for int32 properties tagged as bitmask fields when the high bit is set. #jira UE-30040 Change 2958730 on 2016/04/28 by Phillip.Kavan [UE-23087] Don't apply near-zero delta values while drag-scaling inside the Blueprint editor's preview viewport. #jira UE-23087 Change 2958566 on 2016/04/27 by Marcus.Wassmer Fix material preview and PostProcessAmbient #jira UE-29994 Change 2958459 on 2016/04/27 by mason.seay Test assets for Sound Class Override #jira UE-29618 Change 2958399 on 2016/04/27 by Owen.Stupka #jira UE-29924 Back out CL 2958355, change was in wrong position. Change 2958395 on 2016/04/27 by Aaron.McLeran Duplicating CL#2950482 from //UE4/Dev-Framework #jira FORT-22973 SoundMix Fade Time not fading audio properly - Bug was due to bApplyToChildren case where the FSoundClassAdjuster wasn't getting the interpolated value before calling RecursiveApplyAdjuster in the case of non-overriden sound mixes. #tests Apply a sound mix using a child sound class with apply-to-children enabled. Sound mix properly interpolates. Change 2958387 on 2016/04/27 by Aaron.McLeran Duplicating CL#2954865 from //UE4/Dev-Framework #jira UE-29763 Use HMD audio device only in VR preview mode, not for other PIE session types. #tests run editor in PIE with HMD connected, audio only plays on PC, then run in VR-Preview with HMD connected, audio plays on HMD audio device Change 2958381 on 2016/04/27 by Josh.Adams - Fixed compile error in IOSDeviceHelperMac.cpp #lockdown nick.penwarden #jira UE-30037 Change 2958355 on 2016/04/27 by Owen.Stupka #jira UE-29924 Fix for UAT issues on Mac. Change 2958351 on 2016/04/27 by Aaron.McLeran Duplicating CL#2957953 from //UE4/Dev-Framework #jira UE-30018 Fixing up audio component ref-counting to prevent triggering notifications when an audio component is still active after a sound finishes playing. #tests run audio component with auto-activate, call play, setup notification callback in BP, note that only triggered once Change 2958344 on 2016/04/27 by Taizyd.Korambayil #jira UE-29720 Resaved Audio Files to fix NodeGUID Warnings Change 2958342 on 2016/04/27 by mitchell.wilson #jira UE-29618 updating shot_002 to fix an issue with snapping. Change 2958315 on 2016/04/27 by Marc.Audy No longer use component pooling, but instead spawn Actors for thumbnail display #jira UE-17453 Change 2958289 on 2016/04/27 by Marc.Audy Don't crash rerunning construction script on a child actor that belongs to a ownerless child actor component #jira UE-30033 Change 2958280 on 2016/04/27 by Taizyd.Korambayil #jira UE-29723 Resaved Maps and Audio Files Change 2958237 on 2016/04/27 by Taizyd.Korambayil #jira UE-29687 Resaved Some Assets to Fix Build Warnings Change 2958176 on 2016/04/27 by Taizyd.Korambayil #jira UE-29701 Resaved Some Assets to Fix Build Warnings Change 2958172 on 2016/04/27 by Ori.Cohen Back out changelist 2955134 #JIRA UE-30030 Change 2958121 on 2016/04/27 by Taizyd.Korambayil #jira UE-29706 Resaved Some Assets to Fix Build Warnings Change 2958070 on 2016/04/27 by Peter.Sauerbrei fix for launch on to tvOS from PC properly filter out tvOS devices when launching to IOS and vice versa #jira UE-29928 Change 2958029 on 2016/04/27 by Andrew.Rodham Fixed SMenuAnchor::bIsCollapsedByParent not being respected #jira UE-30016 Change 2957962 on 2016/04/27 by Alexis.Matte #jira UE-29984 Pixel inspector crash Fix the viewport id Change 2957908 on 2016/04/27 by Andrew.Rodham Sequencer: Fixed being unable to render out 4K image sequences using matinee or sequencer #jira UE-29171 Change 2957880 on 2016/04/27 by Peter.Sauerbrei fix for metal not being enabled in iOS 8 added some checks for bSupportsResourceOptions in Lock/Unlock #jira UE-29268 Change 2957860 on 2016/04/27 by Gareth.Martin Fixed landscape grass not updating when using a material instance as the landscape material and changing parameters #jira UE-29471 Change 2957833 on 2016/04/27 by Taizyd.Korambayil #jira UE-29707 Replaced Deprecated Nodes and Resaved Audio Files to Fix Build Warnings Change 2957805 on 2016/04/27 by Max.Chen Sequencer: Fix crash in UMG when a property changes and there's no movie scene. #jira UE-30008 Change 2957803 on 2016/04/27 by Taizyd.Korambayil #jira UE-29718 Resaved Audio Files and Maps to Fix NodeGuid Warnings Change 2957799 on 2016/04/27 by Max.Chen Sequencer: Fix visibility track name so that it says "Visibility" #jira UE-29996 Change 2957777 on 2016/04/27 by Allan.Bentham Workaround ES31 HQ DoF producing no effect with vulkan rhi. #jira UE-30006 Change 2957763 on 2016/04/27 by Taizyd.Korambayil #jira UE-29678 Resaved Maps to Fix Build Errors Change 2957740 on 2016/04/27 by Taizyd.Korambayil #jira UE-29628 Resaved Maps to fix Build Warnings Change 2957713 on 2016/04/27 by Taizyd.Korambayil #jira UE-29715 Resaved Maps to Fix Build Warnings Change 2957678 on 2016/04/27 by Taizyd.Korambayil #jira UE-29677 Fixed up AnimBP and resaved some assets to fix Build Warnings Change 2957627 on 2016/04/27 by Frank.Fella UMG - Sequencer - Fix material animation for materials on struct properties e.g. style materials, and fix the naming so that it's [Original Name]_Animated #Jira UE-29319 #Jira UE-29321 Change 2957625 on 2016/04/27 by Taizyd.Korambayil #jira UE-29689 Replaced deprecated Nodes and Resaved some assets to Fix Warnings Change 2957603 on 2016/04/27 by mitchell.wilson #jira UE-29618 updating Test-Animation for UMG test. Adding M_SequenceUMG material for UMG testing Change 2957577 on 2016/04/27 by Ben.Marsh EC: Increase the number of changes queried to display the EC dashboard. Some changes are getting filtered out. Change 2957569 on 2016/04/27 by Maciej.Mroz #jira UE-27735 Enumerators are not set correctly in packaged games if Nativize Blueprint Assets is set to true merged from Dev-Blueprints 2957564 Change 2957565 on 2016/04/27 by Taizyd.Korambayil #jira UE-29721 Resaved Some Content to Fix Empty Engine Version Error Change 2957558 on 2016/04/27 by Matthew.Griffin Updated Installed Engine Filters now that Linux has dropped the architecture from its .target files #jira UE-29899 Change 2957504 on 2016/04/27 by Marc.Audy Persist component instance data cache through blueprint construction that results in "disaster recovery mode" #jira UE-20385 Change 2957162 on 2016/04/26 by Dmitriy.Dyomin Fixed: Some Unicode letters are not properly displayed with FCanvasTextItem in Android device #jira UE-25861 Change 2957117 on 2016/04/26 by Dan.Oconnor PR #2289: Exposing "IsValidIndex" Array function to Blueprints (Contributed by eXifreXi) Modifications: typo fix in Array.h, made blueprint description consistent with native function, removed redundant nullptr check, added P_NATIVE timer macros, added custom thunk implementation for cpp backend #jira UE-29563 Change 2957057 on 2016/04/26 by Dan.Oconnor Tweak logic used to make variable nodes more accessible Motivation was PR#2202 by Lucyberad #jira UE-28802 Change 2956884 on 2016/04/26 by Jamie.Dale Removed an assert that can be triggered by certain IMEs #jira UE-19744 Change 2956876 on 2016/04/26 by Dan.Oconnor PR #2288: Adjustment of RInterpTo and RInterpTo_Constant descriptions to match function. (Contributed by CelPlays) #jira UE-29495 Change 2956860 on 2016/04/26 by Max.Preussner Sockets: Fixed incorrect socket timeout when value < 1 ms (UE-29973) #jira: UE-29973 Change 2956801 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added r.Vulkan.SubmitOnCopyToResolve to help track down submit issues #jira UE-28140 Change 2956679 on 2016/04/26 by Andrew.Rodham Editor: Fixed not being able to switch between cinematic/default viewport types #jira UE-29942 Change 2956674 on 2016/04/26 by James.Fox Updated Blueprint Bitmask test asset to include Bitwise OR. #jira UE-29618 Change 2956573 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added TRANSFER_BIT to swapchain images since it's required for clearing #jira UE-28140 Change 2956572 on 2016/04/26 by Rolando.Caloca UE4.12 - vk - Added alignment to buffer offsets depending on usage #jira UE-28140 Change 2956502 on 2016/04/26 by Peter.Sauerbrei fix for missing particles on iPhone 5 when compiling for size re-enable compile for size for Match 3 #jira UE-28721 Change 2956445 on 2016/04/26 by Taizyd.Korambayil #jira UE-29691 Resaved some Animation Assets to Fix Build Warnings Change 2956382 on 2016/04/26 by Taizyd.Korambayil #jira UE-29688 Resaved Maps in Infiltrator Demo t oFix Some Build Warnings Change 2956332 on 2016/04/26 by Patrick.Donovan Adding physics asset set up for Capsule shadows for easy testing of capsule shadows in VR and with instanced stereo enabled. #jira UE-29618 Change 2956301 on 2016/04/26 by Ben.Marsh Disable notification emails for warnings in Rocket sample builds. Change 2956264 on 2016/04/26 by Peter.Sauerbrei fix for binary release generation of bp-only project files for IOS on Mac #jira UE-29934 Change 2956247 on 2016/04/26 by Jurre.deBaare Fix for Mac compile #jira UE-123ABC Change 2956192 on 2016/04/26 by Jurre.deBaare - Changed signatures for merging static mesh (LOD index now incorporated in merge data structure) - Proxy mesh and Mesh merging now just merges one specific LOD index per input mesh (instead of looping over all LOD levels) - Moved SourceStaticMesh and addex ExportLODIndex to FMeshMergeData structure - LightMap Index for merged static meshes is now set correctly - Added enum to MaterialProxySettings for distinction between (non-)Simplygon uses of the struct - Move MergeActor tab spawner out of experimental (removed option from config) and moved into Developer Tools/Misc #jira UE-28319 Change 2956183 on 2016/04/26 by mitchell.wilson #jira UE-29618 Adding new sequence for assign actor testing. Updating sequencer levels for assign actor testing Change 2956152 on 2016/04/26 by Lina.Halper - removed invalid ensure because it doesn't check recursive, it does have different value with validation #jira : UE-29945 Change 2956034 on 2016/04/26 by Andrew.Rodham Sequencer: Skeletal animation tracks now evaluate the nearest section where no animation section is present - This is more consistent with how other tracks evaluate, and guarantees a deterministic animated state #jira UE-28073 Change 2956002 on 2016/04/26 by Taizyd.Korambayil #jira UE-29729 Resaved Blueprints to Fix Build Warnings Change 2955999 on 2016/04/26 by Max.Chen Sequencer: Refresh instances when done recording. This fixes a bug where spawned recorded actors aren't visible when done recording. #jira UE-29841 Change 2955983 on 2016/04/26 by Andrew.Rodham Removing Saved, Intermediate, and DerivedDataCache folders from SubwaySequencer sample project. #jira UE-29938 Change 2955979 on 2016/04/26 by Taizyd.Korambayil #jira UE-29728 Resaved Some assets to Fix Build Warnings Change 2955941 on 2016/04/26 by Taizyd.Korambayil #jira UE-29730 Resaved Maps to Fix Build Warnings Change 2955937 on 2016/04/26 by Andrew.Rodham Sequencer: When recording actors as spawnables, we no longer duplicate the object, rather create a new instance of the same class - This fixes issues caused by undersiable state being saved into the spawnable defaults Merged from //UE4/Dev-Sequencer/...@2952610 #jira UE-29774 Change 2955888 on 2016/04/26 by mitchell.wilson #jira UE-29618 Updating shots for sequencer testing Change 2955635 on 2016/04/26 by Max.Chen Sequencer: Fix filtering so that folders that contain filtered nodes will also appear. #jira UE-28213 [CL 2969385 by Matthew Griffin in Main branch]
2016-05-06 15:20:28 -04:00
|| SourceFile.AbsolutePath.Contains("SWidget.cpp") || SourceText.Contains("SWidget.cpp") || SourceFile.AbsolutePath.Contains("SCanvas.cpp") || SourceText.Contains("SCanvas.cpp") || SourceFile.AbsolutePath.Contains("ShaderCore.cpp") || SourceText.Contains("ShaderCore.cpp")
|| SourceFile.AbsolutePath.Contains("ParticleSystemRender.cpp") || SourceText.Contains("ParticleSystemRender.cpp")))
{
Console.WriteLine("Forcing {0} to --O3!", SourceFile.AbsolutePath);
AllArgs = AllArgs.Replace("-Oz", "-O3");
}
// RPC utility parameters are in terms of the Mac side
CompileAction.WorkingDirectory = GetMacDevSrcRoot();
CompileAction.CommandPath = CompilerPath;
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
CompileAction.CommandArguments = AllArgs; // Arguments + FileArguments + CompileEnvironment.AdditionalArguments;
CompileAction.StatusDescription = string.Format("{0}", Path.GetFileName(SourceFile.AbsolutePath));
CompileAction.bIsGCCCompiler = true;
// We're already distributing the command by execution on Mac.
CompileAction.bCanExecuteRemotely = false;
CompileAction.bShouldOutputStatusDescription = true;
CompileAction.OutputEventHandler = new DataReceivedEventHandler(RemoteOutputReceivedEventHandler);
}
return Result;
}
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
public override FileItem LinkFiles(LinkEnvironment LinkEnvironment, bool bBuildImportLibraryOnly, ActionGraph ActionGraph)
{
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
string LinkerPath = Settings.Value.ToolchainDir +
(LinkEnvironment.bIsBuildingLibrary ? IOSArchiver : IOSLinker);
// Create an action that invokes the linker.
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
Action LinkAction = ActionGraph.Add(ActionType.Link);
if (!Utils.IsRunningOnMono && BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
LinkAction.ActionHandler = new Action.BlockingActionHandler(RPCUtilHelper.RPCActionHandler);
}
// RPC utility parameters are in terms of the Mac side
LinkAction.WorkingDirectory = GetMacDevSrcRoot();
// build this up over the rest of the function
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
string LinkCommandArguments = LinkEnvironment.bIsBuildingLibrary ? GetArchiveArguments_Global(LinkEnvironment) : GetLinkArguments_Global(LinkEnvironment);
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 (!LinkEnvironment.bIsBuildingLibrary)
{
// Add the library paths to the argument list.
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
foreach (string LibraryPath in LinkEnvironment.LibraryPaths)
{
LinkCommandArguments += string.Format(" -L\"{0}\"", LibraryPath);
}
// Add the additional libraries to the argument list.
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
foreach (string AdditionalLibrary in LinkEnvironment.AdditionalLibraries)
{
// for absolute library paths, convert to remote filename
if (!String.IsNullOrEmpty(Path.GetDirectoryName(AdditionalLibrary)))
{
// add it to the prerequisites to make sure it's built first (this should be the case of non-system libraries)
FileItem LibFile = FileItem.GetItemByPath(AdditionalLibrary);
FileItem RemoteLibFile = LocalToRemoteFileItem(LibFile, true);
LinkAction.PrerequisiteItems.Add(RemoteLibFile);
// and add to the commandline
LinkCommandArguments += string.Format(" \"{0}\"", ConvertPath(Path.GetFullPath(AdditionalLibrary)));
}
else
{
LinkCommandArguments += string.Format(" -l\"{0}\"", AdditionalLibrary);
}
}
}
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
// Add any additional files that we'll need in order to link the app
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
foreach (string AdditionalShadowFile in LinkEnvironment.AdditionalShadowFiles)
{
FileItem ShadowFile = FileItem.GetExistingItemByPath(AdditionalShadowFile);
if (ShadowFile != null)
{
QueueFileForBatchUpload(ShadowFile);
LinkAction.PrerequisiteItems.Add(ShadowFile);
}
else
{
throw new BuildException("Couldn't find required additional file to shadow: {0}", AdditionalShadowFile);
}
}
}
// Handle additional framework assets that might need to be shadowed
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
foreach (UEBuildFramework Framework in LinkEnvironment.AdditionalFrameworks)
{
if (Framework.OwningModule == null || Framework.FrameworkZipPath == null || Framework.FrameworkZipPath == "")
{
continue; // Only care about frameworks that have a zip specified
}
// If we've already remembered this framework, skip
if (RememberedAdditionalFrameworks.Contains(Framework))
{
continue;
}
// Remember any files we need to unzip
RememberedAdditionalFrameworks.Add(Framework);
// Copy them to remote mac if needed
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
FileItem ShadowFile = FileItem.GetExistingItemByPath(GetLocalFrameworkZipPath(Framework));
if (ShadowFile != null)
{
QueueFileForBatchUpload(ShadowFile);
LinkAction.PrerequisiteItems.Add(ShadowFile);
}
else
{
throw new BuildException("Couldn't find required additional file to shadow: {0}", Framework.FrameworkZipPath);
}
}
}
// Add the output file as a production of the link action.
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
FileItem OutputFile = FileItem.GetItemByFileReference(LinkEnvironment.OutputFilePath);
FileItem RemoteOutputFile = LocalToRemoteFileItem(OutputFile, false);
LinkAction.ProducedItems.Add(RemoteOutputFile);
// Add the input files to a response file, and pass the response file on the command-line.
List<string> InputFileNames = new List<string>();
foreach (FileItem InputFile in LinkEnvironment.InputFiles)
{
InputFileNames.Add(string.Format("\"{0}\"", InputFile.AbsolutePath));
LinkAction.PrerequisiteItems.Add(InputFile);
}
// Write the list of input files to a response file, with a tempfilename, on remote machine
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 (LinkEnvironment.bIsBuildingLibrary)
{
foreach (string Filename in InputFileNames)
{
LinkCommandArguments += " " + Filename;
}
// @todo rocket lib: the -filelist command should take a response file (see else condition), except that it just says it can't
// find the file that's in there. Rocket.lib may overflow the commandline by putting all files on the commandline, so this
// may be needed:
// LinkCommandArguments += string.Format(" -filelist \"{0}\"", ConvertPath(ResponsePath));
}
else
{
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
bool bIsUE4Game = LinkEnvironment.OutputFilePath.FullName.Contains("UE4Game");
FileReference ResponsePath = FileReference.Combine(((!bIsUE4Game && ProjectFile != null) ? ProjectFile.Directory : UnrealBuildTool.EngineDirectory), "Intermediate", "Build", LinkEnvironment.Platform.ToString(), "LinkFileList_" + LinkEnvironment.OutputFilePath.GetFileNameWithoutExtension() + ".tmp");
if (!Utils.IsRunningOnMono && BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
ResponseFile.Create(ResponsePath, InputFileNames);
RPCUtilHelper.CopyFile(ResponsePath.FullName, ConvertPath(ResponsePath.FullName), true);
}
else
{
ResponseFile.Create(new FileReference(ConvertPath(ResponsePath.FullName)), InputFileNames);
}
LinkCommandArguments += string.Format(" @\"{0}\"", ConvertPath(ResponsePath.FullName));
}
// Add the output file to the command-line.
LinkCommandArguments += string.Format(" -o \"{0}\"", RemoteOutputFile.AbsolutePath);
// Add the additional arguments specified by the environment.
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
LinkCommandArguments += LinkEnvironment.AdditionalArguments;
// Only execute linking on the local PC.
LinkAction.bCanExecuteRemotely = false;
LinkAction.StatusDescription = string.Format("{0}", OutputFile.AbsolutePath);
LinkAction.OutputEventHandler = new DataReceivedEventHandler(RemoteOutputReceivedEventHandler);
LinkAction.CommandPath = "sh";
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(LinkEnvironment.Configuration == CppConfiguration.Shipping && Path.GetExtension(RemoteOutputFile.AbsolutePath) != ".a")
{
// When building a shipping package, symbols are stripped from the exe as the last build step. This is a problem
// when re-packaging and no source files change because the linker skips symbol generation and dsymutil will
// recreate a new .dsym file from a symboless exe file. It's just sad. To make things happy we need to delete
// the output file to force the linker to recreate it with symbols again.
string linkCommandArguments = "-c '";
linkCommandArguments += string.Format("rm -f \"{0}\";", RemoteOutputFile.AbsolutePath);
linkCommandArguments += string.Format("rm -f \"{0}\\*.bcsymbolmap\";", Path.GetDirectoryName(RemoteOutputFile.AbsolutePath));
linkCommandArguments += LinkerPath + " " + LinkCommandArguments + ";";
linkCommandArguments += "'";
LinkAction.CommandArguments = linkCommandArguments;
}
else
{
// This is not a shipping build so no need to delete the output file since symbols will not have been stripped from it.
LinkAction.CommandArguments = string.Format("-c '{0} {1}'", LinkerPath, LinkCommandArguments);
}
return RemoteOutputFile;
}
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
public FileItem CompileAssetCatalog(FileItem Executable, string EngineDir, string BuildDir, string IntermediateDir, ActionGraph ActionGraph)
{
// Make a file item for the source and destination files
FileItem LocalExecutable = RemoteToLocalFileItem(Executable);
string FullDestPathRoot = Path.Combine(Path.GetDirectoryName(LocalExecutable.AbsolutePath), "Assets.car");
FileItem OutputFile;
/* if (!Utils.IsRunningOnMono && BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
OutputFile = FileItem.GetRemoteItemByPath(FullDestPathRoot, UnrealTargetPlatform.IOS);
}
else*/
{
OutputFile = FileItem.GetItemByPath(FullDestPathRoot);
}
// Make the compile action
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
Action CompileAssetAction = ActionGraph.Add(ActionType.CreateAppBundle);
if (!Utils.IsRunningOnMono)
{
CompileAssetAction.ActionHandler = new Action.BlockingActionHandler(RPCUtilHelper.RPCActionHandler);
}
CompileAssetAction.WorkingDirectory = GetMacDevSrcRoot();
CompileAssetAction.CommandPath = "/usr/bin/xcrun";
FileItem AssetCat = FileItem.GetItemByPath(Path.Combine(IntermediateDir, "Assets.xcassets"));
FileItem DestFile = LocalToRemoteFileItem(OutputFile, false);
FileItem InputFile = LocalToRemoteFileItem(AssetCat, BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac);
string Arguments = "";
Arguments += " actool --output-format human-readable-text --notices --warnings";
Arguments += " --output-partial-info-plist \"";
Arguments += Path.GetDirectoryName(DestFile.AbsolutePath).Replace("\\", "/") + "/assetcatalog_generated_info.plist\"";
Arguments += " --app-icon AppIcon --launch-image LaunchImage --compress-pngs";
Arguments += " --enable-on-demand-resources YES --filter-for-device-model AppleTV5,3 --filter-for-device-os-version 9.2";
Arguments += " --target-device tv --minimum-deployment-target 9.2 --platform appletvos --compile \"";
Arguments += Path.GetDirectoryName(DestFile.AbsolutePath).Replace("\\", "/") + "\" \"" + InputFile.AbsolutePath + "\"";
CompileAssetAction.CommandArguments = Arguments;
CompileAssetAction.PrerequisiteItems.Add(Executable);
CompileAssetAction.ProducedItems.Add(DestFile);
CompileAssetAction.StatusDescription = CompileAssetAction.CommandArguments;// string.Format("Generating debug info for {0}", Path.GetFileName(Executable.AbsolutePath));
CompileAssetAction.bCanExecuteRemotely = false;
return DestFile;
}
/// <summary>
/// Generates debug info for a given executable
/// </summary>
/// <param name="Executable">FileItem describing the executable to generate debug info for</param>
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
/// <param name="ActionGraph"></param>
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
public FileItem GenerateDebugInfo(FileItem Executable, ActionGraph ActionGraph)
{
// Make a file item for the source and destination files
FileItem LocalExecutable = RemoteToLocalFileItem(Executable);
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 3008177) ========================== MAJOR FEATURES + CHANGES ========================== Change 2948322 on 2016/04/19 by Nick.Shin update libwebsockets to v1.7.4 part 4 of 4 - doing this in stages for tracking purposes #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 2970016 on 2016/05/07 by Nick.Shin undo all of the following upgrades: - zlib - openssl - libcurl - libwebsockets and reset webrtc #jira UE-30298 - Fortnite and Orion crash on login #lockdown josh.adams Change 2970373 on 2016/05/09 by Lee.Clark PS4 - Fix NumInstances not getting reset after DrawIndirect calls Change 2972873 on 2016/05/10 by Michael.Trepka Correct initial position for SlateViewer windows on Mac Change 2974363 on 2016/05/11 by Mark.Satterthwaite Fix invoking buils using distcc from UFE - the command-line executed to access the number of parallel tasks was incorrect. Change 2975921 on 2016/05/12 by Michael.Trepka Removed unused AdjustWindowRegion declaration from LinuxWindow.h #codereview Dmitry.Rekman Change 2977002 on 2016/05/13 by Michael.Trepka Make sure dSYM generation action in UBT on Mac does not start before the source dylib is ready #codereview Ben.Marsh Change 2977337 on 2016/05/13 by Brent.Pease UE-27805 - Adding special characters into the BundleDisplayName or BundleName causes packaging error + Prevent illegal characters from being entered in the packaging UI + Report an error from iPhonePackager if a illegal bundle id is specified + Convert special characters to XML equivalents - Correctly check for the presence of iTunes 12 when packaging iOS games on Windows - Improve ios certificate and provision message in package settings UI #codereview peter.sauerbrei Change 2977509 on 2016/05/13 by Brent.Pease + Fix mac compile error Change 2978036 on 2016/05/14 by Mark.Satterthwaite One-line tweak that resolves incorrect rendering of the colour LUT because float imprecision allows -ve values to be passed into a call to pow which then generates NaN. #jira UE-30777 Change 2978037 on 2016/05/14 by Mark.Satterthwaite Fix a heap-use-after-free bug spotted by AddressSanitizer - you can't assume that the UObject system will be available in ShutdownModule() - on OS X it may have been killed a long time ago. Change 2978333 on 2016/05/16 by Lee.Clark Fix packaging of non-code projects when plugins are enabled #codereview Peter.Sauerbrei Change 2978780 on 2016/05/16 by Mark.Satterthwaite Reduce temporary allocations required to set uniform parameters in Metal. Change 2979680 on 2016/05/16 by Nick.Shin editor's HTML5 platform settings was missing due to the emscripten SDK move should have been included with CL: #2946251 Change 2979681 on 2016/05/16 by Nick.Shin cleaned up websocket processing for HTML5 #jira UE-13657 - HTML5 plugin OnRawRecieve overflow Change 2979701 on 2016/05/16 by Brent.Pease UE-28421 - Message box cannot be closed after accessing the home screen on iOS + Implement a timeout when waiting for a reply after sending background/foreground/suspend events from the main thread to the game thread. This solves the immediate problem presented in the jira bug report, however, there are deeper issues with the consequences of blocking the game thread that are not addressed. Perhaps structuring the game thread loop to know about modal dialogs so that it can receive these events even when a modal dialog is up could be a better longer term solution Change 2980766 on 2016/05/17 by Jeremiah.Waldron Adding Android build support for HarfBuzz - using a combination of android-cmake (from https://github.com/taka-no-me/android-cmake) to create the build files and Visual Studio 2015 to compile them - Adding Debug and RelWithDebInfo compiled binaries to harfbuzz-1.2.4/Android/<arch>/<config> Tested armv7 with TextShapingTest project on a GalaxyNote3 and text showed up correctly #jira UE-28586 #codereview chris.babcock Change 2980953 on 2016/05/17 by Jeremiah.Waldron Changing HarfBuzz build script and libs to use Release instead of RelWithDebInfo #jira UE-28586 Change 2981039 on 2016/05/17 by Jeff.Campeau ICMP support disabled for Xbox One and basic address processing wrappers provided (needed for Oodle support) Change 2981054 on 2016/05/17 by Jeff.Campeau Enable Live OSS for Orion on Xbox One Change 2981553 on 2016/05/18 by Jeff.Campeau Enable Oodle for Xbox One Change 2981555 on 2016/05/18 by Jeff.Campeau Scalability settings for Xbox One Change 2981774 on 2016/05/18 by Keith.Judge Xbox One - Duplicating Movie Player fix from 4.12. Change 2981789 on 2016/05/18 by Keith.Judge Xbox One - Duplicate fast semantics rendertarget unbind/clear/rebind fix from 4.12. Change 2981802 on 2016/05/18 by Keith.Judge Xbox One - Duplicate of distance field AO/Shadow fixes from 4.12. Change 2981875 on 2016/05/18 by Keith.Judge Xbox One - Dynamic VB/IB refactor. Duplicated from 4.12. Change 2981900 on 2016/05/18 by Keith.Judge Xbox One - D3D11Query refactor. Duplicated from 4.12 Change 2981945 on 2016/05/18 by Nick.Shin filled out response headers for HTML5 platform #jira UE-26047 - HTML5 HTTP Response Headers not implemented Change 2981981 on 2016/05/18 by Lee.Clark PS4 - Fix COTF not updating files #codereview Daniel.Lamb Change 2982246 on 2016/05/18 by Michael.Trepka Fixed Mono compile errors in UT build scripts Change 2983869 on 2016/05/19 by Mark.Satterthwaite Explicitly retain/release all the MTLTexture objects in FMetalSurface without the assumptions about them being the same object - the recent stencil & SRV related changes make those assumptions invalid and could lead to over-releasing some textures. #jira UE-29557 Change 2983871 on 2016/05/19 by Mark.Satterthwaite Pool Metal texture update buffers to reduce churn. Change 2983892 on 2016/05/19 by Mark.Satterthwaite Duplicate 4.12 CL #2972885: Enable Metal resource lifetime delay on all platforms, not just iOS to try and address intermittent invalid resource errors. Change 2983898 on 2016/05/19 by Mark.Satterthwaite Duplicate 4.12 CL #2982825: Correctly wait for the dispatch semaphore when clearing the Metal resource free lists. Change 2983911 on 2016/05/19 by Mark.Satterthwaite Change Metal SubmitCommandsHint to use an enum of flags rather than boolean variables to control behaviour so that its clearer to the reader what is going to happen. Change 2983916 on 2016/05/19 by Mark.Satterthwaite Duplicate 4.12 CL #2974765: Workaround for UE-30069 - on Nvidia Macs we are breaking the GMux swap the second time we run the engine and it isn't clear why, so instead explicitly select the Metal device ourselves and don't allow the OS to swap the GPU driving the display. This will potentially reduce performance a little if the discrete GPU isn't already driving the display but until we know how we are clobbering the GMux/driver it is all we can do. This only applies to 10.11.5 with the default OS X drivers where there is more than one GPU in the system, earlier versions of OS X and the Nvidia WebDrivers are unaffected. Change 2984874 on 2016/05/20 by Keith.Judge Xbox One - Re-enable shader DXBC intermediate bytecode stripping, except for geometry and hull shaders where there's a possibility of runtime recompilation in certain combinations. Saves ~2MB in TM-ShaderModels, will save more in larger maps. #jira UEPLAT-1295 Change 2985446 on 2016/05/20 by Mark.Satterthwaite Remove the non-functional -metaldebug option from MetalRHI. Change 2985827 on 2016/05/20 by Nick.Shin call EndSession() onbeforeunload() note: API CHANGE - HTML5JavaScripteFx.{js,h} - UE_MakeHTTPDataRequest() #jira UE-22285 - Session End events are not generated for HTML5 Change 2986013 on 2016/05/20 by Jeremiah.Waldron PR #2387: In-App Purchases - parameters needed for Receipt Validation (Contributed by gameDNAstudio) Also touches IOS because of added RawPrice member in FInAppPurchaseProductInfo Pulled from Release-4.12 CL #jira UE-30782 #codereview chris.babcock, Peter.Sauerbrei Change 2986057 on 2016/05/20 by Mark.Satterthwaite Further changes to ensure that UE-30710 really is fixed while also not live-leaking memory in MetalRHI. Change 2986059 on 2016/05/20 by Mark.Satterthwaite Move the Metal uniform buffers into the same resource pool as all the other buffers and add stats for how many buffers are in the pool, how much memory is in use, free and wasted (due to aligned-buffer sizes). Change 2986060 on 2016/05/20 by Mark.Satterthwaite Disable tiled-reflections on Nvidia & Intel Metal until they sort out the sample command on cube-arrays ignoring the lod level. Change 2986063 on 2016/05/20 by Mark.Satterthwaite Missing change from previous CL. Change 2986066 on 2016/05/20 by Mark.Satterthwaite More Metal stats tracking the number & memory size of id<MTLBuffer>'s allocated/released each frame. Change 2986455 on 2016/05/23 by Keith.Judge Xbox One - Fix precompile promise in shader compiler to not stop subsequent defines from being parsed by D3DCompiler. Change 2986886 on 2016/05/23 by Mark.Satterthwaite Duplicate 4.12 CL #2986880: Fix UE-31124 due to bad array iteration logic - amazing that this hadn't been seen earlier. Change 2986955 on 2016/05/23 by Brent.Pease + Do not error out if "[PROJECT_NAME]" is in the bundle ID #codereview peter.sauerbrei Change 2987304 on 2016/05/23 by Chris.Babcock Remove old Android platforms #ue4 #android #codeview Josh.Adams Change 2987571 on 2016/05/23 by Mark.Satterthwaite Duplicate CL #2967998: Integrate - MaterialParameterCollections now create default resources (uniform buffers) which are used when no valid FScene is present (eg DrawTile while exporting materials to lightmass) #jira UE-31111 Change 2987591 on 2016/05/23 by Mark.Satterthwaite Remove usage of MTLRender/ComputeEncoder setSamplerState/s calls that take Min & Max Lod overrides - they currently don't work as expected on some GPU drivers and as we don't use them anywhere and I can't see that we will removing them costs us nothing and fixes tiled reflections on Nvidia with Metal SM5. Change 2987679 on 2016/05/23 by Mark.Satterthwaite Re-enable tiled reflections on Nvidia by default now that they work. Change 2987799 on 2016/05/24 by Mark.Satterthwaite Add a shader compile option "r.Shaders.ZeroInitialise" that we can turn on to force explicit zero-initialisation of local & temporary variables in hlslcc - so far only implemented for Metal. The default behaviour remains to omit zero-initialisation but the option is helpful to eliminate or track down uninitialised access in shaders that are causing real bugs (e.g. POM material relying on zero-initialised loop counters causing hangs/bad rendering on Mac). Change 2989395 on 2016/05/25 by Lee.Clark PS4 - Fix shader output / render target format mismatch for sparse MRT. Change 2990003 on 2016/05/25 by Jeremiah.Waldron When creating our own ConfigCacheIni in GetConfigCacheIni_APL, do not assume that the Engine ini was requested. Instead use the baseIniName passed to the function. Change 2990393 on 2016/05/25 by Mark.Satterthwaite Back out changelist 2961310 - causes more problems than it solves. DistanceField rendering will still work on Intel Metal SM5 and may work on AMD but will be broken on Nvidia due to a bad access within the compute shader - there's no bounds checking in Metal... Change 2990516 on 2016/05/25 by Brent.Pease + UEPLAT-1294 - Support for local notifications + UEPLAT-1254 - Add BP event for device orientation change + Added a new class based on UGameInstance for mobile device callbacks + Ensured IOSAppDelegate.cpp follows convention for lambda functions Change 2991361 on 2016/05/26 by Jeremiah.Waldron Move InAppPurchase class to StoreHelper.java so GooglePlay and Amazon store helpers can use it Change 2992450 on 2016/05/27 by Mark.Satterthwaite Optional r.Shaders.BoundsChecking flag to control whether shader platforms should manually enforce buffer access bounds - HLSL returns zero or ignores invalid reads & writes but Metal leaves the behaviour undefined and some drivers then fail. By default this is off and its whatever the native platform behaviour is, enabling it will cost some amount of performance as the shader translator inserts additional instructions to try and match D3D as accurately as possible. This is required to fix GPU restart errors on some Metal drivers when using SM5 rendering features including DistanceField shaders. Change 2993027 on 2016/05/27 by Mark.Satterthwaite Fix typo for new CFLAG_BoundsChecking enumeration value. Change 2993594 on 2016/05/27 by Mark.Satterthwaite Build fix - check not assert... Change 2993595 on 2016/05/27 by Mark.Satterthwaite Fix typo from Xcode hang... Change 2993614 on 2016/05/28 by Mark.Satterthwaite At least for now enable shader zero-initialisation and bounds-checking on Mac to ensure that Metal shaders are compiled with semantics that approximate those HLSL assumes. This may cost some performance but will avoid a few GPU restarts on some vendor drivers. Change 2993747 on 2016/05/28 by Mark.Satterthwaite Separate texture & buffer references in the Metal backend as they bind to separate arrays in the runtime to avoid giving the side-table buffer an innaccessible binding index. Also the side-table doesn't need to be emitted if no buffer SRV or UAV is used. Change 2994256 on 2016/05/31 by Lee.Clark PS4 - Fix unitialized Head Position from HMD tracker when tracking fails. Fixes a problem with A3D audio not working. #codereview Chad.Taylor,Aaron.McLeran Change 2994281 on 2016/05/31 by Rolando.Caloca DP - Allow hlslcc to process type casts containing the 'const' keyword - it isn't strictly complete as it will simply omit the type qualifier from the cast in the AST but it is sufficient for FortniteFoliage_MasterMaterial to compile. #codereview Mark.Satterthwaite, Dmitry.Rekman #jira UE-31411 Change 2994467 on 2016/05/31 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 2994493 on 2016/05/31 by Daniel.Lamb Fixed issue with DDC commandlet not caching things from the startup packages list. Change 2994644 on 2016/05/31 by Mark.Satterthwaite Updated hlslcc Mac binaries with fix for UE-31411 which RCO accepted and submitted + script for building parsers on POSIX OSes hooked up to an Xcode scheme in the project. Change 2996074 on 2016/06/01 by Lee.Clark PS4 - Fix GS mode not getting disabled when using parallel contexts. #codereview Marcus.Wassmer Change 2996129 on 2016/06/01 by Brent.Pease Manual merge of Pete's dsym generation fix (CL#2996089) from the 4.12 branch. Change 2996130 on 2016/06/01 by Jeremiah.Waldron PR #2387 part 2 (Contributed by gameDNAstudio) Adding ability to consume purchases during GooglePlay RestorePurchases This also touches IOS due to changes to base classes and function signatures #codereview chris.babcock, Peter.Sauerbrei Change 2996441 on 2016/06/01 by Jeremiah.Waldron Relates to PR #2387: Adding ability to consume purchases during GooglePlay RestorePurchases (Contributed by gameDNAstudio) Missing changes from part 2 reworked so that there is still only one RestorePurchases function which takes the product IDs and consumable flags. I reflected this in StoreHelper so no casting is necessary in GameActivity and the soon-to-be-added AmazonStoreHelper in the GameCircle plugin will still work dynamically with GameActivity since it will call StoreHelper functionality rather than a GooglePlayStoreHelper specific function. #codereview chris.babcock Change 2996514 on 2016/06/01 by Jeff.Campeau Fix merge issue from main #jira UE-31502 Change 2996740 on 2016/06/01 by Jonathan.Fitzpatrick https://jira.ol.epicgames.net/browse/UE-31446 Two PS4 source files fail during unity builds due to name conflict with handleReserveFailed. Renamed handleReserveFailed to handleReserveFailedLightweight Change 2997235 on 2016/06/01 by Jeremiah.Waldron RestorePurchases fix up in Match3 since the new Restore consumable stuff adds an additional pin to the Restore node. The IAP product in Match3 is non-consumable so just passing an empty array where necessary Change 2997241 on 2016/06/01 by Jeremiah.Waldron OnlineSubsystemGameCircle Plugin - Leaderboards - Achievements - Friends - IAP - External UI Interface - Runtime Settings in Project Settings Plugin section when plugin is enabled - Disabled by default #jira UEPLAT-105 #codereview chris.babcock Change 2997618 on 2016/06/02 by Lee.Clark #UE4Docs: Removed PS4MapFileUtil info Change 2997840 on 2016/06/02 by Jeremiah.Waldron Removing trace logging from OnlineSubsystemGameCircle_APL Change 2998754 on 2016/06/02 by Brent.Pease Change BlueprintMobileLibrary to BlueprintPlatformLibrary Change 3000762 on 2016/06/03 by Jeff.Campeau Add example rating info to ShooterGame Change 3001037 on 2016/06/04 by Brent.Pease + Add ui screens for delegate test, local notification test, and iap test + Implement delegate test Change 3001250 on 2016/06/05 by Brent.Pease + Initial pass at IAP test screen Change 3001639 on 2016/06/06 by Jeff.Campeau Fix Xbox One build issue with DX12 #codereview Zabir.Hoque Change 3002574 on 2016/06/06 by Jeremiah.Waldron Adding Android Install Location to Android platform runtime settings and manifest generation Change 3002780 on 2016/06/06 by Brent.Pease + Initial implementation of local notification test Change 3003005 on 2016/06/06 by Jeremiah.Waldron OnlineSubsystemGameCircle plugin - adding setting for Fire TV support. Using that specification in the APL to Add/Update android.hardware.touchscreen feature required attribute Change 3004392 on 2016/06/07 by Jeremiah.Waldron Fixing typo in APL comment :) Change 3005768 on 2016/06/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3005929 on 2016/06/08 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3006151 on 2016/06/08 by Peter.Sauerbrei fix for LocalNotifications not available on TVOS #lockdown josh.adams Change 3006183 on 2016/06/08 by Brent.Pease Manual merge CL#3000242 from Release-4.12 into Dev-Platform #lockdown josh.adams Change 3006296 on 2016/06/08 by Peter.Sauerbrei submit an updated iPhonePackager and support DLLs #lockdown josh.adams Change 3006378 on 2016/06/08 by Peter.Sauerbrei fix for API update to RestorePurchases #codereview brent.pease #lockdown josh.adams #lockdown nick.penwarden [CL 3008183 by Josh Adams in Main branch]
2016-06-09 17:45:44 -04:00
string FullDestPathRoot = Path.Combine(Path.GetDirectoryName(LocalExecutable.AbsolutePath), Path.GetFileName(LocalExecutable.AbsolutePath) + ".dSYM");
FileItem OutputFile;
OutputFile = FileItem.GetItemByPath(FullDestPathRoot);
FileItem DestFile = LocalToRemoteFileItem(OutputFile, false);
// Make the compile action
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
Action GenDebugAction = ActionGraph.Add(ActionType.GenerateDebugInfo);
if (!Utils.IsRunningOnMono)
{
GenDebugAction.ActionHandler = new Action.BlockingActionHandler(RPCUtilHelper.RPCActionHandler);
}
GenDebugAction.WorkingDirectory = GetMacDevSrcRoot();
GenDebugAction.CommandPath = "sh";
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(ProjectSettings.bGeneratedSYMBundle)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3046626) #rb none #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2948322 on 2016/04/19 by Nick.Shin update libwebsockets to v1.7.4 part 4 of 4 - doing this in stages for tracking purposes #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 2970016 on 2016/05/07 by Nick.Shin undo all of the following upgrades: - zlib - openssl - libcurl - libwebsockets and reset webrtc #jira UE-30298 - Fortnite and Orion crash on login Change 3020547 on 2016/06/20 by Jeff.Campeau Support for applocal deployment of binaries -applocaldir added to UAT to specify a per project directory to gather packages for applocal deployment Added ApplocalPrerequisitesDirectory property to packaging settings to set -applocaldir for packages built from the editor. Change 3020552 on 2016/06/20 by Jeff.Campeau Add switch to disable debug symbol cache creation Change 3020567 on 2016/06/20 by Jeff.Campeau constexpr enabled for Xbox One Change 3020568 on 2016/06/20 by Jeff.Campeau Separate setting for debug #jira UEPLAT-1348 Change 3020628 on 2016/06/20 by Jeff.Campeau Use global view instead of relying on current thread (fixes issues if pump message is called from a different thread). Change 3020629 on 2016/06/20 by Jeff.Campeau Use Slate tick to drive message processing during blocking loads (improves PLM). Change 3020633 on 2016/06/20 by Jeff.Campeau Fix Xbox One toolchain pathing to work for environment variables with and without trailing slashes. Pass requested XDK edition to VCVars batch file (fixes issues in building with a newer XDK installed SxS than the engine is configured for). Change 3020873 on 2016/06/21 by Lee.Clark PS4 - Fix missing audio when using A3D. Change 3021225 on 2016/06/21 by Keith.Judge Optimized away a bunch of GetVertexShader() calls in FSplineMeshVertexFactoryShaderParameters::SetMesh(). Saves about 0.9ms across a 100ms capture. Change 3021286 on 2016/06/21 by Dmitry.Rekman Linux: symbolication for memory profiler. - Also repaired/improved finding function name from debug info and overall callstack parsing. #tests Ran Linux editor and TestPAL, crashed multiple times Change 3021512 on 2016/06/21 by Mark.Satterthwaite Compile fixes for new clang version. Change 3021521 on 2016/06/21 by Mark.Satterthwaite Duplicate Fortnite CL #3013418: Don't release Metal buffers directly into the buffer pool, instead defer this until the command-buffer is known to have finished. This prevents the CPU from trying to modify the buffer while the GPU is still reading it if the GPU has fallen so far behind the CPU and therefore eliminates one possible cause of invalid access on the GPU. Change 3021528 on 2016/06/21 by Mark.Satterthwaite Make the Metal buffer pool cull after 30 frames - this will better match Apple's GART which unwires unused allocations after 1sec of idle, making them as expensive to use allocating a new buffer. Change 3021595 on 2016/06/21 by Mark.Satterthwaite Consolidate the way in which optional Metal features are exposed across macOS, iOS & tvOS devices & expose all the available features, unifying more of the code across all three platforms. - Implement Metal Depth-16 and stencil-texture-view support where available. - Use counting queries in Metal when available and expected (i.e. Metal_SM4+ or Metal_MRT+). - On latest iOS devices running Metal export support for GRHISupportsBaseVertexIndex & GRHISupportsFirstInstance when available. - On latest iOS devices running Metal export support for indirect buffer draw and dispatch calls. - Specify Metal layered rendering like any other and change the code so that there aren't preprocessor defines in the code. This lets the Metal MRT path assert if anyone ever tries to issue a layered draw call as its only supported on Mac. - Add support to Metal for setting UAVs from a uniform buffer. - Remove unused GlobalUniform header from MetalRHI. - Remove unnecessary FrameCount delay from Metal resource free lists. Change 3021702 on 2016/06/21 by Mark.Satterthwaite Fix mis-use of FreeListMutex instead of PoolMutex in MetalContext. Change 3022152 on 2016/06/21 by Nick.Shin Back out revision 5 from //UE4/Dev-Platform/Engine/Source/Runtime/NetworkFileSystem/Private/NetworkFileServerHttp.cpp forgot to un-do this when the giant revert (CL: #2970016) was done #jira UE-22166 HTML5 Cook on the fly will launch and then close browser Change 3022409 on 2016/06/21 by Dmitry.Rekman Fixed inability to run Setup.sh on Ubuntu 14.04 (UE-29289). - Contains PR #2258 (contributed by wshearn). Change 3022541 on 2016/06/22 by Lee.Clark PS4 - Make sure the render target masks are set correctly for disabled render targets. Fixes a validation check for shaders expecting to write to NULL render targets. Change 3022973 on 2016/06/22 by Michael.Trepka Fixed a problem in MacToolChain where both BuildConfiguration.bGeneratedSYMFile and BuildConfiguration.bUsePDBFiles set to false would not disable dSYM generation. Change 3023106 on 2016/06/22 by Dmitry.Rekman Linux: enable code to catch memory stomps during async loading. - Changed FLinuxPlatformMemory::BinnedAllocFrom/FreeToOS() to use mmap()/munmap(). Updated platform function signature accordingly. #tests Ran OrionServer on Linux (and OrionClient on Windows as a zero probe), tested also with running Linux editor with binned malloc. Change 3023256 on 2016/06/22 by Mark.Satterthwaite Fix compile errors from latest Metal changes that broke iOS. Change 3023268 on 2016/06/22 by Mark.Satterthwaite Use the Linux mmap/munmap/mprotect code to implement BinnedAllocFromOS/BinnedFreeToOS/PageProtect on Apple platforms as they are all equivalent. Change 3023651 on 2016/06/22 by Mark.Satterthwaite Make Metal SM5 the default for 10.11.5 or later, this time most of the features should be working on AMD & Nvidia, though tiled-reflections and distance-field AO/Shadows must still be forcibly disabled on Intel. Change 3023777 on 2016/06/22 by Brent.Pease + Update config for Android and iOS Change 3023781 on 2016/06/22 by Chris.Babcock Use mmap/munmap for Android BinnedAllocFromOS #ue4 #android Change 3023947 on 2016/06/22 by Mark.Satterthwaite Added a command-line switch for Mac "-RedirectNSLog" that will capture the output of NSLog using an NSPipe and write it into our log instead when not running under the debugger, thereby capturing output from underlying libraries that would otherwise be lost when outside a debugger. Change 3024434 on 2016/06/23 by Lee.Clark PS4 - Remove Delta Color Compression support Change 3024735 on 2016/06/23 by Mark.Satterthwaite Changes to MetalStatistics module initialisation. Change 3024741 on 2016/06/23 by Mark.Satterthwaite Change the way we test for Metal GPU support to avoid instantiating any MTLDevice's until MetalRHI is loaded so we can properly instantiate optional modules. Change 3025477 on 2016/06/23 by Brent.Pease + Added UnrealPluginLanguage.cs based on AndroidPluginLanguage.cs + Change UEDeployAndroid.cs to use UnrealPluginLanguage Change 3026085 on 2016/06/23 by Jeff.Campeau Separate Xbox One target settings for editor only values Move values that need to be loaded by the editor into the default inis (editor won't load target specific inis) Eliminate circular dependency on Xbox One settings (causing settings to either not load or memory corruption on shutdown) Clean up cached ini sections for UBT/UAT Change 3026093 on 2016/06/23 by Jeff.Campeau Cleanup unused files Change 3026745 on 2016/06/24 by Mark.Satterthwaite + Implemented rudimentary runtime debugging of MetalRHI with several different levels of complexity controlled by the new console-variable "rhi.Metal.RuntimeDebugLevel". + The MetalStateCache must also correctly set the render-pass descriptor when the previous render-target load action was 'Clear' as we will need to switch render targets or we'll mistakenly clear again. + Queries must not reset the MetalStateCache when they overflow the available buffer space, they simply break the encoder. - By default "rhi.Metal.RuntimeDebugLevel" is off & it is compiled out for Shipping - when enabled each higher level collects more data or changes the MetalRHI behaviour to make a command-buffer failure mode debuggable at the expense of performance. In order for this to work the number of command-buffers that may be allocated from the command-queue is also controllable via a console-variable "rhi.Metal.CommandQueueSize" which must be set prior to startup. Change 3026831 on 2016/06/24 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3026940 on 2016/06/24 by Brent.Pease PR #2458: added GetGameBundleId blueprint function (Contributed by derekvanvliet) Change 3027396 on 2016/06/24 by Brent.Pease Add BuildGraph.csproj to get Xamarin .sln builds working again Change 3029211 on 2016/06/27 by Michael.Trepka Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3029518 on 2016/06/27 by Josh.Adams Rollback //UE4/Dev-Platform/Engine/Build/BatchFiles/Mac/xcodeunlock.sh to revision 1 Change 3030385 on 2016/06/28 by Keith.Judge Fix XB1 deployment issues with AppXManifest for Paragon. Change 3030416 on 2016/06/28 by Lee.Clark PS4 - Fix Mediaplayer IsPlaying Change 3030922 on 2016/06/28 by Keith.Judge XB1 - Add pass through _RenderThread resource creation functions to D3D11.x RHI. Stops the render/RHI threads from stalling so much. Change 3030948 on 2016/06/28 by Jeff.Campeau Revert to using constant chunk indexes instead of polling the OS. (OS API has a bug that will not be fixed.) Change 3031016 on 2016/06/28 by Brent.Pease UEPLAT-1244 - Archive dSYM file UEPLAT-1359 - Support creating dSYM bundle Changes: + Added ios settings flag for dsym bundle + Added ios setting for creating xcode archive + xcode archive is now only put in the mac host or build machine's ~/Library/Developer/Xcode/Archives folder, it is not copied into the -archive folder like the ipa is Change 3031352 on 2016/06/28 by Bob.Tellez Added tps file for xcodeunlock Change 3031604 on 2016/06/28 by Mark.Satterthwaite Add an additional cast to flush-to-zero in the Metal shader translator bounds-checking code to avoid an internal GPU compiler error. Change 3031879 on 2016/06/28 by Brent.Pease + PhysX libraries for bitcode support on tvOS. Change 3032374 on 2016/06/29 by Keith.Judge Enable Oodle Handler Component on Xbox One Change 3032407 on 2016/06/29 by Keith.Judge Xbox One - Disable UpdateBufferStats when STATS is 0. Small perf gain. Change 3032432 on 2016/06/29 by Keith.Judge XB1 CPU Perf - Make CreateVertexDeclaration_RenderThread much faster by implementing a pass through to the RHI function rather than stalling the RHI thread. Change 3033474 on 2016/06/29 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3033603 on 2016/06/29 by Brent.Pease + Support UnrealPluginLanguage for IOS and TVOS builds + Allow ios/tvos UPL files an opportunity to modify a package's info.plist file Change 3034004 on 2016/06/30 by Lee.Clark PS4 - Use SDK 3.508.101 Change 3034007 on 2016/06/30 by Lee.Clark PS4 - VRTracker now uses SCE_VR_TRACKER_ROBUSTNESS_LEVEL_HIGH Change 3034173 on 2016/06/30 by Lee.Clark PS4 - Make sure depth target is null when eliminating fast clears. Fixes a GNM Validation failure Change 3034498 on 2016/06/30 by Jeff.Campeau Use MSBuild version 14 when generating project files. Change 3034943 on 2016/06/30 by Mark.Satterthwaite For Metal modify the MTLVertexDescriptor when calls to SetStreamSource provide different strides than the initial vertex-declaration which then requires compiling a different MTLRenderPipelineState. This silences errors reported by the Metal debug layer where the larger stride would see the shader read beyond the end of the buffer, but the smaller stride provided by SetStreamSource would work correctly. This may eliminate some more causes of Page-Fault GPU restarts. Change 3035416 on 2016/07/01 by Lee.Clark PS4 - Replace export vertex shader check with a CFLAG Change 3036093 on 2016/07/01 by Brent.Pease + Fix dSYM bundle path on Windows ios builds + Search for DeltaCopy directory if its not found from the user settings + Do not build an XCArchive file when building for ios on non-mac platforms Change 3036726 on 2016/07/02 by Brent.Pease + Add missing tvOS bitcode library Change 3037455 on 2016/07/05 by Lee.Clark PS4 - Default SmoothFrameRate to false Change 3037470 on 2016/07/05 by Keith.Judge Xbox One - Allow framerate smoothing, but default to off for consistency with PS4. Change 3038322 on 2016/07/05 by Jeremiah.Waldron Fix for asset packages with Unicode characters in their name not being loaded on Android. Fixing AndroidString's WIDECHAR* Strstr(WIDECHAR*, WIDECHAR*) function - Using an implementation of wcsstr, with a fix integrated for the incorrect implementation in Android ndk master branch, instead of converting the incoming WIDECHAR strings to ANSI strings just to be able to use strstr on them. The previous method was prone to causing the FString's Find and Contains functions to return false positives because when we convert wide to ansi, any character over the value of 255 is just set to '?' This in turn caused any package path strings with one of those characters in it to fail to load since they would be interpreted as having a question mark in their path, which is an invalid path character. #jira UE-18643 #android Change 3038693 on 2016/07/05 by Mark.Satterthwaite Change the way we store debug info for Metal shaders - the KeepDebugInfo flag now does precisely that, storing the shader code into the Metal header along with the path it was generated from. That means if KeepDebugInfo is enabled and Optimise is disabled then we can still access the shader code from within the Metal tools. On iOS/tvOS the shader code will be runtime compiled so that it shows up in the tooling but on Macs it will prefer to load the optimised version and simply unpack the shader code to the path from which it was compiled. This only works if we change the Metal shader compiler to emit temporary Metal files to the OS temporary directory so that the tools can read the file directly. Change 3039880 on 2016/07/06 by Mark.Satterthwaite Implement point-light shadow caching for RHI's that support specifying the render target layer from the vertex shader in lieu of geometry shaders. This requires changing FScreenVSForGS to TScreenVSForGS so that there can be a vertex-shader-layer variant (only compiled on RHI's that use it) whose output matches FCopyShadowMapsCubePS input. This alternative rendering path also requires adding the instance count to DrawRectangle so that we can render to all faces of the cubemap from a single draw call. Change 3040407 on 2016/07/06 by Michael.Trepka Added View->Enter Full Screen menu item for games on Mac Change 3040550 on 2016/07/06 by Mark.Satterthwaite Intel Metal compiler requires bool expressions be cast to 'int' rather than 'uint'. Change 3041098 on 2016/07/07 by Peter.Sauerbrei initial changes to get IOS builds from PC in launcher release of engine Change 3041310 on 2016/07/07 by Keith.Judge Xbox One - Optimize away GetDesc() and checks for D3D11_USAGE_DYNAMIC deep in the state cache as it's impossible for any buffer to have that flag set. Change 3041327 on 2016/07/07 by Keith.Judge Xbox One - Remove pointless memory barrier call in D3D11Query Change 3041352 on 2016/07/07 by Keith.Judge Xbox One - Add _RenderThread version of UpdateTexture2D() that just passes through to the RHI one. Saves a fairly significant chunk of time on the render/RHI thread when this is called a lot. Change 3041419 on 2016/07/07 by Jeff.Campeau Xbox One toolchain fix for VS2015 Update 3 Change 3041635 on 2016/07/07 by Jeff.Campeau Don't change game render resolution in response to WM_SIZE messages when in fullscreen (the game will restore the correct video mode when the window is restored). #jira OR-15578 Change 3041735 on 2016/07/07 by Peter.Sauerbrei re-enabled the build parameters for launcher release builds in IOS Change 3041783 on 2016/07/07 by Joe.Graf Changed bAutpApplyFailed to bAutoApplyFailed (typo) Change 3041784 on 2016/07/07 by Joe.Graf Fixed missing %s from a log message in UResavePackagesCommandlet Change 3042434 on 2016/07/08 by Lee.Clark PS4 - Fix compilation failure when Unsafe Command Buffers are enabled. Change 3042658 on 2016/07/08 by Lee.Clark PS4 - Use SDK 3.508.201 Change 3042970 on 2016/07/08 by Josh.Adams Redoing CL in 3040890 in Dev-Platform Change 3043243 on 2016/07/08 by Chris.Babcock clamped allowed slot range for gameplay debugger's categories copy of CL# 3040313 from //UE4/Dev-Framework #jira UE-32866 Change 3043500 on 2016/07/08 by Mark.Satterthwaite Downgrade "-Wdelete-non-virtual-dtor " to a warning again for Xcode 8 on iOS/tvOS to match macOS. Change 3044628 on 2016/07/11 by Mark.Satterthwaite Disable ShaderCache by default - it was implemented prior to RHI-thread/parallel-execution so it isn't thread-safe and can't be enabled by default on Mac now that Metal supports these features. #jira UE-32989 Change 3044948 on 2016/07/11 by Dmitry.Rekman Fix editor crash (happened on Linux, but not really specific to it) (UE-32973) - We can pass flags with shadows enabled when rendering asset thumbnails; thus disable shadows always when r.ShadowQuality is 0. (Redoing CL 3029574 by Bob). - Also fix mismatched 'noperspective' qualifier that caused NVidia drivers to refuse to link GL shaders. #jira UE-32973 Change 3045322 on 2016/07/11 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3046028 on 2016/07/12 by Lee.Clark PS4 - Check for correct SDK installation Allow use of 7th core when Morpheus is enabled Change 3046339 on 2016/07/12 by Peter.Sauerbrei fix for incorrect error message when iPhone Plus icon is the correct size [CL 3046645 by Josh Adams in Main branch]
2016-07-12 15:06:08 -04:00
{
GenDebugAction.CommandArguments = string.Format("-c 'rm -rf \"{1}\"; /usr/bin/dsymutil \"{0}\" -o \"{1}\"; cd \"{1}/..\"; zip -r -y -1 {2}.zip {2}'",
Executable.AbsolutePath,
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3046626) #rb none #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2948322 on 2016/04/19 by Nick.Shin update libwebsockets to v1.7.4 part 4 of 4 - doing this in stages for tracking purposes #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 2970016 on 2016/05/07 by Nick.Shin undo all of the following upgrades: - zlib - openssl - libcurl - libwebsockets and reset webrtc #jira UE-30298 - Fortnite and Orion crash on login Change 3020547 on 2016/06/20 by Jeff.Campeau Support for applocal deployment of binaries -applocaldir added to UAT to specify a per project directory to gather packages for applocal deployment Added ApplocalPrerequisitesDirectory property to packaging settings to set -applocaldir for packages built from the editor. Change 3020552 on 2016/06/20 by Jeff.Campeau Add switch to disable debug symbol cache creation Change 3020567 on 2016/06/20 by Jeff.Campeau constexpr enabled for Xbox One Change 3020568 on 2016/06/20 by Jeff.Campeau Separate setting for debug #jira UEPLAT-1348 Change 3020628 on 2016/06/20 by Jeff.Campeau Use global view instead of relying on current thread (fixes issues if pump message is called from a different thread). Change 3020629 on 2016/06/20 by Jeff.Campeau Use Slate tick to drive message processing during blocking loads (improves PLM). Change 3020633 on 2016/06/20 by Jeff.Campeau Fix Xbox One toolchain pathing to work for environment variables with and without trailing slashes. Pass requested XDK edition to VCVars batch file (fixes issues in building with a newer XDK installed SxS than the engine is configured for). Change 3020873 on 2016/06/21 by Lee.Clark PS4 - Fix missing audio when using A3D. Change 3021225 on 2016/06/21 by Keith.Judge Optimized away a bunch of GetVertexShader() calls in FSplineMeshVertexFactoryShaderParameters::SetMesh(). Saves about 0.9ms across a 100ms capture. Change 3021286 on 2016/06/21 by Dmitry.Rekman Linux: symbolication for memory profiler. - Also repaired/improved finding function name from debug info and overall callstack parsing. #tests Ran Linux editor and TestPAL, crashed multiple times Change 3021512 on 2016/06/21 by Mark.Satterthwaite Compile fixes for new clang version. Change 3021521 on 2016/06/21 by Mark.Satterthwaite Duplicate Fortnite CL #3013418: Don't release Metal buffers directly into the buffer pool, instead defer this until the command-buffer is known to have finished. This prevents the CPU from trying to modify the buffer while the GPU is still reading it if the GPU has fallen so far behind the CPU and therefore eliminates one possible cause of invalid access on the GPU. Change 3021528 on 2016/06/21 by Mark.Satterthwaite Make the Metal buffer pool cull after 30 frames - this will better match Apple's GART which unwires unused allocations after 1sec of idle, making them as expensive to use allocating a new buffer. Change 3021595 on 2016/06/21 by Mark.Satterthwaite Consolidate the way in which optional Metal features are exposed across macOS, iOS & tvOS devices & expose all the available features, unifying more of the code across all three platforms. - Implement Metal Depth-16 and stencil-texture-view support where available. - Use counting queries in Metal when available and expected (i.e. Metal_SM4+ or Metal_MRT+). - On latest iOS devices running Metal export support for GRHISupportsBaseVertexIndex & GRHISupportsFirstInstance when available. - On latest iOS devices running Metal export support for indirect buffer draw and dispatch calls. - Specify Metal layered rendering like any other and change the code so that there aren't preprocessor defines in the code. This lets the Metal MRT path assert if anyone ever tries to issue a layered draw call as its only supported on Mac. - Add support to Metal for setting UAVs from a uniform buffer. - Remove unused GlobalUniform header from MetalRHI. - Remove unnecessary FrameCount delay from Metal resource free lists. Change 3021702 on 2016/06/21 by Mark.Satterthwaite Fix mis-use of FreeListMutex instead of PoolMutex in MetalContext. Change 3022152 on 2016/06/21 by Nick.Shin Back out revision 5 from //UE4/Dev-Platform/Engine/Source/Runtime/NetworkFileSystem/Private/NetworkFileServerHttp.cpp forgot to un-do this when the giant revert (CL: #2970016) was done #jira UE-22166 HTML5 Cook on the fly will launch and then close browser Change 3022409 on 2016/06/21 by Dmitry.Rekman Fixed inability to run Setup.sh on Ubuntu 14.04 (UE-29289). - Contains PR #2258 (contributed by wshearn). Change 3022541 on 2016/06/22 by Lee.Clark PS4 - Make sure the render target masks are set correctly for disabled render targets. Fixes a validation check for shaders expecting to write to NULL render targets. Change 3022973 on 2016/06/22 by Michael.Trepka Fixed a problem in MacToolChain where both BuildConfiguration.bGeneratedSYMFile and BuildConfiguration.bUsePDBFiles set to false would not disable dSYM generation. Change 3023106 on 2016/06/22 by Dmitry.Rekman Linux: enable code to catch memory stomps during async loading. - Changed FLinuxPlatformMemory::BinnedAllocFrom/FreeToOS() to use mmap()/munmap(). Updated platform function signature accordingly. #tests Ran OrionServer on Linux (and OrionClient on Windows as a zero probe), tested also with running Linux editor with binned malloc. Change 3023256 on 2016/06/22 by Mark.Satterthwaite Fix compile errors from latest Metal changes that broke iOS. Change 3023268 on 2016/06/22 by Mark.Satterthwaite Use the Linux mmap/munmap/mprotect code to implement BinnedAllocFromOS/BinnedFreeToOS/PageProtect on Apple platforms as they are all equivalent. Change 3023651 on 2016/06/22 by Mark.Satterthwaite Make Metal SM5 the default for 10.11.5 or later, this time most of the features should be working on AMD & Nvidia, though tiled-reflections and distance-field AO/Shadows must still be forcibly disabled on Intel. Change 3023777 on 2016/06/22 by Brent.Pease + Update config for Android and iOS Change 3023781 on 2016/06/22 by Chris.Babcock Use mmap/munmap for Android BinnedAllocFromOS #ue4 #android Change 3023947 on 2016/06/22 by Mark.Satterthwaite Added a command-line switch for Mac "-RedirectNSLog" that will capture the output of NSLog using an NSPipe and write it into our log instead when not running under the debugger, thereby capturing output from underlying libraries that would otherwise be lost when outside a debugger. Change 3024434 on 2016/06/23 by Lee.Clark PS4 - Remove Delta Color Compression support Change 3024735 on 2016/06/23 by Mark.Satterthwaite Changes to MetalStatistics module initialisation. Change 3024741 on 2016/06/23 by Mark.Satterthwaite Change the way we test for Metal GPU support to avoid instantiating any MTLDevice's until MetalRHI is loaded so we can properly instantiate optional modules. Change 3025477 on 2016/06/23 by Brent.Pease + Added UnrealPluginLanguage.cs based on AndroidPluginLanguage.cs + Change UEDeployAndroid.cs to use UnrealPluginLanguage Change 3026085 on 2016/06/23 by Jeff.Campeau Separate Xbox One target settings for editor only values Move values that need to be loaded by the editor into the default inis (editor won't load target specific inis) Eliminate circular dependency on Xbox One settings (causing settings to either not load or memory corruption on shutdown) Clean up cached ini sections for UBT/UAT Change 3026093 on 2016/06/23 by Jeff.Campeau Cleanup unused files Change 3026745 on 2016/06/24 by Mark.Satterthwaite + Implemented rudimentary runtime debugging of MetalRHI with several different levels of complexity controlled by the new console-variable "rhi.Metal.RuntimeDebugLevel". + The MetalStateCache must also correctly set the render-pass descriptor when the previous render-target load action was 'Clear' as we will need to switch render targets or we'll mistakenly clear again. + Queries must not reset the MetalStateCache when they overflow the available buffer space, they simply break the encoder. - By default "rhi.Metal.RuntimeDebugLevel" is off & it is compiled out for Shipping - when enabled each higher level collects more data or changes the MetalRHI behaviour to make a command-buffer failure mode debuggable at the expense of performance. In order for this to work the number of command-buffers that may be allocated from the command-queue is also controllable via a console-variable "rhi.Metal.CommandQueueSize" which must be set prior to startup. Change 3026831 on 2016/06/24 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3026940 on 2016/06/24 by Brent.Pease PR #2458: added GetGameBundleId blueprint function (Contributed by derekvanvliet) Change 3027396 on 2016/06/24 by Brent.Pease Add BuildGraph.csproj to get Xamarin .sln builds working again Change 3029211 on 2016/06/27 by Michael.Trepka Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3029518 on 2016/06/27 by Josh.Adams Rollback //UE4/Dev-Platform/Engine/Build/BatchFiles/Mac/xcodeunlock.sh to revision 1 Change 3030385 on 2016/06/28 by Keith.Judge Fix XB1 deployment issues with AppXManifest for Paragon. Change 3030416 on 2016/06/28 by Lee.Clark PS4 - Fix Mediaplayer IsPlaying Change 3030922 on 2016/06/28 by Keith.Judge XB1 - Add pass through _RenderThread resource creation functions to D3D11.x RHI. Stops the render/RHI threads from stalling so much. Change 3030948 on 2016/06/28 by Jeff.Campeau Revert to using constant chunk indexes instead of polling the OS. (OS API has a bug that will not be fixed.) Change 3031016 on 2016/06/28 by Brent.Pease UEPLAT-1244 - Archive dSYM file UEPLAT-1359 - Support creating dSYM bundle Changes: + Added ios settings flag for dsym bundle + Added ios setting for creating xcode archive + xcode archive is now only put in the mac host or build machine's ~/Library/Developer/Xcode/Archives folder, it is not copied into the -archive folder like the ipa is Change 3031352 on 2016/06/28 by Bob.Tellez Added tps file for xcodeunlock Change 3031604 on 2016/06/28 by Mark.Satterthwaite Add an additional cast to flush-to-zero in the Metal shader translator bounds-checking code to avoid an internal GPU compiler error. Change 3031879 on 2016/06/28 by Brent.Pease + PhysX libraries for bitcode support on tvOS. Change 3032374 on 2016/06/29 by Keith.Judge Enable Oodle Handler Component on Xbox One Change 3032407 on 2016/06/29 by Keith.Judge Xbox One - Disable UpdateBufferStats when STATS is 0. Small perf gain. Change 3032432 on 2016/06/29 by Keith.Judge XB1 CPU Perf - Make CreateVertexDeclaration_RenderThread much faster by implementing a pass through to the RHI function rather than stalling the RHI thread. Change 3033474 on 2016/06/29 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3033603 on 2016/06/29 by Brent.Pease + Support UnrealPluginLanguage for IOS and TVOS builds + Allow ios/tvos UPL files an opportunity to modify a package's info.plist file Change 3034004 on 2016/06/30 by Lee.Clark PS4 - Use SDK 3.508.101 Change 3034007 on 2016/06/30 by Lee.Clark PS4 - VRTracker now uses SCE_VR_TRACKER_ROBUSTNESS_LEVEL_HIGH Change 3034173 on 2016/06/30 by Lee.Clark PS4 - Make sure depth target is null when eliminating fast clears. Fixes a GNM Validation failure Change 3034498 on 2016/06/30 by Jeff.Campeau Use MSBuild version 14 when generating project files. Change 3034943 on 2016/06/30 by Mark.Satterthwaite For Metal modify the MTLVertexDescriptor when calls to SetStreamSource provide different strides than the initial vertex-declaration which then requires compiling a different MTLRenderPipelineState. This silences errors reported by the Metal debug layer where the larger stride would see the shader read beyond the end of the buffer, but the smaller stride provided by SetStreamSource would work correctly. This may eliminate some more causes of Page-Fault GPU restarts. Change 3035416 on 2016/07/01 by Lee.Clark PS4 - Replace export vertex shader check with a CFLAG Change 3036093 on 2016/07/01 by Brent.Pease + Fix dSYM bundle path on Windows ios builds + Search for DeltaCopy directory if its not found from the user settings + Do not build an XCArchive file when building for ios on non-mac platforms Change 3036726 on 2016/07/02 by Brent.Pease + Add missing tvOS bitcode library Change 3037455 on 2016/07/05 by Lee.Clark PS4 - Default SmoothFrameRate to false Change 3037470 on 2016/07/05 by Keith.Judge Xbox One - Allow framerate smoothing, but default to off for consistency with PS4. Change 3038322 on 2016/07/05 by Jeremiah.Waldron Fix for asset packages with Unicode characters in their name not being loaded on Android. Fixing AndroidString's WIDECHAR* Strstr(WIDECHAR*, WIDECHAR*) function - Using an implementation of wcsstr, with a fix integrated for the incorrect implementation in Android ndk master branch, instead of converting the incoming WIDECHAR strings to ANSI strings just to be able to use strstr on them. The previous method was prone to causing the FString's Find and Contains functions to return false positives because when we convert wide to ansi, any character over the value of 255 is just set to '?' This in turn caused any package path strings with one of those characters in it to fail to load since they would be interpreted as having a question mark in their path, which is an invalid path character. #jira UE-18643 #android Change 3038693 on 2016/07/05 by Mark.Satterthwaite Change the way we store debug info for Metal shaders - the KeepDebugInfo flag now does precisely that, storing the shader code into the Metal header along with the path it was generated from. That means if KeepDebugInfo is enabled and Optimise is disabled then we can still access the shader code from within the Metal tools. On iOS/tvOS the shader code will be runtime compiled so that it shows up in the tooling but on Macs it will prefer to load the optimised version and simply unpack the shader code to the path from which it was compiled. This only works if we change the Metal shader compiler to emit temporary Metal files to the OS temporary directory so that the tools can read the file directly. Change 3039880 on 2016/07/06 by Mark.Satterthwaite Implement point-light shadow caching for RHI's that support specifying the render target layer from the vertex shader in lieu of geometry shaders. This requires changing FScreenVSForGS to TScreenVSForGS so that there can be a vertex-shader-layer variant (only compiled on RHI's that use it) whose output matches FCopyShadowMapsCubePS input. This alternative rendering path also requires adding the instance count to DrawRectangle so that we can render to all faces of the cubemap from a single draw call. Change 3040407 on 2016/07/06 by Michael.Trepka Added View->Enter Full Screen menu item for games on Mac Change 3040550 on 2016/07/06 by Mark.Satterthwaite Intel Metal compiler requires bool expressions be cast to 'int' rather than 'uint'. Change 3041098 on 2016/07/07 by Peter.Sauerbrei initial changes to get IOS builds from PC in launcher release of engine Change 3041310 on 2016/07/07 by Keith.Judge Xbox One - Optimize away GetDesc() and checks for D3D11_USAGE_DYNAMIC deep in the state cache as it's impossible for any buffer to have that flag set. Change 3041327 on 2016/07/07 by Keith.Judge Xbox One - Remove pointless memory barrier call in D3D11Query Change 3041352 on 2016/07/07 by Keith.Judge Xbox One - Add _RenderThread version of UpdateTexture2D() that just passes through to the RHI one. Saves a fairly significant chunk of time on the render/RHI thread when this is called a lot. Change 3041419 on 2016/07/07 by Jeff.Campeau Xbox One toolchain fix for VS2015 Update 3 Change 3041635 on 2016/07/07 by Jeff.Campeau Don't change game render resolution in response to WM_SIZE messages when in fullscreen (the game will restore the correct video mode when the window is restored). #jira OR-15578 Change 3041735 on 2016/07/07 by Peter.Sauerbrei re-enabled the build parameters for launcher release builds in IOS Change 3041783 on 2016/07/07 by Joe.Graf Changed bAutpApplyFailed to bAutoApplyFailed (typo) Change 3041784 on 2016/07/07 by Joe.Graf Fixed missing %s from a log message in UResavePackagesCommandlet Change 3042434 on 2016/07/08 by Lee.Clark PS4 - Fix compilation failure when Unsafe Command Buffers are enabled. Change 3042658 on 2016/07/08 by Lee.Clark PS4 - Use SDK 3.508.201 Change 3042970 on 2016/07/08 by Josh.Adams Redoing CL in 3040890 in Dev-Platform Change 3043243 on 2016/07/08 by Chris.Babcock clamped allowed slot range for gameplay debugger's categories copy of CL# 3040313 from //UE4/Dev-Framework #jira UE-32866 Change 3043500 on 2016/07/08 by Mark.Satterthwaite Downgrade "-Wdelete-non-virtual-dtor " to a warning again for Xcode 8 on iOS/tvOS to match macOS. Change 3044628 on 2016/07/11 by Mark.Satterthwaite Disable ShaderCache by default - it was implemented prior to RHI-thread/parallel-execution so it isn't thread-safe and can't be enabled by default on Mac now that Metal supports these features. #jira UE-32989 Change 3044948 on 2016/07/11 by Dmitry.Rekman Fix editor crash (happened on Linux, but not really specific to it) (UE-32973) - We can pass flags with shadows enabled when rendering asset thumbnails; thus disable shadows always when r.ShadowQuality is 0. (Redoing CL 3029574 by Bob). - Also fix mismatched 'noperspective' qualifier that caused NVidia drivers to refuse to link GL shaders. #jira UE-32973 Change 3045322 on 2016/07/11 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3046028 on 2016/07/12 by Lee.Clark PS4 - Check for correct SDK installation Allow use of 7th core when Morpheus is enabled Change 3046339 on 2016/07/12 by Peter.Sauerbrei fix for incorrect error message when iPhone Plus icon is the correct size [CL 3046645 by Josh Adams in Main branch]
2016-07-12 15:06:08 -04:00
DestFile.AbsolutePath,
Path.GetFileName(FullDestPathRoot));
}
else
{
GenDebugAction.CommandArguments = string.Format("-c 'rm -rf \"{1}\"; /usr/bin/dsymutil \"{0}\" -f -o \"{1}\"'",
Executable.AbsolutePath,
DestFile.AbsolutePath);
}
GenDebugAction.PrerequisiteItems.Add(Executable);
GenDebugAction.ProducedItems.Add(DestFile);
GenDebugAction.StatusDescription = GenDebugAction.CommandArguments;// string.Format("Generating debug info for {0}", Path.GetFileName(Executable.AbsolutePath));
GenDebugAction.bCanExecuteRemotely = false;
return DestFile;
}
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
private static void PackageStub(string BinaryPath, string GameName, string ExeName)
{
// create the ipa
string IPAName = BinaryPath + "/" + ExeName + ".stub";
// delete the old one
if (File.Exists(IPAName))
{
File.Delete(IPAName);
}
// make the subdirectory if needed
string DestSubdir = Path.GetDirectoryName(IPAName);
if (!Directory.Exists(DestSubdir))
{
Directory.CreateDirectory(DestSubdir);
}
// set up the directories
string ZipWorkingDir = String.Format("Payload/{0}.app/", GameName);
string ZipSourceDir = string.Format("{0}/Payload/{1}.app", BinaryPath, GameName);
// create the file
using (ZipFile Zip = new ZipFile())
{
// add the entire directory
Zip.AddDirectory(ZipSourceDir, ZipWorkingDir);
// Update permissions to be UNIX-style
// Modify the file attributes of any added file to unix format
foreach (ZipEntry E in Zip.Entries)
{
const byte FileAttributePlatform_NTFS = 0x0A;
const byte FileAttributePlatform_UNIX = 0x03;
const byte FileAttributePlatform_FAT = 0x00;
const int UNIX_FILETYPE_NORMAL_FILE = 0x8000;
//const int UNIX_FILETYPE_SOCKET = 0xC000;
//const int UNIX_FILETYPE_SYMLINK = 0xA000;
//const int UNIX_FILETYPE_BLOCKSPECIAL = 0x6000;
const int UNIX_FILETYPE_DIRECTORY = 0x4000;
//const int UNIX_FILETYPE_CHARSPECIAL = 0x2000;
//const int UNIX_FILETYPE_FIFO = 0x1000;
const int UNIX_EXEC = 1;
const int UNIX_WRITE = 2;
const int UNIX_READ = 4;
int MyPermissions = UNIX_READ | UNIX_WRITE;
int OtherPermissions = UNIX_READ;
int PlatformEncodedBy = (E.VersionMadeBy >> 8) & 0xFF;
int LowerBits = 0;
// Try to preserve read-only if it was set
bool bIsDirectory = E.IsDirectory;
// Check to see if this
bool bIsExecutable = false;
if (Path.GetFileNameWithoutExtension(E.FileName).Equals(GameName, StringComparison.InvariantCultureIgnoreCase))
{
bIsExecutable = true;
}
if (bIsExecutable)
{
// The executable will be encrypted in the final distribution IPA and will compress very poorly, so keeping it
// uncompressed gives a better indicator of IPA size for our distro builds
E.CompressionLevel = CompressionLevel.None;
}
if ((PlatformEncodedBy == FileAttributePlatform_NTFS) || (PlatformEncodedBy == FileAttributePlatform_FAT))
{
FileAttributes OldAttributes = E.Attributes;
//LowerBits = ((int)E.Attributes) & 0xFFFF;
if ((OldAttributes & FileAttributes.Directory) != 0)
{
bIsDirectory = true;
}
// Permissions
if ((OldAttributes & FileAttributes.ReadOnly) != 0)
{
MyPermissions &= ~UNIX_WRITE;
OtherPermissions &= ~UNIX_WRITE;
}
}
if (bIsDirectory || bIsExecutable)
{
MyPermissions |= UNIX_EXEC;
OtherPermissions |= UNIX_EXEC;
}
// Re-jigger the external file attributes to UNIX style if they're not already that way
if (PlatformEncodedBy != FileAttributePlatform_UNIX)
{
int NewAttributes = bIsDirectory ? UNIX_FILETYPE_DIRECTORY : UNIX_FILETYPE_NORMAL_FILE;
NewAttributes |= (MyPermissions << 6);
NewAttributes |= (OtherPermissions << 3);
NewAttributes |= (OtherPermissions << 0);
// Now modify the properties
E.AdjustExternalFileAttributes(FileAttributePlatform_UNIX, (NewAttributes << 16) | LowerBits);
}
}
// Save it out
Zip.Save(IPAName);
}
}
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
public static new void PreBuildSync()
{
if (BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
BuiltBinaries = new List<FileReference>();
}
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
RemoteToolChain.PreBuildSync();
// Unzip any third party frameworks that are stored as zips
foreach (UEBuildFramework Framework in RememberedAdditionalFrameworks)
{
string ZipSrcPath = GetRemoteFrameworkZipPath(Framework);
string ZipDstPath = GetRemoteIntermediateFrameworkZipPath(Framework);
Log.TraceInformation("Unzipping: {0} -> {1}", ZipSrcPath, ZipDstPath);
CleanIntermediateDirectory(ZipDstPath);
// Assume that there is another directory inside the zip with the same name as the zip
ZipDstPath = ZipDstPath.Substring(0, ZipDstPath.LastIndexOf('/'));
if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac)
{
// If we're on the mac, just unzip using the shell
string ResultsText;
RunExecutableAndWait("unzip", String.Format("-o \"{0}\" -d \"{1}\"", ZipSrcPath, ZipDstPath), out ResultsText);
continue;
}
else
{
// Use RPC utility if the zip is on remote mac
Hashtable Result = RPCUtilHelper.Command("/", String.Format("unzip -o \"{0}\" -d \"{1}\"", ZipSrcPath, ZipDstPath), "", null);
foreach (DictionaryEntry Entry in Result)
{
Log.TraceInformation("{0}", Entry.Value);
}
}
}
}
public void GenerateAssetCatalog(string EngineDir, string BuildDir, string IntermediateDir)
{
string[] Directories = { "Assets.xcassets",
Path.Combine("Assets.xcassets", "AppIcon.brandassets"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Back.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Back.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Front.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Front.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Middle.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconLarge.imagestack", "Middle.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Back.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Back.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Front.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Front.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Middle.imagestacklayer"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "AppIconSmall.imagestack", "Middle.imagestacklayer", "Content.imageset"),
Path.Combine("Assets.xcassets", "AppIcon.brandassets", "TopShelf.imageset"),
Path.Combine("Assets.xcassets", "LaunchImage.launchimage"),
};
string[] Contents = { "{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"assets\" : [\n\t\t{\n\t\t\t\"size\" : \"1280x768\",\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"AppIconLarge.imagestack\",\n\t\t\t\"role\" : \"primary-app-icon\"\n\t\t},\n\t\t{\n\t\t\t\"size\" : \"400x240\",\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"AppIconSmall.imagestack\",\n\t\t\t\"role\" : \"primary-app-icon\"\n\t\t},\n\t\t{\n\t\t\t\"size\" : \"1920x720\",\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"TopShelf.imageset\",\n\t\t\t\"role\" : \"top-shelf-image\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"layers\" : [\n\t\t{\n\t\t\t\"filename\" : \"Front.imagestacklayer\"\n\t\t},\n\t\t{\n\t\t\t\"filename\" : \"Middle.imagestacklayer\"\n\t\t},\n\t\t{\n\t\t\t\"filename\" : \"Back.imagestacklayer\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Large_Back.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Large_Front.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Large_Middle.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"layers\" : [\n\t\t{\n\t\t\t\"filename\" : \"Front.imagestacklayer\"\n\t\t},\n\t\t{\n\t\t\t\"filename\" : \"Middle.imagestacklayer\"\n\t\t},\n\t\t{\n\t\t\t\"filename\" : \"Back.imagestacklayer\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Small_Back.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Small_Front.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Icon_Small_Middle.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"TopShelf.png\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
"{\n\t\"images\" : [\n\t\t{\n\t\t\t\"orientation\" : \"landscape\",\n\t\t\t\"idiom\" : \"tv\",\n\t\t\t\"filename\" : \"Launch.png\",\n\t\t\t\"extent\" : \"full-screen\",\n\t\t\t\"minimum-system-version\" : \"9.0\",\n\t\t\t\"scale\" : \"1x\"\n\t\t}\n\t],\n\t\"info\" : {\n\t\t\"version\" : 1,\n\t\t\"author\" : \"xcode\"\n\t}\n}",
};
string[] Images = { null,
null,
null,
null,
"Icon_Large_Back.png",
null,
"Icon_Large_Front.png",
null,
"Icon_Large_Middle.png",
null,
null,
"Icon_Small_Back.png",
null,
"Icon_Small_Front.png",
null,
"Icon_Small_Middle.png",
"TopShelf.png",
"Launch.png"
};
// create asset catalog for images
for (int i = 0; i < Directories.Length; ++i)
{
string Dir = Path.Combine(IntermediateDir, Directories[i]);
if (!Directory.Exists(Dir))
{
Directory.CreateDirectory(Dir);
}
File.WriteAllText(Path.Combine(Dir, "Contents.json"), Contents[i]);
LocalToRemoteFileItem(FileItem.GetItemByPath(Path.Combine(Dir, "Contents.json")), BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac);
if (Images[i] != null)
{
string Image = Path.Combine((Directory.Exists(Path.Combine(BuildDir, "Resource", "Graphics")) ? (BuildDir) : (Path.Combine(EngineDir,"Build", "TVOS"))), "Resources", "Graphics", Images[i]);
if (File.Exists(Image))
{
File.Copy(Image, Path.Combine(Dir, Images[i]), true);
LocalToRemoteFileItem(FileItem.GetItemByPath(Path.Combine(Dir, Images[i])), BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac);
FileInfo DestFileInfo = new FileInfo(Path.Combine(Dir, Images[i]));
DestFileInfo.Attributes = DestFileInfo.Attributes & ~FileAttributes.ReadOnly;
}
}
}
}
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
public override ICollection<FileItem> PostBuild(FileItem Executable, LinkEnvironment BinaryLinkEnvironment, ActionGraph ActionGraph)
{
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
var OutputFiles = base.PostBuild(Executable, BinaryLinkEnvironment, ActionGraph);
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 (BinaryLinkEnvironment.bIsBuildingLibrary)
{
return OutputFiles;
}
// For IOS/tvOS, generate the dSYM file if the config file is set to do so
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 (ProjectSettings.bGeneratedSYMFile == true || ProjectSettings.bGeneratedSYMBundle == true || BinaryLinkEnvironment.bUsePDBFiles == true)
{
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
OutputFiles.Add(GenerateDebugInfo(Executable, ActionGraph));
}
// for tvOS generate the asset catalog
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 (CppPlatform == CppPlatform.TVOS)
{
string EngineDir = UnrealBuildTool.EngineDirectory.ToString();
string BuildDir = (((ProjectFile != null) ? ProjectFile.Directory : UnrealBuildTool.EngineDirectory)) + "/Build/TVOS";
string IntermediateDir = (((ProjectFile != null) ? ProjectFile.Directory : UnrealBuildTool.EngineDirectory)) + "/Intermediate/TVOS";
GenerateAssetCatalog(EngineDir, BuildDir, IntermediateDir);
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
OutputFiles.Add(CompileAssetCatalog(Executable, EngineDir, BuildDir, IntermediateDir, ActionGraph));
}
return OutputFiles;
}
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
public static string GetCodesignPlatformName(UnrealTargetPlatform Platform)
{
switch(Platform)
{
case UnrealTargetPlatform.TVOS:
return "appletvos";
case UnrealTargetPlatform.IOS:
return "iphoneos";
default:
throw new BuildException("Invalid platform for GetCodesignPlatformName()");
}
}
public static void PostBuildSync(UEBuildTarget Target)
{
IOSProjectSettings ProjectSettings = ((IOSPlatform)UEBuildPlatform.GetBuildPlatform(UnrealTargetPlatform.IOS)).ReadProjectSettings(Target.ProjectFile);
string AppName = Target.TargetType == TargetType.Game ? Target.TargetName : Target.AppName;
if (BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Mac)
{
string RemoteShadowDirectoryMac = Path.GetDirectoryName(Target.OutputPath.FullName);
string FinalRemoteExecutablePath = String.Format("{0}/Payload/{1}.app/{1}", RemoteShadowDirectoryMac, AppName);
// strip the debug info from the executable if needed
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 (Target.Rules.bStripSymbolsOnIOS || (Target.Configuration == UnrealTargetConfiguration.Shipping))
{
Process StripProcess = new Process();
StripProcess.StartInfo.WorkingDirectory = RemoteShadowDirectoryMac;
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
StripProcess.StartInfo.FileName = new IOSToolChainSettings().ToolchainDir + "strip";
StripProcess.StartInfo.Arguments = "\"" + Target.OutputPath + "\"";
StripProcess.OutputDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
StripProcess.ErrorDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
OutputReceivedDataEventHandlerEncounteredError = false;
OutputReceivedDataEventHandlerEncounteredErrorMessage = "";
Utils.RunLocalProcess(StripProcess);
if (OutputReceivedDataEventHandlerEncounteredError)
{
throw new Exception(OutputReceivedDataEventHandlerEncounteredErrorMessage);
}
}
// copy the executable
if (!File.Exists(FinalRemoteExecutablePath))
{
Directory.CreateDirectory(String.Format("{0}/Payload/{1}.app", RemoteShadowDirectoryMac, AppName));
}
File.Copy(Target.OutputPath.FullName, FinalRemoteExecutablePath, true);
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 (Target.Rules.bCreateStubIPA)
{
string Project = Target.ProjectDirectory + "/" + AppName + ".uproject";
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
string SchemeName = AppName;
// generate the dummy project so signing works
if (AppName == "UE4Game" || AppName == "UE4Client" || Utils.IsFileUnderDirectory(Target.ProjectDirectory + "/" + AppName + ".uproject", Path.GetFullPath("../..")))
{
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
UnrealBuildTool.GenerateProjectFiles(new XcodeProjectFileGenerator(Target.ProjectFile), new string[] { "-platforms=" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS"), "-NoIntellIsense", (Target.Platform == UnrealTargetPlatform.IOS ? "-iosdeployonly" : "-tvosdeployonly"), "-ignorejunk" });
Project = Path.GetFullPath("../..") + "/UE4_" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + ".xcworkspace";
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
SchemeName = "UE4";
}
else
{
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
UnrealBuildTool.GenerateProjectFiles(new XcodeProjectFileGenerator(Target.ProjectFile), new string[] { "-platforms" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS"), "-NoIntellIsense", (Target.Platform == UnrealTargetPlatform.IOS ? "-iosdeployonly" : "-tvosdeployonly"), "-ignorejunk", "-project=\"" + Target.ProjectDirectory + "/" + AppName + ".uproject\"", "-game" });
Project = Target.ProjectDirectory + "/" + AppName + "_" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + ".xcworkspace";
}
if (Directory.Exists(Project))
{
Copying //UE4/WEX-Staging to Dev-Main (//UE4/Dev-Main) =================== MAJOR FEATURES + CHANGES =================== Change 3123735 on 2016/09/13 by Josh.Markiewicz #UE4 - added FNames for some common online features to be refactored later #codereview david.nikdel Change 3123608 on 2016/09/13 by Josh.Markiewicz #OSS - refactor FUniqueNetIdRepl to derive from FUniqueNetIdWrapper and clean up redundant code #codereview david.nikdel Change 3120074 on 2016/09/09 by David.Nikdel #Analytics: Move log message to more correct location Change 3120073 on 2016/09/09 by David.Nikdel #Analytics: Adjustments to ET.DroppedSubmission per Wes's feedback - Don't try to restore events at all if caching is disabled (but do log the error) - Stop accumulating events (even the ET.DroppedSubmission event) at 1024 cached to defend against run away accumulation #CodeReview: Wes.Hunt Change 3119959 on 2016/09/09 by Peter.Sauerbrei update to engine to provide the generic chunk install when one is not implemented or requested #rb none Change 3119378 on 2016/09/09 by David.Nikdel #Analytics #ET: Added a config option to not drop events in the event of a failure to flush. - Events are re-added to the queue (may result in some reordering but timestamps will still be there) in the event of a failure - Also appending an ET.DroppedSubmission event in this case so we can track how often clients fail. Has HTTP_STATUS and URL attributes. - Events accumulate within a given application run but no attempt is made to persist across crashes etc. #CodeReview: Wes.Hunt Change 3118773 on 2016/09/08 by Peter.Sauerbrei bring over fix for missing debug information in IOS executables #rb none Change 3118574 on 2016/09/08 by Peter.Sauerbrei pulled over architecture fix for IOS from Main #rb none Change 3117672 on 2016/09/08 by Steve.Allison Adding 3544_iPadMini3_ChAIRQA Change 3116529 on 2016/09/07 by Josh.Markiewicz #UE4 - reverted started IOS purchase/store work from default engine OSS plugins #codereview david.nikdel Change 3116010 on 2016/09/07 by Josh.Markiewicz #WEX - Copying //WEX/Dev-Mobile to Dev-Main (//WEX/Dev-Main) to get OnlineSubsystemiOS changes Change 3114411 on 2016/09/06 by Peter.Sauerbrei fix for deploying movies to the correct directory #rb none Change 3113944 on 2016/09/06 by Peter.Sauerbrei addition of resave packages command to UAT #rb none Change 3112948 on 2016/09/02 by Nathan.Green #WEX - Fixing file length on Android so that we can write out stats files (change is being submitted into Dev-Mobile by Chris Babcock) #CodeReview: Chance.Lyon, David.Nikdel Change 3112567 on 2016/09/02 by Josh.Markiewicz #UE4 - fixed possible exception when checking directories that don't exist (copy of CL#3099217) #rb ben.marsh Change 3112055 on 2016/09/02 by Chance.Lyon #WEX - Merging mobile branch changes into main Change 3108827 on 2016/08/31 by Peter.Sauerbrei fix for warning #rb none Change 3105012 on 2016/08/29 by Peter.Sauerbrei enable ICMP for Android #rb none Change 3103322 on 2016/08/26 by David.Nikdel #WEX: Fix for clang warnings in Font Outline code #CodeReview: Matt.Kuhlenschmidt Change 3102935 on 2016/08/26 by David.Nikdel Merging CL 3102878 from //UE4/Dev-Editor/Engine/... to //WEX/Main/Engine/... ------ Added support for outline fonts - An outline size (in slate units), optional material and optional fill color can be specified with each font info. - Outlines do not contribute to measurement directly so the text measuring and shaping methods have been modified to account for outlines - Fixed a bug where font materials do not work properly if part of the font's rendered glyphs were in a different atlas #CodeReview: Matt.Kuhlenschmidt, Matt.Hancy, Peter.Sauerbrei Change 3102541 on 2016/08/26 by Peter.Sauerbrei fix for build warning on Mac and IOS #rb none Change 3101820 on 2016/08/25 by Peter.Sauerbrei Moved the online changes to the plugins directory #rb none Change 3101808 on 2016/08/25 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing in UE4 engine 4.14 #rb none Change 3097879 on 2016/08/23 by David.Nikdel #Analytics #OSS: Adjusted cohort selection algorithm and test cases Change 3096606 on 2016/08/22 by Nathan.Green #WEX - Adding bAllowWindowResize, bAllowClose, bAllowMaximize, and bAllowMinimize boolean to GeneralProjectSettings - Preventing us from resizing the window for the time being (in the future we may only allow along aspect ratio resizing) #CodeReview: Chance.Lyon, David.Nikdel Change 3094946 on 2016/08/19 by David.Nikdel #OSS - Added FUserOnlineAccountMcp::SelectCohort Change 3094942 on 2016/08/19 by David.Nikdel #UE4 - Made FMD5 const-correct Change 3092494 on 2016/08/17 by Nathan.Green #WEX - Making sure we never build zip64 instead of zip #CodeReview: Chance.Lyon, David.Nikdel, Chris.Babcock Change 3090760 on 2016/08/16 by Michael.Trepka Copy of CL 3089133 Fix for task bar displayed over the fullscreen window on Windows 10 with Anniversary Update Change 3090759 on 2016/08/16 by Michael.Trepka Copy of CL 3078927 Updated WindowTitleBarArea widget to not override window zone in fullscreen mode, to prevent window from being moved. That required adding separate handling for double click in fullscreen, as it's no longer handled by window action. Change 3087872 on 2016/08/12 by Josh.Markiewicz #UE4 - cleaned up IOS store/purchase interface (first pass, minus IAP restore) #codereview david.nikdel, josh.adams Change 3084182 on 2016/08/10 by Peter.Sauerbrei revert out the OpenGL shader compression code #rb none Change 3082565 on 2016/08/09 by Ben.Marsh Fix building with VS2015 update 3. Change 3082557 on 2016/08/09 by Ben.Marsh Fix UBT makefile being invalidated to update adaptive unity build settings, even if that module happens to not include that file in a unity file. Keep a list of all files included by unity files as well as files in the working set. #codereview Mike.Fricker, Michael.Noland Change 3082456 on 2016/08/09 by Josh.Markiewicz #UE4 - fixed typo Change 3082439 on 2016/08/09 by Josh.Markiewicz #UE4 - added CanMakePurchase call to IOS Change 3081905 on 2016/08/09 by Michael.Noland Editor: Made the text colors and font size in the output log configurable in the editor appearance settings (no changes to default values ... yet) #codereview matt.kuhlenschmidt Change 3080932 on 2016/08/08 by Josh.Markiewicz #UE4 - New IOS purchasing/store interface v2 - added interfaces to main IOS subsystem - added proper destruction of interfaces to Shutdown of IOS - moved FStoreKitHelper to its own file -- extended it for new v2 (improvements forthcoming) - MCPCatalogHelper returns bogus user id for IOS app store #codereview josh.adams, david.nikdel #tests very basic IAP stuff so far Change 3080217 on 2016/08/07 by Michael.Noland Engine: Prevented a startup warning when SpectatorClass is nullptr, as not all games require a spectator pawn - Also reduced the number of GetWorld() calls in APlayerController::SpawnSpectatorPawn() Change 3080046 on 2016/08/06 by Michael.Noland Engine: Moved where scissor rect reset happens for custom slate drawables to avoid a conflict with an existing fix in another branch #codereview matt.kuhlenschmidt Change 3080032 on 2016/08/06 by Michael.Noland UMG: Fixed a bug where screen-mode UWidgetComponent widgets were drawn incorrectly offset in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080031 on 2016/08/06 by Michael.Noland Engine: Add the option to return player viewport-relative positions to ProjectWorldLocationToScreenWithDistance, ProjectWorldLocationToScreen, and ProjectWorldToScreen, which is useful if the position is going to be used for widgets in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080029 on 2016/08/06 by Michael.Noland Engine: Fixed a bug where the debug console and other debug rendering would be an incorrect size (based on the last player viewport) and also be partially clipped (depending on what in Slate rendered previously) - This fixes issues with the console being offset and clipped when using aspect ratio constrained cameras or split screen #codereview matt.kuhlenschmidt Change 3079656 on 2016/08/05 by Josh.Markiewicz #WEX - basic IOS changes to project - added OnlineSubsystemIOS - added some default settings - removed GoogleVR from project #codereview david.nikdel Change 3078971 on 2016/08/05 by Steve.Allison Updating to match check-in for UE4 Main @ CL 3078968 Change 3078025 on 2016/08/04 by Michael.Trepka Copy of CLs 3073978 and 3075931 - More reliable way of checking if the cursor should be changed to resize cursor in bordeless window mode - On Windows, lock the cursor to the center of the rect if the cursor is hidden to avoid problems with borderless window's round corners not treated as part of the window. Change 3075415 on 2016/08/03 by Peter.Sauerbrei reduce the metal command buffers Change 3071457 on 2016/07/31 by David.Hunt #WEX Blueprint indexing @Pete: This change and anything in Engine/Content can be stomped by any engine integration. This is just to help with not having to resave all of these to udpate a few of our own content blueprints for search indexing. #CodeReview Peter.Sauerbrei, Steve.Allison, David.Nikdel Change 3068661 on 2016/07/28 by Josh.Markiewicz #WEX - changed the max number of possible UObjects allowed by a factor of 10 to reduce the memory footprint #codereview david.nikdel, peter.sauerbrei Change 3068500 on 2016/07/28 by David.Nikdel #OSSMCP: Use correct HttpRequest creation method to respect game service config Change 3066945 on 2016/07/27 by David.Nikdel Reproduced CL 3063869 from Michael.Noland >> Engine: Added a cvar (t.FPSChart.OpenFolderOnDump) to control whether or not FPS charts automatically open the profiling folder when stopfpschart is executed, which can be useful to avoid a bunch of open >> windows while doing automated testing #CodeReview: Michael.Noland #JIRA: WEX-2342 Change 3063495 on 2016/07/25 by Michael.Trepka Copy of CL 3063426 Borderless window support improvements: - the cursor changes to resize when hovering over the window edge - added a way for widgets to register a delegate that's called when window actions occur (maximize, restore, etc.) - used window action notification for WindowTitleBarArea to improve how toggling fullscreen on double click is handled Change 3063431 on 2016/07/25 by Michael.Trepka Copy of CL 3063057 - Use round corners for windows with no system title bar and border only in windowed mode. Change 3062654 on 2016/07/23 by Michael.Trepka Copy of CL 3046975 and 3056204 - Support for making the game window borderless (no system border or title bar). Disabled by default. Enabling requires adding bUseBorderlessWindow=True to [/Script/EngineSettings.GeneralProjectSettings] in DefaultGame.ini. The game using this is responsible for adding WindowTitleBarArea widget to its UI, as well as window minimize/maximize/close buttons. Change 3062647 on 2016/07/23 by Michael.Trepka Copy of CL 3029211 - Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3062646 on 2016/07/23 by Michael.Trepka Copy of CLs 3039855, 3042644 and 3042911 - Added an option to toggle fullscreen with F11 key in addition to Alt+Enter Change 3062638 on 2016/07/23 by Michael.Trepka Copy of CL 3038201 and CL 3046803 -Added WindowTitleBarArea widget Change 3062056 on 2016/07/22 by Peter.Sauerbrei addition of optimization for ios compile times Change 3054586 on 2016/07/18 by Nathan.Green #WEX - Adding tags around my engine level change #CodeReview: Chance.Lyon, David.Nikdel Change 3054581 on 2016/07/18 by Nathan.Green #WEX - Removing previous change, making all buttons ignore space bar and enter as we don't really care about that functionality #JIRA: WEX-2256 #CodeReview: Chance.Lyon, Colin.Pyle, David.Nikdel Change 3048243 on 2016/07/13 by Steve.Allison This one actually has the changes from rev4 Change 3046649 on 2016/07/12 by Steve.Allison Updating to match provision in UE4 Main @ CL 3046262 Change 3046127 on 2016/07/12 by Ian.Fox #UE4, #OnlineSubSystem - Hotfix in the ExpirationDate field early so we can update the OGF plugin #codereview David.Nikdel Change 3034707 on 2016/06/30 by Peter.Sauerbrei update provision to go with latest certificate #rb none Change 3031429 on 2016/06/28 by David.Nikdel #WEX: porting an engine change we depend on in latest OGF (pre integrate) Change 3030084 on 2016/06/27 by David.Nikdel #GameCatalog: Add code to export attributes in itemGrants #CodeReview: Scott.Bowen Change 3030073 on 2016/06/27 by David.Nikdel #Json: Make JsonObjectWrapper play nice with serialization and Import/Export Text #CodeReview: Scott.Bowen Change 3030029 on 2016/06/27 by David.Nikdel #WEX: Fix for FJsonObjectWrapper::ImportTextItem (use FParse::QuotedString to read from Buffer) #CodeReview: Scott.Bowen Change 3029740 on 2016/06/27 by David.Nikdel #OGF #JsonObjectWrapper - Add attributes to catalog grants @ScottB - I didn't get a chance to test this today. Things are crazy for PS+. All the code should already be there on the backend though. Here's a shelf in case you need it asap #CodeReview: Scott.Bowen Change 3028704 on 2016/06/27 by Ian.Fox Duplicating 3027482 from //Orion/Main Read TaggedPropertyRedirects from all config files to allow plugins to register property redirectors You'll need this before you grab the latest OGF or your catalog prices will go away, so here it is now #ue4 #rb David.Nikdel #tests none Change 3021448 on 2016/06/21 by Peter.Sauerbrei potential fix for android apk size issue Change 3020999 on 2016/06/21 by David.Nikdel #WEX: Likely fix for WEX-1610 #CodeReview: Chance.Lyon Change 3008450 on 2016/06/09 by Colin.Pyle #PF - WEX-1737, WEX-1744 - Adding the ability to set new layers in widget components - WidgetComponents are now blueprintable - New blueprint for the level marker menu widget components - Map marker menus are now in a layer above other widget components Change 3007804 on 2016/06/09 by Peter.Sauerbrei fix for build set up failure Change 3007292 on 2016/06/09 by Peter.Sauerbrei add the WEX e-mail stuff back in, seems to have gotten lost in the transition Change 3004478 on 2016/06/07 by Peter.Sauerbrei for now have the cooker respect the bCookAll flag in the project settings. Change 3000256 on 2016/06/03 by Peter.Sauerbrei fix for iOS compile warning Change 2998304 on 2016/06/02 by Nathan.Green #PF - Fixing Windowed Mode #CodeReview: Chance.Lyon, Colin.Pyle, Peter.Sauerbrei Change 2994269 on 2016/05/31 by Peter.Sauerbrei Merging //depot/UE4-WEX/... to //WEX/Main/... Change 2987181 on 2016/05/23 by Peter.Sauerbrei Merging //UE4/WEX-Staging/.p4ignore.txt //UE4/WEX-Staging/Engine/... //UE4/WEX-Staging/GenerateProjectFiles.bat //UE4/WEX-Staging/GenerateProjectFiles.command //UE4/WEX-Staging/GenerateProjectFiles.sh //UE4/WEX-Staging/UE4Games.uprojectdirs //UE4/WEX-Staging/WEX/... to //WEX/Main/... Change 2984959 on 2016/05/20 by Peter.Sauerbrei re-applying HSL engine change #PF PF-292 - Make sure to regenerate the list when you open the recipe view - Fixes cases where you buy an item in the store then return to evolve Change 2984957 on 2016/05/20 by Peter.Sauerbrei re-apply engine change from HSL #PF PF-33 - Check if we are in BeginDestroyed on Animation updates, possibly fixes a crash on level transition - Make interactive items play their mouseover animations - Heroes make the screen shake if they are on cooldown, we should figure out how to remove that on PC Change 2984956 on 2016/05/20 by Peter.Sauerbrei re-apply HSL change #PF PF-11 - Remove simulated touch with the mouse - Add Right-click support to the game - Right click now does the special attack Change 2984345 on 2016/05/19 by Peter.Sauerbrei Copying //UE4/WEX-Staging/... to //WEX/Main/... This should reset the merge history Change 2981872 on 2016/05/18 by Peter.Sauerbrei fixes for IOS build of WEX Change 2980734 on 2016/05/17 by Peter.Sauerbrei Copying //depot/UE4-WEX/... to //WEX/Main/... Populating WEX stream from old depot at CL2979954 #lockdown nick.penwarden [CL 3129012 by Peter Sauerbrei in Main branch]
2016-09-16 17:07:30 -04:00
// ensure the plist, entitlements, and provision files are properly copied
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
var DeployHandler = (Target.Platform == UnrealTargetPlatform.IOS ? new UEDeployIOS() : new UEDeployTVOS());
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
DeployHandler.PrepTargetForDeployment(new UEBuildDeployTarget(Target));
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
var ConfigName = Target.Configuration.ToString();
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 (Target.Rules.Type != TargetType.Game && Target.Rules.Type != TargetType.Program)
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
{
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
ConfigName += " " + Target.Rules.Type.ToString();
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
}
// code sign the project
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
IOSProvisioningData ProvisioningData = ((IOSPlatform)UEBuildPlatform.GetBuildPlatform(Target.Platform)).ReadProvisioningData(ProjectSettings);
string CmdLine = new IOSToolChainSettings().XcodeDeveloperDir + "usr/bin/xcodebuild" +
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
" -workspace \"" + Project + "\"" +
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
" -configuration \"" + ConfigName + "\"" +
" -scheme '" + SchemeName + "'" +
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
" -sdk " + GetCodesignPlatformName(Target.Platform) +
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
" -destination generic/platform=" + (Target.Platform == UnrealTargetPlatform.IOS ? "iOS" : "tvOS") +
(!string.IsNullOrEmpty(ProvisioningData.TeamUUID) ? " DEVELOPMENT_TEAM=" + ProvisioningData.TeamUUID : "");
if (!ProjectSettings.bAutomaticSigning)
{
CmdLine += " CODE_SIGN_IDENTITY=\"" + (!string.IsNullOrEmpty(ProvisioningData.SigningCertificate) ? ProvisioningData.SigningCertificate : "IPhoneDeveloper") + "\"" +
(!string.IsNullOrEmpty(ProvisioningData.MobileProvisionUUID) ? (" PROVISIONING_PROFILE_SPECIFIER=" + ProvisioningData.MobileProvisionUUID) : "");
}
else
{
CmdLine += " CODE_SIGN_IDENTITY=\"iPhone Developer\"";
}
Console.WriteLine("Code signing with command line: " + CmdLine);
Process SignProcess = new Process();
SignProcess.StartInfo.WorkingDirectory = RemoteShadowDirectoryMac;
SignProcess.StartInfo.FileName = "/usr/bin/xcrun";
SignProcess.StartInfo.Arguments = CmdLine;
SignProcess.OutputDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
SignProcess.ErrorDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
OutputReceivedDataEventHandlerEncounteredError = false;
OutputReceivedDataEventHandlerEncounteredErrorMessage = "";
Utils.RunLocalProcess(SignProcess);
// delete the temp project
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 (Project.Contains("_" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + ".xcodeproj"))
{
Directory.Delete(Project, true);
}
if (OutputReceivedDataEventHandlerEncounteredError)
{
throw new Exception(OutputReceivedDataEventHandlerEncounteredErrorMessage);
}
// Package the stub
PackageStub(RemoteShadowDirectoryMac, AppName, Target.OutputPath.GetFileNameWithoutExtension());
}
}
{
// Copy bundled assets from additional frameworks to the intermediate assets directory (so they can get picked up during staging)
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
String LocalFrameworkAssets = Path.GetFullPath(Target.ProjectDirectory + "/Intermediate/" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + "/FrameworkAssets");
// Clean the local dest directory if it exists
CleanIntermediateDirectory(LocalFrameworkAssets);
foreach (UEBuildFramework Framework in RememberedAdditionalFrameworks)
{
if (Framework.OwningModule == null || Framework.CopyBundledAssets == null || Framework.CopyBundledAssets == "")
{
continue; // Only care if we need to copy bundle assets
}
string UnpackedZipPath = GetRemoteIntermediateFrameworkZipPath(Framework);
// For now, this is hard coded, but we need to loop over all modules, and copy bundled assets that need it
string LocalSource = UnpackedZipPath + "/" + Framework.CopyBundledAssets;
string BundleName = Framework.CopyBundledAssets.Substring(Framework.CopyBundledAssets.LastIndexOf('/') + 1);
string LocalDest = LocalFrameworkAssets + "/" + BundleName;
Log.TraceInformation("Copying bundled asset... LocalSource: {0}, LocalDest: {1}", LocalSource, LocalDest);
string ResultsText;
RunExecutableAndWait("cp", String.Format("-R -L \"{0}\" \"{1}\"", LocalSource, LocalDest), out ResultsText);
}
}
}
else
{
// store off the binaries
foreach (UEBuildBinary Binary in Target.AppBinaries)
{
BuiltBinaries.Add(Binary.Config.OutputFilePath);
}
// check to see if the DangerouslyFast mode is valid (in other words, a build has gone through since a Rebuild/Clean operation)
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
FileReference DangerouslyFastValidFile = FileReference.Combine(Target.ProjectIntermediateDirectory, "DangerouslyFastIsNotDangerous");
bool bUseDangerouslyFastModeWasRequested = bUseDangerouslyFastMode;
if (bUseDangerouslyFastMode)
{
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(DangerouslyFastValidFile))
{
Log.TraceInformation("Dangeroulsy Fast mode was requested, but a slow mode hasn't completed. Performing slow now...");
bUseDangerouslyFastMode = false;
}
}
foreach (FileReference FilePath in BuiltBinaries)
{
string RemoteExecutablePath = ConvertPath(FilePath.FullName);
// when going super fast, just copy the executable to the final resting spot
if (bUseDangerouslyFastMode)
{
Log.TraceInformation("==============================================================================");
Log.TraceInformation("USING DANGEROUSLY FAST MODE! IF YOU HAVE ANY PROBLEMS, TRY A REBUILD/CLEAN!!!!");
Log.TraceInformation("==============================================================================");
// copy the executable
string RemoteShadowDirectoryMac = ConvertPath(Path.GetDirectoryName(Target.OutputPath.FullName));
string FinalRemoteExecutablePath = String.Format("{0}/Payload/{1}.app/{1}", RemoteShadowDirectoryMac, Target.TargetName);
RPCUtilHelper.Command("/", String.Format("cp -f {0} {1}", RemoteExecutablePath, FinalRemoteExecutablePath), "", null);
}
else if (!Utils.IsRunningOnMono && BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac)
{
RPCUtilHelper.CopyFile(RemoteExecutablePath, FilePath.FullName, false);
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 ((ProjectSettings.bGeneratedSYMFile == true || ProjectSettings.bGeneratedSYMBundle == true) && Path.GetExtension(FilePath.FullName) != ".a")
{
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3046626) #rb none #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2948322 on 2016/04/19 by Nick.Shin update libwebsockets to v1.7.4 part 4 of 4 - doing this in stages for tracking purposes #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 2970016 on 2016/05/07 by Nick.Shin undo all of the following upgrades: - zlib - openssl - libcurl - libwebsockets and reset webrtc #jira UE-30298 - Fortnite and Orion crash on login Change 3020547 on 2016/06/20 by Jeff.Campeau Support for applocal deployment of binaries -applocaldir added to UAT to specify a per project directory to gather packages for applocal deployment Added ApplocalPrerequisitesDirectory property to packaging settings to set -applocaldir for packages built from the editor. Change 3020552 on 2016/06/20 by Jeff.Campeau Add switch to disable debug symbol cache creation Change 3020567 on 2016/06/20 by Jeff.Campeau constexpr enabled for Xbox One Change 3020568 on 2016/06/20 by Jeff.Campeau Separate setting for debug #jira UEPLAT-1348 Change 3020628 on 2016/06/20 by Jeff.Campeau Use global view instead of relying on current thread (fixes issues if pump message is called from a different thread). Change 3020629 on 2016/06/20 by Jeff.Campeau Use Slate tick to drive message processing during blocking loads (improves PLM). Change 3020633 on 2016/06/20 by Jeff.Campeau Fix Xbox One toolchain pathing to work for environment variables with and without trailing slashes. Pass requested XDK edition to VCVars batch file (fixes issues in building with a newer XDK installed SxS than the engine is configured for). Change 3020873 on 2016/06/21 by Lee.Clark PS4 - Fix missing audio when using A3D. Change 3021225 on 2016/06/21 by Keith.Judge Optimized away a bunch of GetVertexShader() calls in FSplineMeshVertexFactoryShaderParameters::SetMesh(). Saves about 0.9ms across a 100ms capture. Change 3021286 on 2016/06/21 by Dmitry.Rekman Linux: symbolication for memory profiler. - Also repaired/improved finding function name from debug info and overall callstack parsing. #tests Ran Linux editor and TestPAL, crashed multiple times Change 3021512 on 2016/06/21 by Mark.Satterthwaite Compile fixes for new clang version. Change 3021521 on 2016/06/21 by Mark.Satterthwaite Duplicate Fortnite CL #3013418: Don't release Metal buffers directly into the buffer pool, instead defer this until the command-buffer is known to have finished. This prevents the CPU from trying to modify the buffer while the GPU is still reading it if the GPU has fallen so far behind the CPU and therefore eliminates one possible cause of invalid access on the GPU. Change 3021528 on 2016/06/21 by Mark.Satterthwaite Make the Metal buffer pool cull after 30 frames - this will better match Apple's GART which unwires unused allocations after 1sec of idle, making them as expensive to use allocating a new buffer. Change 3021595 on 2016/06/21 by Mark.Satterthwaite Consolidate the way in which optional Metal features are exposed across macOS, iOS & tvOS devices & expose all the available features, unifying more of the code across all three platforms. - Implement Metal Depth-16 and stencil-texture-view support where available. - Use counting queries in Metal when available and expected (i.e. Metal_SM4+ or Metal_MRT+). - On latest iOS devices running Metal export support for GRHISupportsBaseVertexIndex & GRHISupportsFirstInstance when available. - On latest iOS devices running Metal export support for indirect buffer draw and dispatch calls. - Specify Metal layered rendering like any other and change the code so that there aren't preprocessor defines in the code. This lets the Metal MRT path assert if anyone ever tries to issue a layered draw call as its only supported on Mac. - Add support to Metal for setting UAVs from a uniform buffer. - Remove unused GlobalUniform header from MetalRHI. - Remove unnecessary FrameCount delay from Metal resource free lists. Change 3021702 on 2016/06/21 by Mark.Satterthwaite Fix mis-use of FreeListMutex instead of PoolMutex in MetalContext. Change 3022152 on 2016/06/21 by Nick.Shin Back out revision 5 from //UE4/Dev-Platform/Engine/Source/Runtime/NetworkFileSystem/Private/NetworkFileServerHttp.cpp forgot to un-do this when the giant revert (CL: #2970016) was done #jira UE-22166 HTML5 Cook on the fly will launch and then close browser Change 3022409 on 2016/06/21 by Dmitry.Rekman Fixed inability to run Setup.sh on Ubuntu 14.04 (UE-29289). - Contains PR #2258 (contributed by wshearn). Change 3022541 on 2016/06/22 by Lee.Clark PS4 - Make sure the render target masks are set correctly for disabled render targets. Fixes a validation check for shaders expecting to write to NULL render targets. Change 3022973 on 2016/06/22 by Michael.Trepka Fixed a problem in MacToolChain where both BuildConfiguration.bGeneratedSYMFile and BuildConfiguration.bUsePDBFiles set to false would not disable dSYM generation. Change 3023106 on 2016/06/22 by Dmitry.Rekman Linux: enable code to catch memory stomps during async loading. - Changed FLinuxPlatformMemory::BinnedAllocFrom/FreeToOS() to use mmap()/munmap(). Updated platform function signature accordingly. #tests Ran OrionServer on Linux (and OrionClient on Windows as a zero probe), tested also with running Linux editor with binned malloc. Change 3023256 on 2016/06/22 by Mark.Satterthwaite Fix compile errors from latest Metal changes that broke iOS. Change 3023268 on 2016/06/22 by Mark.Satterthwaite Use the Linux mmap/munmap/mprotect code to implement BinnedAllocFromOS/BinnedFreeToOS/PageProtect on Apple platforms as they are all equivalent. Change 3023651 on 2016/06/22 by Mark.Satterthwaite Make Metal SM5 the default for 10.11.5 or later, this time most of the features should be working on AMD & Nvidia, though tiled-reflections and distance-field AO/Shadows must still be forcibly disabled on Intel. Change 3023777 on 2016/06/22 by Brent.Pease + Update config for Android and iOS Change 3023781 on 2016/06/22 by Chris.Babcock Use mmap/munmap for Android BinnedAllocFromOS #ue4 #android Change 3023947 on 2016/06/22 by Mark.Satterthwaite Added a command-line switch for Mac "-RedirectNSLog" that will capture the output of NSLog using an NSPipe and write it into our log instead when not running under the debugger, thereby capturing output from underlying libraries that would otherwise be lost when outside a debugger. Change 3024434 on 2016/06/23 by Lee.Clark PS4 - Remove Delta Color Compression support Change 3024735 on 2016/06/23 by Mark.Satterthwaite Changes to MetalStatistics module initialisation. Change 3024741 on 2016/06/23 by Mark.Satterthwaite Change the way we test for Metal GPU support to avoid instantiating any MTLDevice's until MetalRHI is loaded so we can properly instantiate optional modules. Change 3025477 on 2016/06/23 by Brent.Pease + Added UnrealPluginLanguage.cs based on AndroidPluginLanguage.cs + Change UEDeployAndroid.cs to use UnrealPluginLanguage Change 3026085 on 2016/06/23 by Jeff.Campeau Separate Xbox One target settings for editor only values Move values that need to be loaded by the editor into the default inis (editor won't load target specific inis) Eliminate circular dependency on Xbox One settings (causing settings to either not load or memory corruption on shutdown) Clean up cached ini sections for UBT/UAT Change 3026093 on 2016/06/23 by Jeff.Campeau Cleanup unused files Change 3026745 on 2016/06/24 by Mark.Satterthwaite + Implemented rudimentary runtime debugging of MetalRHI with several different levels of complexity controlled by the new console-variable "rhi.Metal.RuntimeDebugLevel". + The MetalStateCache must also correctly set the render-pass descriptor when the previous render-target load action was 'Clear' as we will need to switch render targets or we'll mistakenly clear again. + Queries must not reset the MetalStateCache when they overflow the available buffer space, they simply break the encoder. - By default "rhi.Metal.RuntimeDebugLevel" is off & it is compiled out for Shipping - when enabled each higher level collects more data or changes the MetalRHI behaviour to make a command-buffer failure mode debuggable at the expense of performance. In order for this to work the number of command-buffers that may be allocated from the command-queue is also controllable via a console-variable "rhi.Metal.CommandQueueSize" which must be set prior to startup. Change 3026831 on 2016/06/24 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3026940 on 2016/06/24 by Brent.Pease PR #2458: added GetGameBundleId blueprint function (Contributed by derekvanvliet) Change 3027396 on 2016/06/24 by Brent.Pease Add BuildGraph.csproj to get Xamarin .sln builds working again Change 3029211 on 2016/06/27 by Michael.Trepka Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3029518 on 2016/06/27 by Josh.Adams Rollback //UE4/Dev-Platform/Engine/Build/BatchFiles/Mac/xcodeunlock.sh to revision 1 Change 3030385 on 2016/06/28 by Keith.Judge Fix XB1 deployment issues with AppXManifest for Paragon. Change 3030416 on 2016/06/28 by Lee.Clark PS4 - Fix Mediaplayer IsPlaying Change 3030922 on 2016/06/28 by Keith.Judge XB1 - Add pass through _RenderThread resource creation functions to D3D11.x RHI. Stops the render/RHI threads from stalling so much. Change 3030948 on 2016/06/28 by Jeff.Campeau Revert to using constant chunk indexes instead of polling the OS. (OS API has a bug that will not be fixed.) Change 3031016 on 2016/06/28 by Brent.Pease UEPLAT-1244 - Archive dSYM file UEPLAT-1359 - Support creating dSYM bundle Changes: + Added ios settings flag for dsym bundle + Added ios setting for creating xcode archive + xcode archive is now only put in the mac host or build machine's ~/Library/Developer/Xcode/Archives folder, it is not copied into the -archive folder like the ipa is Change 3031352 on 2016/06/28 by Bob.Tellez Added tps file for xcodeunlock Change 3031604 on 2016/06/28 by Mark.Satterthwaite Add an additional cast to flush-to-zero in the Metal shader translator bounds-checking code to avoid an internal GPU compiler error. Change 3031879 on 2016/06/28 by Brent.Pease + PhysX libraries for bitcode support on tvOS. Change 3032374 on 2016/06/29 by Keith.Judge Enable Oodle Handler Component on Xbox One Change 3032407 on 2016/06/29 by Keith.Judge Xbox One - Disable UpdateBufferStats when STATS is 0. Small perf gain. Change 3032432 on 2016/06/29 by Keith.Judge XB1 CPU Perf - Make CreateVertexDeclaration_RenderThread much faster by implementing a pass through to the RHI function rather than stalling the RHI thread. Change 3033474 on 2016/06/29 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3033603 on 2016/06/29 by Brent.Pease + Support UnrealPluginLanguage for IOS and TVOS builds + Allow ios/tvos UPL files an opportunity to modify a package's info.plist file Change 3034004 on 2016/06/30 by Lee.Clark PS4 - Use SDK 3.508.101 Change 3034007 on 2016/06/30 by Lee.Clark PS4 - VRTracker now uses SCE_VR_TRACKER_ROBUSTNESS_LEVEL_HIGH Change 3034173 on 2016/06/30 by Lee.Clark PS4 - Make sure depth target is null when eliminating fast clears. Fixes a GNM Validation failure Change 3034498 on 2016/06/30 by Jeff.Campeau Use MSBuild version 14 when generating project files. Change 3034943 on 2016/06/30 by Mark.Satterthwaite For Metal modify the MTLVertexDescriptor when calls to SetStreamSource provide different strides than the initial vertex-declaration which then requires compiling a different MTLRenderPipelineState. This silences errors reported by the Metal debug layer where the larger stride would see the shader read beyond the end of the buffer, but the smaller stride provided by SetStreamSource would work correctly. This may eliminate some more causes of Page-Fault GPU restarts. Change 3035416 on 2016/07/01 by Lee.Clark PS4 - Replace export vertex shader check with a CFLAG Change 3036093 on 2016/07/01 by Brent.Pease + Fix dSYM bundle path on Windows ios builds + Search for DeltaCopy directory if its not found from the user settings + Do not build an XCArchive file when building for ios on non-mac platforms Change 3036726 on 2016/07/02 by Brent.Pease + Add missing tvOS bitcode library Change 3037455 on 2016/07/05 by Lee.Clark PS4 - Default SmoothFrameRate to false Change 3037470 on 2016/07/05 by Keith.Judge Xbox One - Allow framerate smoothing, but default to off for consistency with PS4. Change 3038322 on 2016/07/05 by Jeremiah.Waldron Fix for asset packages with Unicode characters in their name not being loaded on Android. Fixing AndroidString's WIDECHAR* Strstr(WIDECHAR*, WIDECHAR*) function - Using an implementation of wcsstr, with a fix integrated for the incorrect implementation in Android ndk master branch, instead of converting the incoming WIDECHAR strings to ANSI strings just to be able to use strstr on them. The previous method was prone to causing the FString's Find and Contains functions to return false positives because when we convert wide to ansi, any character over the value of 255 is just set to '?' This in turn caused any package path strings with one of those characters in it to fail to load since they would be interpreted as having a question mark in their path, which is an invalid path character. #jira UE-18643 #android Change 3038693 on 2016/07/05 by Mark.Satterthwaite Change the way we store debug info for Metal shaders - the KeepDebugInfo flag now does precisely that, storing the shader code into the Metal header along with the path it was generated from. That means if KeepDebugInfo is enabled and Optimise is disabled then we can still access the shader code from within the Metal tools. On iOS/tvOS the shader code will be runtime compiled so that it shows up in the tooling but on Macs it will prefer to load the optimised version and simply unpack the shader code to the path from which it was compiled. This only works if we change the Metal shader compiler to emit temporary Metal files to the OS temporary directory so that the tools can read the file directly. Change 3039880 on 2016/07/06 by Mark.Satterthwaite Implement point-light shadow caching for RHI's that support specifying the render target layer from the vertex shader in lieu of geometry shaders. This requires changing FScreenVSForGS to TScreenVSForGS so that there can be a vertex-shader-layer variant (only compiled on RHI's that use it) whose output matches FCopyShadowMapsCubePS input. This alternative rendering path also requires adding the instance count to DrawRectangle so that we can render to all faces of the cubemap from a single draw call. Change 3040407 on 2016/07/06 by Michael.Trepka Added View->Enter Full Screen menu item for games on Mac Change 3040550 on 2016/07/06 by Mark.Satterthwaite Intel Metal compiler requires bool expressions be cast to 'int' rather than 'uint'. Change 3041098 on 2016/07/07 by Peter.Sauerbrei initial changes to get IOS builds from PC in launcher release of engine Change 3041310 on 2016/07/07 by Keith.Judge Xbox One - Optimize away GetDesc() and checks for D3D11_USAGE_DYNAMIC deep in the state cache as it's impossible for any buffer to have that flag set. Change 3041327 on 2016/07/07 by Keith.Judge Xbox One - Remove pointless memory barrier call in D3D11Query Change 3041352 on 2016/07/07 by Keith.Judge Xbox One - Add _RenderThread version of UpdateTexture2D() that just passes through to the RHI one. Saves a fairly significant chunk of time on the render/RHI thread when this is called a lot. Change 3041419 on 2016/07/07 by Jeff.Campeau Xbox One toolchain fix for VS2015 Update 3 Change 3041635 on 2016/07/07 by Jeff.Campeau Don't change game render resolution in response to WM_SIZE messages when in fullscreen (the game will restore the correct video mode when the window is restored). #jira OR-15578 Change 3041735 on 2016/07/07 by Peter.Sauerbrei re-enabled the build parameters for launcher release builds in IOS Change 3041783 on 2016/07/07 by Joe.Graf Changed bAutpApplyFailed to bAutoApplyFailed (typo) Change 3041784 on 2016/07/07 by Joe.Graf Fixed missing %s from a log message in UResavePackagesCommandlet Change 3042434 on 2016/07/08 by Lee.Clark PS4 - Fix compilation failure when Unsafe Command Buffers are enabled. Change 3042658 on 2016/07/08 by Lee.Clark PS4 - Use SDK 3.508.201 Change 3042970 on 2016/07/08 by Josh.Adams Redoing CL in 3040890 in Dev-Platform Change 3043243 on 2016/07/08 by Chris.Babcock clamped allowed slot range for gameplay debugger's categories copy of CL# 3040313 from //UE4/Dev-Framework #jira UE-32866 Change 3043500 on 2016/07/08 by Mark.Satterthwaite Downgrade "-Wdelete-non-virtual-dtor " to a warning again for Xcode 8 on iOS/tvOS to match macOS. Change 3044628 on 2016/07/11 by Mark.Satterthwaite Disable ShaderCache by default - it was implemented prior to RHI-thread/parallel-execution so it isn't thread-safe and can't be enabled by default on Mac now that Metal supports these features. #jira UE-32989 Change 3044948 on 2016/07/11 by Dmitry.Rekman Fix editor crash (happened on Linux, but not really specific to it) (UE-32973) - We can pass flags with shadows enabled when rendering asset thumbnails; thus disable shadows always when r.ShadowQuality is 0. (Redoing CL 3029574 by Bob). - Also fix mismatched 'noperspective' qualifier that caused NVidia drivers to refuse to link GL shaders. #jira UE-32973 Change 3045322 on 2016/07/11 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3046028 on 2016/07/12 by Lee.Clark PS4 - Check for correct SDK installation Allow use of 7th core when Morpheus is enabled Change 3046339 on 2016/07/12 by Peter.Sauerbrei fix for incorrect error message when iPhone Plus icon is the correct size [CL 3046645 by Josh Adams in Main branch]
2016-07-12 15:06:08 -04:00
string DSYMExt;
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(ProjectSettings.bGeneratedSYMBundle)
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3046626) #rb none #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2948322 on 2016/04/19 by Nick.Shin update libwebsockets to v1.7.4 part 4 of 4 - doing this in stages for tracking purposes #jira UEPLAT-1246 - Update libWebsockets #jira UEPLAT-1221 - update websocket library #jira UEPLAT-1204 - Rebuild libwebsockets with SSL Change 2970016 on 2016/05/07 by Nick.Shin undo all of the following upgrades: - zlib - openssl - libcurl - libwebsockets and reset webrtc #jira UE-30298 - Fortnite and Orion crash on login Change 3020547 on 2016/06/20 by Jeff.Campeau Support for applocal deployment of binaries -applocaldir added to UAT to specify a per project directory to gather packages for applocal deployment Added ApplocalPrerequisitesDirectory property to packaging settings to set -applocaldir for packages built from the editor. Change 3020552 on 2016/06/20 by Jeff.Campeau Add switch to disable debug symbol cache creation Change 3020567 on 2016/06/20 by Jeff.Campeau constexpr enabled for Xbox One Change 3020568 on 2016/06/20 by Jeff.Campeau Separate setting for debug #jira UEPLAT-1348 Change 3020628 on 2016/06/20 by Jeff.Campeau Use global view instead of relying on current thread (fixes issues if pump message is called from a different thread). Change 3020629 on 2016/06/20 by Jeff.Campeau Use Slate tick to drive message processing during blocking loads (improves PLM). Change 3020633 on 2016/06/20 by Jeff.Campeau Fix Xbox One toolchain pathing to work for environment variables with and without trailing slashes. Pass requested XDK edition to VCVars batch file (fixes issues in building with a newer XDK installed SxS than the engine is configured for). Change 3020873 on 2016/06/21 by Lee.Clark PS4 - Fix missing audio when using A3D. Change 3021225 on 2016/06/21 by Keith.Judge Optimized away a bunch of GetVertexShader() calls in FSplineMeshVertexFactoryShaderParameters::SetMesh(). Saves about 0.9ms across a 100ms capture. Change 3021286 on 2016/06/21 by Dmitry.Rekman Linux: symbolication for memory profiler. - Also repaired/improved finding function name from debug info and overall callstack parsing. #tests Ran Linux editor and TestPAL, crashed multiple times Change 3021512 on 2016/06/21 by Mark.Satterthwaite Compile fixes for new clang version. Change 3021521 on 2016/06/21 by Mark.Satterthwaite Duplicate Fortnite CL #3013418: Don't release Metal buffers directly into the buffer pool, instead defer this until the command-buffer is known to have finished. This prevents the CPU from trying to modify the buffer while the GPU is still reading it if the GPU has fallen so far behind the CPU and therefore eliminates one possible cause of invalid access on the GPU. Change 3021528 on 2016/06/21 by Mark.Satterthwaite Make the Metal buffer pool cull after 30 frames - this will better match Apple's GART which unwires unused allocations after 1sec of idle, making them as expensive to use allocating a new buffer. Change 3021595 on 2016/06/21 by Mark.Satterthwaite Consolidate the way in which optional Metal features are exposed across macOS, iOS & tvOS devices & expose all the available features, unifying more of the code across all three platforms. - Implement Metal Depth-16 and stencil-texture-view support where available. - Use counting queries in Metal when available and expected (i.e. Metal_SM4+ or Metal_MRT+). - On latest iOS devices running Metal export support for GRHISupportsBaseVertexIndex & GRHISupportsFirstInstance when available. - On latest iOS devices running Metal export support for indirect buffer draw and dispatch calls. - Specify Metal layered rendering like any other and change the code so that there aren't preprocessor defines in the code. This lets the Metal MRT path assert if anyone ever tries to issue a layered draw call as its only supported on Mac. - Add support to Metal for setting UAVs from a uniform buffer. - Remove unused GlobalUniform header from MetalRHI. - Remove unnecessary FrameCount delay from Metal resource free lists. Change 3021702 on 2016/06/21 by Mark.Satterthwaite Fix mis-use of FreeListMutex instead of PoolMutex in MetalContext. Change 3022152 on 2016/06/21 by Nick.Shin Back out revision 5 from //UE4/Dev-Platform/Engine/Source/Runtime/NetworkFileSystem/Private/NetworkFileServerHttp.cpp forgot to un-do this when the giant revert (CL: #2970016) was done #jira UE-22166 HTML5 Cook on the fly will launch and then close browser Change 3022409 on 2016/06/21 by Dmitry.Rekman Fixed inability to run Setup.sh on Ubuntu 14.04 (UE-29289). - Contains PR #2258 (contributed by wshearn). Change 3022541 on 2016/06/22 by Lee.Clark PS4 - Make sure the render target masks are set correctly for disabled render targets. Fixes a validation check for shaders expecting to write to NULL render targets. Change 3022973 on 2016/06/22 by Michael.Trepka Fixed a problem in MacToolChain where both BuildConfiguration.bGeneratedSYMFile and BuildConfiguration.bUsePDBFiles set to false would not disable dSYM generation. Change 3023106 on 2016/06/22 by Dmitry.Rekman Linux: enable code to catch memory stomps during async loading. - Changed FLinuxPlatformMemory::BinnedAllocFrom/FreeToOS() to use mmap()/munmap(). Updated platform function signature accordingly. #tests Ran OrionServer on Linux (and OrionClient on Windows as a zero probe), tested also with running Linux editor with binned malloc. Change 3023256 on 2016/06/22 by Mark.Satterthwaite Fix compile errors from latest Metal changes that broke iOS. Change 3023268 on 2016/06/22 by Mark.Satterthwaite Use the Linux mmap/munmap/mprotect code to implement BinnedAllocFromOS/BinnedFreeToOS/PageProtect on Apple platforms as they are all equivalent. Change 3023651 on 2016/06/22 by Mark.Satterthwaite Make Metal SM5 the default for 10.11.5 or later, this time most of the features should be working on AMD & Nvidia, though tiled-reflections and distance-field AO/Shadows must still be forcibly disabled on Intel. Change 3023777 on 2016/06/22 by Brent.Pease + Update config for Android and iOS Change 3023781 on 2016/06/22 by Chris.Babcock Use mmap/munmap for Android BinnedAllocFromOS #ue4 #android Change 3023947 on 2016/06/22 by Mark.Satterthwaite Added a command-line switch for Mac "-RedirectNSLog" that will capture the output of NSLog using an NSPipe and write it into our log instead when not running under the debugger, thereby capturing output from underlying libraries that would otherwise be lost when outside a debugger. Change 3024434 on 2016/06/23 by Lee.Clark PS4 - Remove Delta Color Compression support Change 3024735 on 2016/06/23 by Mark.Satterthwaite Changes to MetalStatistics module initialisation. Change 3024741 on 2016/06/23 by Mark.Satterthwaite Change the way we test for Metal GPU support to avoid instantiating any MTLDevice's until MetalRHI is loaded so we can properly instantiate optional modules. Change 3025477 on 2016/06/23 by Brent.Pease + Added UnrealPluginLanguage.cs based on AndroidPluginLanguage.cs + Change UEDeployAndroid.cs to use UnrealPluginLanguage Change 3026085 on 2016/06/23 by Jeff.Campeau Separate Xbox One target settings for editor only values Move values that need to be loaded by the editor into the default inis (editor won't load target specific inis) Eliminate circular dependency on Xbox One settings (causing settings to either not load or memory corruption on shutdown) Clean up cached ini sections for UBT/UAT Change 3026093 on 2016/06/23 by Jeff.Campeau Cleanup unused files Change 3026745 on 2016/06/24 by Mark.Satterthwaite + Implemented rudimentary runtime debugging of MetalRHI with several different levels of complexity controlled by the new console-variable "rhi.Metal.RuntimeDebugLevel". + The MetalStateCache must also correctly set the render-pass descriptor when the previous render-target load action was 'Clear' as we will need to switch render targets or we'll mistakenly clear again. + Queries must not reset the MetalStateCache when they overflow the available buffer space, they simply break the encoder. - By default "rhi.Metal.RuntimeDebugLevel" is off & it is compiled out for Shipping - when enabled each higher level collects more data or changes the MetalRHI behaviour to make a command-buffer failure mode debuggable at the expense of performance. In order for this to work the number of command-buffers that may be allocated from the command-queue is also controllable via a console-variable "rhi.Metal.CommandQueueSize" which must be set prior to startup. Change 3026831 on 2016/06/24 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3026940 on 2016/06/24 by Brent.Pease PR #2458: added GetGameBundleId blueprint function (Contributed by derekvanvliet) Change 3027396 on 2016/06/24 by Brent.Pease Add BuildGraph.csproj to get Xamarin .sln builds working again Change 3029211 on 2016/06/27 by Michael.Trepka Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3029518 on 2016/06/27 by Josh.Adams Rollback //UE4/Dev-Platform/Engine/Build/BatchFiles/Mac/xcodeunlock.sh to revision 1 Change 3030385 on 2016/06/28 by Keith.Judge Fix XB1 deployment issues with AppXManifest for Paragon. Change 3030416 on 2016/06/28 by Lee.Clark PS4 - Fix Mediaplayer IsPlaying Change 3030922 on 2016/06/28 by Keith.Judge XB1 - Add pass through _RenderThread resource creation functions to D3D11.x RHI. Stops the render/RHI threads from stalling so much. Change 3030948 on 2016/06/28 by Jeff.Campeau Revert to using constant chunk indexes instead of polling the OS. (OS API has a bug that will not be fixed.) Change 3031016 on 2016/06/28 by Brent.Pease UEPLAT-1244 - Archive dSYM file UEPLAT-1359 - Support creating dSYM bundle Changes: + Added ios settings flag for dsym bundle + Added ios setting for creating xcode archive + xcode archive is now only put in the mac host or build machine's ~/Library/Developer/Xcode/Archives folder, it is not copied into the -archive folder like the ipa is Change 3031352 on 2016/06/28 by Bob.Tellez Added tps file for xcodeunlock Change 3031604 on 2016/06/28 by Mark.Satterthwaite Add an additional cast to flush-to-zero in the Metal shader translator bounds-checking code to avoid an internal GPU compiler error. Change 3031879 on 2016/06/28 by Brent.Pease + PhysX libraries for bitcode support on tvOS. Change 3032374 on 2016/06/29 by Keith.Judge Enable Oodle Handler Component on Xbox One Change 3032407 on 2016/06/29 by Keith.Judge Xbox One - Disable UpdateBufferStats when STATS is 0. Small perf gain. Change 3032432 on 2016/06/29 by Keith.Judge XB1 CPU Perf - Make CreateVertexDeclaration_RenderThread much faster by implementing a pass through to the RHI function rather than stalling the RHI thread. Change 3033474 on 2016/06/29 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3033603 on 2016/06/29 by Brent.Pease + Support UnrealPluginLanguage for IOS and TVOS builds + Allow ios/tvos UPL files an opportunity to modify a package's info.plist file Change 3034004 on 2016/06/30 by Lee.Clark PS4 - Use SDK 3.508.101 Change 3034007 on 2016/06/30 by Lee.Clark PS4 - VRTracker now uses SCE_VR_TRACKER_ROBUSTNESS_LEVEL_HIGH Change 3034173 on 2016/06/30 by Lee.Clark PS4 - Make sure depth target is null when eliminating fast clears. Fixes a GNM Validation failure Change 3034498 on 2016/06/30 by Jeff.Campeau Use MSBuild version 14 when generating project files. Change 3034943 on 2016/06/30 by Mark.Satterthwaite For Metal modify the MTLVertexDescriptor when calls to SetStreamSource provide different strides than the initial vertex-declaration which then requires compiling a different MTLRenderPipelineState. This silences errors reported by the Metal debug layer where the larger stride would see the shader read beyond the end of the buffer, but the smaller stride provided by SetStreamSource would work correctly. This may eliminate some more causes of Page-Fault GPU restarts. Change 3035416 on 2016/07/01 by Lee.Clark PS4 - Replace export vertex shader check with a CFLAG Change 3036093 on 2016/07/01 by Brent.Pease + Fix dSYM bundle path on Windows ios builds + Search for DeltaCopy directory if its not found from the user settings + Do not build an XCArchive file when building for ios on non-mac platforms Change 3036726 on 2016/07/02 by Brent.Pease + Add missing tvOS bitcode library Change 3037455 on 2016/07/05 by Lee.Clark PS4 - Default SmoothFrameRate to false Change 3037470 on 2016/07/05 by Keith.Judge Xbox One - Allow framerate smoothing, but default to off for consistency with PS4. Change 3038322 on 2016/07/05 by Jeremiah.Waldron Fix for asset packages with Unicode characters in their name not being loaded on Android. Fixing AndroidString's WIDECHAR* Strstr(WIDECHAR*, WIDECHAR*) function - Using an implementation of wcsstr, with a fix integrated for the incorrect implementation in Android ndk master branch, instead of converting the incoming WIDECHAR strings to ANSI strings just to be able to use strstr on them. The previous method was prone to causing the FString's Find and Contains functions to return false positives because when we convert wide to ansi, any character over the value of 255 is just set to '?' This in turn caused any package path strings with one of those characters in it to fail to load since they would be interpreted as having a question mark in their path, which is an invalid path character. #jira UE-18643 #android Change 3038693 on 2016/07/05 by Mark.Satterthwaite Change the way we store debug info for Metal shaders - the KeepDebugInfo flag now does precisely that, storing the shader code into the Metal header along with the path it was generated from. That means if KeepDebugInfo is enabled and Optimise is disabled then we can still access the shader code from within the Metal tools. On iOS/tvOS the shader code will be runtime compiled so that it shows up in the tooling but on Macs it will prefer to load the optimised version and simply unpack the shader code to the path from which it was compiled. This only works if we change the Metal shader compiler to emit temporary Metal files to the OS temporary directory so that the tools can read the file directly. Change 3039880 on 2016/07/06 by Mark.Satterthwaite Implement point-light shadow caching for RHI's that support specifying the render target layer from the vertex shader in lieu of geometry shaders. This requires changing FScreenVSForGS to TScreenVSForGS so that there can be a vertex-shader-layer variant (only compiled on RHI's that use it) whose output matches FCopyShadowMapsCubePS input. This alternative rendering path also requires adding the instance count to DrawRectangle so that we can render to all faces of the cubemap from a single draw call. Change 3040407 on 2016/07/06 by Michael.Trepka Added View->Enter Full Screen menu item for games on Mac Change 3040550 on 2016/07/06 by Mark.Satterthwaite Intel Metal compiler requires bool expressions be cast to 'int' rather than 'uint'. Change 3041098 on 2016/07/07 by Peter.Sauerbrei initial changes to get IOS builds from PC in launcher release of engine Change 3041310 on 2016/07/07 by Keith.Judge Xbox One - Optimize away GetDesc() and checks for D3D11_USAGE_DYNAMIC deep in the state cache as it's impossible for any buffer to have that flag set. Change 3041327 on 2016/07/07 by Keith.Judge Xbox One - Remove pointless memory barrier call in D3D11Query Change 3041352 on 2016/07/07 by Keith.Judge Xbox One - Add _RenderThread version of UpdateTexture2D() that just passes through to the RHI one. Saves a fairly significant chunk of time on the render/RHI thread when this is called a lot. Change 3041419 on 2016/07/07 by Jeff.Campeau Xbox One toolchain fix for VS2015 Update 3 Change 3041635 on 2016/07/07 by Jeff.Campeau Don't change game render resolution in response to WM_SIZE messages when in fullscreen (the game will restore the correct video mode when the window is restored). #jira OR-15578 Change 3041735 on 2016/07/07 by Peter.Sauerbrei re-enabled the build parameters for launcher release builds in IOS Change 3041783 on 2016/07/07 by Joe.Graf Changed bAutpApplyFailed to bAutoApplyFailed (typo) Change 3041784 on 2016/07/07 by Joe.Graf Fixed missing %s from a log message in UResavePackagesCommandlet Change 3042434 on 2016/07/08 by Lee.Clark PS4 - Fix compilation failure when Unsafe Command Buffers are enabled. Change 3042658 on 2016/07/08 by Lee.Clark PS4 - Use SDK 3.508.201 Change 3042970 on 2016/07/08 by Josh.Adams Redoing CL in 3040890 in Dev-Platform Change 3043243 on 2016/07/08 by Chris.Babcock clamped allowed slot range for gameplay debugger's categories copy of CL# 3040313 from //UE4/Dev-Framework #jira UE-32866 Change 3043500 on 2016/07/08 by Mark.Satterthwaite Downgrade "-Wdelete-non-virtual-dtor " to a warning again for Xcode 8 on iOS/tvOS to match macOS. Change 3044628 on 2016/07/11 by Mark.Satterthwaite Disable ShaderCache by default - it was implemented prior to RHI-thread/parallel-execution so it isn't thread-safe and can't be enabled by default on Mac now that Metal supports these features. #jira UE-32989 Change 3044948 on 2016/07/11 by Dmitry.Rekman Fix editor crash (happened on Linux, but not really specific to it) (UE-32973) - We can pass flags with shadows enabled when rendering asset thumbnails; thus disable shadows always when r.ShadowQuality is 0. (Redoing CL 3029574 by Bob). - Also fix mismatched 'noperspective' qualifier that caused NVidia drivers to refuse to link GL shaders. #jira UE-32973 Change 3045322 on 2016/07/11 by Josh.Adams Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform) Change 3046028 on 2016/07/12 by Lee.Clark PS4 - Check for correct SDK installation Allow use of 7th core when Morpheus is enabled Change 3046339 on 2016/07/12 by Peter.Sauerbrei fix for incorrect error message when iPhone Plus icon is the correct size [CL 3046645 by Josh Adams in Main branch]
2016-07-12 15:06:08 -04:00
{
DSYMExt = ".dSYM.zip";
}
else
{
DSYMExt = ".dSYM";
}
RPCUtilHelper.CopyFile(RemoteExecutablePath + DSYMExt, FilePath.FullName + DSYMExt, false);
}
}
}
// Generate the stub
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 (Target.Rules.bCreateStubIPA || bUseDangerouslyFastMode)
{
Copying //UE4/WEX-Staging to Dev-Main (//UE4/Dev-Main) =================== MAJOR FEATURES + CHANGES =================== Change 3123735 on 2016/09/13 by Josh.Markiewicz #UE4 - added FNames for some common online features to be refactored later #codereview david.nikdel Change 3123608 on 2016/09/13 by Josh.Markiewicz #OSS - refactor FUniqueNetIdRepl to derive from FUniqueNetIdWrapper and clean up redundant code #codereview david.nikdel Change 3120074 on 2016/09/09 by David.Nikdel #Analytics: Move log message to more correct location Change 3120073 on 2016/09/09 by David.Nikdel #Analytics: Adjustments to ET.DroppedSubmission per Wes's feedback - Don't try to restore events at all if caching is disabled (but do log the error) - Stop accumulating events (even the ET.DroppedSubmission event) at 1024 cached to defend against run away accumulation #CodeReview: Wes.Hunt Change 3119959 on 2016/09/09 by Peter.Sauerbrei update to engine to provide the generic chunk install when one is not implemented or requested #rb none Change 3119378 on 2016/09/09 by David.Nikdel #Analytics #ET: Added a config option to not drop events in the event of a failure to flush. - Events are re-added to the queue (may result in some reordering but timestamps will still be there) in the event of a failure - Also appending an ET.DroppedSubmission event in this case so we can track how often clients fail. Has HTTP_STATUS and URL attributes. - Events accumulate within a given application run but no attempt is made to persist across crashes etc. #CodeReview: Wes.Hunt Change 3118773 on 2016/09/08 by Peter.Sauerbrei bring over fix for missing debug information in IOS executables #rb none Change 3118574 on 2016/09/08 by Peter.Sauerbrei pulled over architecture fix for IOS from Main #rb none Change 3117672 on 2016/09/08 by Steve.Allison Adding 3544_iPadMini3_ChAIRQA Change 3116529 on 2016/09/07 by Josh.Markiewicz #UE4 - reverted started IOS purchase/store work from default engine OSS plugins #codereview david.nikdel Change 3116010 on 2016/09/07 by Josh.Markiewicz #WEX - Copying //WEX/Dev-Mobile to Dev-Main (//WEX/Dev-Main) to get OnlineSubsystemiOS changes Change 3114411 on 2016/09/06 by Peter.Sauerbrei fix for deploying movies to the correct directory #rb none Change 3113944 on 2016/09/06 by Peter.Sauerbrei addition of resave packages command to UAT #rb none Change 3112948 on 2016/09/02 by Nathan.Green #WEX - Fixing file length on Android so that we can write out stats files (change is being submitted into Dev-Mobile by Chris Babcock) #CodeReview: Chance.Lyon, David.Nikdel Change 3112567 on 2016/09/02 by Josh.Markiewicz #UE4 - fixed possible exception when checking directories that don't exist (copy of CL#3099217) #rb ben.marsh Change 3112055 on 2016/09/02 by Chance.Lyon #WEX - Merging mobile branch changes into main Change 3108827 on 2016/08/31 by Peter.Sauerbrei fix for warning #rb none Change 3105012 on 2016/08/29 by Peter.Sauerbrei enable ICMP for Android #rb none Change 3103322 on 2016/08/26 by David.Nikdel #WEX: Fix for clang warnings in Font Outline code #CodeReview: Matt.Kuhlenschmidt Change 3102935 on 2016/08/26 by David.Nikdel Merging CL 3102878 from //UE4/Dev-Editor/Engine/... to //WEX/Main/Engine/... ------ Added support for outline fonts - An outline size (in slate units), optional material and optional fill color can be specified with each font info. - Outlines do not contribute to measurement directly so the text measuring and shaping methods have been modified to account for outlines - Fixed a bug where font materials do not work properly if part of the font's rendered glyphs were in a different atlas #CodeReview: Matt.Kuhlenschmidt, Matt.Hancy, Peter.Sauerbrei Change 3102541 on 2016/08/26 by Peter.Sauerbrei fix for build warning on Mac and IOS #rb none Change 3101820 on 2016/08/25 by Peter.Sauerbrei Moved the online changes to the plugins directory #rb none Change 3101808 on 2016/08/25 by Peter.Sauerbrei Merging using WEX_Main_to_UE4_WEX_Staging bringing in UE4 engine 4.14 #rb none Change 3097879 on 2016/08/23 by David.Nikdel #Analytics #OSS: Adjusted cohort selection algorithm and test cases Change 3096606 on 2016/08/22 by Nathan.Green #WEX - Adding bAllowWindowResize, bAllowClose, bAllowMaximize, and bAllowMinimize boolean to GeneralProjectSettings - Preventing us from resizing the window for the time being (in the future we may only allow along aspect ratio resizing) #CodeReview: Chance.Lyon, David.Nikdel Change 3094946 on 2016/08/19 by David.Nikdel #OSS - Added FUserOnlineAccountMcp::SelectCohort Change 3094942 on 2016/08/19 by David.Nikdel #UE4 - Made FMD5 const-correct Change 3092494 on 2016/08/17 by Nathan.Green #WEX - Making sure we never build zip64 instead of zip #CodeReview: Chance.Lyon, David.Nikdel, Chris.Babcock Change 3090760 on 2016/08/16 by Michael.Trepka Copy of CL 3089133 Fix for task bar displayed over the fullscreen window on Windows 10 with Anniversary Update Change 3090759 on 2016/08/16 by Michael.Trepka Copy of CL 3078927 Updated WindowTitleBarArea widget to not override window zone in fullscreen mode, to prevent window from being moved. That required adding separate handling for double click in fullscreen, as it's no longer handled by window action. Change 3087872 on 2016/08/12 by Josh.Markiewicz #UE4 - cleaned up IOS store/purchase interface (first pass, minus IAP restore) #codereview david.nikdel, josh.adams Change 3084182 on 2016/08/10 by Peter.Sauerbrei revert out the OpenGL shader compression code #rb none Change 3082565 on 2016/08/09 by Ben.Marsh Fix building with VS2015 update 3. Change 3082557 on 2016/08/09 by Ben.Marsh Fix UBT makefile being invalidated to update adaptive unity build settings, even if that module happens to not include that file in a unity file. Keep a list of all files included by unity files as well as files in the working set. #codereview Mike.Fricker, Michael.Noland Change 3082456 on 2016/08/09 by Josh.Markiewicz #UE4 - fixed typo Change 3082439 on 2016/08/09 by Josh.Markiewicz #UE4 - added CanMakePurchase call to IOS Change 3081905 on 2016/08/09 by Michael.Noland Editor: Made the text colors and font size in the output log configurable in the editor appearance settings (no changes to default values ... yet) #codereview matt.kuhlenschmidt Change 3080932 on 2016/08/08 by Josh.Markiewicz #UE4 - New IOS purchasing/store interface v2 - added interfaces to main IOS subsystem - added proper destruction of interfaces to Shutdown of IOS - moved FStoreKitHelper to its own file -- extended it for new v2 (improvements forthcoming) - MCPCatalogHelper returns bogus user id for IOS app store #codereview josh.adams, david.nikdel #tests very basic IAP stuff so far Change 3080217 on 2016/08/07 by Michael.Noland Engine: Prevented a startup warning when SpectatorClass is nullptr, as not all games require a spectator pawn - Also reduced the number of GetWorld() calls in APlayerController::SpawnSpectatorPawn() Change 3080046 on 2016/08/06 by Michael.Noland Engine: Moved where scissor rect reset happens for custom slate drawables to avoid a conflict with an existing fix in another branch #codereview matt.kuhlenschmidt Change 3080032 on 2016/08/06 by Michael.Noland UMG: Fixed a bug where screen-mode UWidgetComponent widgets were drawn incorrectly offset in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080031 on 2016/08/06 by Michael.Noland Engine: Add the option to return player viewport-relative positions to ProjectWorldLocationToScreenWithDistance, ProjectWorldLocationToScreen, and ProjectWorldToScreen, which is useful if the position is going to be used for widgets in splitscreen or with aspect-ratio constrained cameras #codereview nick.darnell, marc.audy Change 3080029 on 2016/08/06 by Michael.Noland Engine: Fixed a bug where the debug console and other debug rendering would be an incorrect size (based on the last player viewport) and also be partially clipped (depending on what in Slate rendered previously) - This fixes issues with the console being offset and clipped when using aspect ratio constrained cameras or split screen #codereview matt.kuhlenschmidt Change 3079656 on 2016/08/05 by Josh.Markiewicz #WEX - basic IOS changes to project - added OnlineSubsystemIOS - added some default settings - removed GoogleVR from project #codereview david.nikdel Change 3078971 on 2016/08/05 by Steve.Allison Updating to match check-in for UE4 Main @ CL 3078968 Change 3078025 on 2016/08/04 by Michael.Trepka Copy of CLs 3073978 and 3075931 - More reliable way of checking if the cursor should be changed to resize cursor in bordeless window mode - On Windows, lock the cursor to the center of the rect if the cursor is hidden to avoid problems with borderless window's round corners not treated as part of the window. Change 3075415 on 2016/08/03 by Peter.Sauerbrei reduce the metal command buffers Change 3071457 on 2016/07/31 by David.Hunt #WEX Blueprint indexing @Pete: This change and anything in Engine/Content can be stomped by any engine integration. This is just to help with not having to resave all of these to udpate a few of our own content blueprints for search indexing. #CodeReview Peter.Sauerbrei, Steve.Allison, David.Nikdel Change 3068661 on 2016/07/28 by Josh.Markiewicz #WEX - changed the max number of possible UObjects allowed by a factor of 10 to reduce the memory footprint #codereview david.nikdel, peter.sauerbrei Change 3068500 on 2016/07/28 by David.Nikdel #OSSMCP: Use correct HttpRequest creation method to respect game service config Change 3066945 on 2016/07/27 by David.Nikdel Reproduced CL 3063869 from Michael.Noland >> Engine: Added a cvar (t.FPSChart.OpenFolderOnDump) to control whether or not FPS charts automatically open the profiling folder when stopfpschart is executed, which can be useful to avoid a bunch of open >> windows while doing automated testing #CodeReview: Michael.Noland #JIRA: WEX-2342 Change 3063495 on 2016/07/25 by Michael.Trepka Copy of CL 3063426 Borderless window support improvements: - the cursor changes to resize when hovering over the window edge - added a way for widgets to register a delegate that's called when window actions occur (maximize, restore, etc.) - used window action notification for WindowTitleBarArea to improve how toggling fullscreen on double click is handled Change 3063431 on 2016/07/25 by Michael.Trepka Copy of CL 3063057 - Use round corners for windows with no system title bar and border only in windowed mode. Change 3062654 on 2016/07/23 by Michael.Trepka Copy of CL 3046975 and 3056204 - Support for making the game window borderless (no system border or title bar). Disabled by default. Enabling requires adding bUseBorderlessWindow=True to [/Script/EngineSettings.GeneralProjectSettings] in DefaultGame.ini. The game using this is responsible for adding WindowTitleBarArea widget to its UI, as well as window minimize/maximize/close buttons. Change 3062647 on 2016/07/23 by Michael.Trepka Copy of CL 3029211 - Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user Change 3062646 on 2016/07/23 by Michael.Trepka Copy of CLs 3039855, 3042644 and 3042911 - Added an option to toggle fullscreen with F11 key in addition to Alt+Enter Change 3062638 on 2016/07/23 by Michael.Trepka Copy of CL 3038201 and CL 3046803 -Added WindowTitleBarArea widget Change 3062056 on 2016/07/22 by Peter.Sauerbrei addition of optimization for ios compile times Change 3054586 on 2016/07/18 by Nathan.Green #WEX - Adding tags around my engine level change #CodeReview: Chance.Lyon, David.Nikdel Change 3054581 on 2016/07/18 by Nathan.Green #WEX - Removing previous change, making all buttons ignore space bar and enter as we don't really care about that functionality #JIRA: WEX-2256 #CodeReview: Chance.Lyon, Colin.Pyle, David.Nikdel Change 3048243 on 2016/07/13 by Steve.Allison This one actually has the changes from rev4 Change 3046649 on 2016/07/12 by Steve.Allison Updating to match provision in UE4 Main @ CL 3046262 Change 3046127 on 2016/07/12 by Ian.Fox #UE4, #OnlineSubSystem - Hotfix in the ExpirationDate field early so we can update the OGF plugin #codereview David.Nikdel Change 3034707 on 2016/06/30 by Peter.Sauerbrei update provision to go with latest certificate #rb none Change 3031429 on 2016/06/28 by David.Nikdel #WEX: porting an engine change we depend on in latest OGF (pre integrate) Change 3030084 on 2016/06/27 by David.Nikdel #GameCatalog: Add code to export attributes in itemGrants #CodeReview: Scott.Bowen Change 3030073 on 2016/06/27 by David.Nikdel #Json: Make JsonObjectWrapper play nice with serialization and Import/Export Text #CodeReview: Scott.Bowen Change 3030029 on 2016/06/27 by David.Nikdel #WEX: Fix for FJsonObjectWrapper::ImportTextItem (use FParse::QuotedString to read from Buffer) #CodeReview: Scott.Bowen Change 3029740 on 2016/06/27 by David.Nikdel #OGF #JsonObjectWrapper - Add attributes to catalog grants @ScottB - I didn't get a chance to test this today. Things are crazy for PS+. All the code should already be there on the backend though. Here's a shelf in case you need it asap #CodeReview: Scott.Bowen Change 3028704 on 2016/06/27 by Ian.Fox Duplicating 3027482 from //Orion/Main Read TaggedPropertyRedirects from all config files to allow plugins to register property redirectors You'll need this before you grab the latest OGF or your catalog prices will go away, so here it is now #ue4 #rb David.Nikdel #tests none Change 3021448 on 2016/06/21 by Peter.Sauerbrei potential fix for android apk size issue Change 3020999 on 2016/06/21 by David.Nikdel #WEX: Likely fix for WEX-1610 #CodeReview: Chance.Lyon Change 3008450 on 2016/06/09 by Colin.Pyle #PF - WEX-1737, WEX-1744 - Adding the ability to set new layers in widget components - WidgetComponents are now blueprintable - New blueprint for the level marker menu widget components - Map marker menus are now in a layer above other widget components Change 3007804 on 2016/06/09 by Peter.Sauerbrei fix for build set up failure Change 3007292 on 2016/06/09 by Peter.Sauerbrei add the WEX e-mail stuff back in, seems to have gotten lost in the transition Change 3004478 on 2016/06/07 by Peter.Sauerbrei for now have the cooker respect the bCookAll flag in the project settings. Change 3000256 on 2016/06/03 by Peter.Sauerbrei fix for iOS compile warning Change 2998304 on 2016/06/02 by Nathan.Green #PF - Fixing Windowed Mode #CodeReview: Chance.Lyon, Colin.Pyle, Peter.Sauerbrei Change 2994269 on 2016/05/31 by Peter.Sauerbrei Merging //depot/UE4-WEX/... to //WEX/Main/... Change 2987181 on 2016/05/23 by Peter.Sauerbrei Merging //UE4/WEX-Staging/.p4ignore.txt //UE4/WEX-Staging/Engine/... //UE4/WEX-Staging/GenerateProjectFiles.bat //UE4/WEX-Staging/GenerateProjectFiles.command //UE4/WEX-Staging/GenerateProjectFiles.sh //UE4/WEX-Staging/UE4Games.uprojectdirs //UE4/WEX-Staging/WEX/... to //WEX/Main/... Change 2984959 on 2016/05/20 by Peter.Sauerbrei re-applying HSL engine change #PF PF-292 - Make sure to regenerate the list when you open the recipe view - Fixes cases where you buy an item in the store then return to evolve Change 2984957 on 2016/05/20 by Peter.Sauerbrei re-apply engine change from HSL #PF PF-33 - Check if we are in BeginDestroyed on Animation updates, possibly fixes a crash on level transition - Make interactive items play their mouseover animations - Heroes make the screen shake if they are on cooldown, we should figure out how to remove that on PC Change 2984956 on 2016/05/20 by Peter.Sauerbrei re-apply HSL change #PF PF-11 - Remove simulated touch with the mouse - Add Right-click support to the game - Right click now does the special attack Change 2984345 on 2016/05/19 by Peter.Sauerbrei Copying //UE4/WEX-Staging/... to //WEX/Main/... This should reset the merge history Change 2981872 on 2016/05/18 by Peter.Sauerbrei fixes for IOS build of WEX Change 2980734 on 2016/05/17 by Peter.Sauerbrei Copying //depot/UE4-WEX/... to //WEX/Main/... Populating WEX stream from old depot at CL2979954 #lockdown nick.penwarden [CL 3129012 by Peter Sauerbrei in Main branch]
2016-09-16 17:07:30 -04:00
// ensure the plist, entitlements, and provision files are properly copied
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
var DeployHandler = (Target.Platform == UnrealTargetPlatform.IOS ? new UEDeployIOS() : new UEDeployTVOS());
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
DeployHandler.PrepTargetForDeployment(new UEBuildDeployTarget(Target));
if (!bUseDangerouslyFastMode)
{
// generate the dummy project so signing works
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
UnrealBuildTool.GenerateProjectFiles(new XcodeProjectFileGenerator(Target.ProjectFile), new string[] { "-NoIntellisense", (Target.Platform == UnrealTargetPlatform.IOS ? "-iosdeployonly" : "-tvosdeployonly"), ((Target.ProjectFile != null) ? "-game" : "") });
}
// now that
Process StubGenerateProcess = new Process();
StubGenerateProcess.StartInfo.WorkingDirectory = Path.GetFullPath("..\\Binaries\\DotNET\\IOS");
StubGenerateProcess.StartInfo.FileName = Path.Combine(StubGenerateProcess.StartInfo.WorkingDirectory, "iPhonePackager.exe");
string Arguments = "";
string PathToApp = Target.RulesAssembly.GetTargetFileName(AppName).FullName;
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
string SchemeName = AppName;
// right now, no programs have a Source subdirectory, so assume the PathToApp is directly in the root
if (Path.GetDirectoryName(PathToApp).Contains(@"\Engine\Source\Programs"))
{
PathToApp = Path.GetDirectoryName(PathToApp);
}
else
{
Int32 SourceIndex = PathToApp.LastIndexOf(@"\Intermediate\Source");
if (SourceIndex != -1)
{
PathToApp = PathToApp.Substring(0, SourceIndex);
}
else
{
SourceIndex = PathToApp.LastIndexOf(@"\Source");
if (SourceIndex != -1)
{
PathToApp = PathToApp.Substring(0, SourceIndex);
}
else
{
throw new BuildException("The target was not in a /Source subdirectory");
}
}
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
if (AppName != "UE4Game" && AppName != "UE4Client")
{
PathToApp += "\\" + AppName + ".uproject";
}
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
else
{
SchemeName = "UE4";
}
}
var SchemeConfiguration = Target.Configuration.ToString();
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 (Target.Rules.Type != TargetType.Game && Target.Rules.Type != TargetType.Program)
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
{
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3232619) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3121996 on 2016/09/12 by Ben.Marsh Add support for Visual Studio 2017 (aka "15"; assuming consistent naming with other versions until final name is announced). * Compiler, STL implementation and CRT are binary compatible with VS2015 (see https://blogs.msdn.microsoft.com/vcblog/2016/08/24/c1417-features-and-stl-fixes-in-vs-15-preview-4/), so no new third-party libraries needed so far. WindowsPlatform.GetVisualStudioCompilerVersionName() returns "2015" as a result. * Default compiler for compiling and generating project files is still VS 2015 for now. Pass -2017 on the command line to GenerateProjectFiles.bat to generate VS2017 projects. Projects generated for VS2017 will use the 2017 compiler by default. * Visual Studio source code accessor can talk to VS 2017 instances. * Added a VS2017 configuration for UnrealVS, and added precompiled vsix package. * Switched GetVSComnTools to check the SOFTWARE\Microsoft\VisualStudio\SxS\VS7 registry key rather than the individual product install registry key. "15" doesn't seem to have it's own "InstallDir" key, but this system seems to work for all versions of Visual Studio (including previous releases of VS Express). * Removed ATL dependency from VisualStudioSourceCodeAccessor. It's not installed with VS by default any more, and is only used for a couple of smart pointer classes. Tested running the editor and packaging TP_Flying for Win64. Packaging from the editor still defaults to using the 2015 compiler, so ConfigureToolchain() needs to be overriden from the .target.cs file if multiple Visual Studio versions are installed. Change 3189363 on 2016/11/07 by Ben.Marsh Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment. Change 3210598 on 2016/11/27 by Ben.Marsh UBT: Prevent the name of each file compiled being output twice on XboxOne. Compiler already outputs this string; the action doesn't need to. Change 3210601 on 2016/11/27 by Ben.Marsh PR #2967: Add silent version of switch game version (Contributed by EricLeeFriedman) Change 3210602 on 2016/11/27 by Ben.Marsh PR #2964: GitDependencies shouldn't try to clean up working directory files that are excluded or ignored (Contributed by joelmcginnis) Change 3210605 on 2016/11/27 by Ben.Marsh UGS: Add a warning when syncing latest would remove changes that have been authored locally. Typically happens when working with precompiled binaries. Change 3211656 on 2016/11/28 by Ben.Marsh UBT: Move ModuleRules and TargetRules into their own file. Change 3211797 on 2016/11/28 by Ben.Marsh UBT: Remove utility functions from TargetRules for checking different classes of target types. Moving TargetRules to be data-only. Change 3211833 on 2016/11/28 by Ben.Marsh UBT: Remove overridable configuration name from target rules. This feature is not used anywhere. Change 3211859 on 2016/11/28 by Ben.Marsh UBT: Deprecate the GetGeneratedCodeVersion() callback in favor of a member variable instead. Change 3211942 on 2016/11/28 by Ben.Marsh UBT: Remove legacy code which tries to change the output paths for console binaries. Output paths for monolithic binaries are always in the project folder now. Change 3215333 on 2016/11/30 by Ben.Marsh UBT: Replace the GetSupportedPlatforms() callback on TargetRules with a SupportedPlatforms attribute. Since a TargetRules object can only be instantiated with an actual platform, it doesn't make sense for it to be an instance method. Change 3215482 on 2016/11/30 by Ben.Marsh UBT: Remove the GetSupportedConfigurations() callback on the TargetRules class. A configuration is required to construct a TargetRules instance, so it doesn't make sense to need to call an instance method to find out which configurations are supported. Change 3215743 on 2016/11/30 by Ben.Marsh UBT: Deprecate the TargetRules.ShouldCompileMonolithic() function: this function requires access to the global command line to operate correctly, which prevents creating target-specific instances, and does not use the platform/configuration passed into the TargetRules constructor. Rather than being a callback, the LinkType field can now be set to TargetLinkType.Modular or TargetLinkType.Monolithic from the constructor as appropriate. The default value (TargetLinkType.Default) results in the default link type for the target type being used. Parsing of the command-line overrides is now done when building the TargetDescriptor. Change 3215778 on 2016/11/30 by Ben.Marsh UBT: Mark overrides of the TargetRules.GetModulesToPrecompile method as obsolete. Change 3217681 on 2016/12/01 by Ben.Marsh UAT: Prevent UE4Build deleting .modules files when running with the -Clean argument; these files are artifacts generated by UBT itself, not by the exported XGE script. Change 3217723 on 2016/12/01 by Ben.Marsh UBT: Run pre- and post-build steps for all plugins that are being built, not just those that are enabled. Change 3217930 on 2016/12/01 by Ben.Marsh UGS: Add a perforce settings window, allowing users to set optional values for tuning Perforce performance on unreliable connections. Change 3218762 on 2016/12/02 by Ben.Marsh Enable warnings whenever an undefined macro is used in a constant expression inside an #if or #elif directive, and fix existing violations. Change 3219161 on 2016/12/02 by Ben.Marsh Core: Use the directory containing the current module to derive the UE4 base directory, rather than the executable directory. Allows UE4 to be hosted by a process in a different directory. Change 3219197 on 2016/12/02 by Ben.Marsh Core: When loading a DLL from disk, convert any relative paths to absolute before calling LoadLibrary. The OS resolves these paths relative to the directory containing the process executable -- not the working directory -- so paths need to be absolute to allow UE4 to be hosted by a process elsewhere. Change 3219209 on 2016/12/02 by Ben.Marsh Replace some calls to LoadLibrary() with FPlatformProcess::GetDllHandle(). The UE4 function makes sure that relative paths are resolved relative to the correct base directory, which is important when the host executable is not in Engine/Binaries/Win64. Change 3219610 on 2016/12/02 by Ben.Marsh Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful. Change 3219731 on 2016/12/02 by Ben.Marsh UBT: Add option to disable IWYU checks regarding the use of monolithic headers (Engine.h, UnrealEd.h, etc...) and including the matching header for a cpp file first. bEnforceIWYU can be set to false in UEBuildConfiguration or on a per-module basis in the module rules. Change 3220796 on 2016/12/04 by Ben.Marsh Remove PrepForUATPackageOrDeploy from the UEBuildDeploy base class. It never has to be accessed through the base class anyway. Change 3220825 on 2016/12/04 by Ben.Marsh UBT: Change all executors to derive from a common base class (ActionExecutor). Change 3220834 on 2016/12/04 by Ben.Marsh UBT: Remove the global CommandLineContains() function. Change 3222706 on 2016/12/05 by Ben.Marsh Merging CL 3221949 from //UE4/Release-4.14: Fixes to code analysis template causing problems with stock install of VS2017. Change 3222712 on 2016/12/05 by Ben.Marsh Merging CL 3222021 from //UE4/Release-4.14: Change detection of MSBuild.exe path to match GetMSBuildPath.bat Change 3223628 on 2016/12/06 by Ben.Marsh Merging CL 3223369 from 4.14 branch: Use the same logic as GetMsBuildPath.bat inside FDesktopPlatformBase to determine path to MSBuild.exe Change 3223817 on 2016/12/06 by Ben.Marsh Remove non-ANSI characters from source files. Compiler/P4 support is patchy for this, and we want to avoid failing prey to different codepages resulting in different interpretations of the source text. Change 3224046 on 2016/12/06 by Ben.Marsh Remove the need for the iOS/TVOS deployment instances to have an IOSPlatformContext instance. The only dependency between the two -- a call to GetRequiredCapabilities() -- is now implemented by querying the INI file for the supported architectures when neeeded. Change 3224792 on 2016/12/07 by Ben.Marsh UBT: Touch PCH wrapper files whenever the file they include is newer rather than writing the timestamp for the included file into it as a comment. Allows use of ccache and similar tools. Change 3225212 on 2016/12/07 by Ben.Marsh UBT: Move settings required for deployment into the UEBuildDeployTarget class, allowing them to be serialized to and from a file the intermediate directory without having to construct a phony UEBuildTarget to deploy. Deployment is now performed by a method on UEBuildPlatform, rather than having to create a UEBuildPlatformContext and using that to create a UEBuildDeploy object. The -prepfordeploy UBT invocation from UAT, previously done by the per-platform PostBuildTarget() callback when building with XGE, is replaced by running UBT with a path to the serialized UEBuildDeployTarget object, and can be done in a platform agnostic manner. Change 3226310 on 2016/12/07 by Ben.Marsh PR #3015: Fixes wrong VSC++ flags being passed for .c files (Contributed by badlogic) Change 3228273 on 2016/12/08 by Ben.Marsh Update copyright notices for QAGame. Change 3229166 on 2016/12/09 by Ben.Marsh UBT: Rewritten config file parser. No longer requires hard-coded list of sections to be parsed, but parses them on demand. Measured 2x faster read speeds (largely due to eliminating construction of temporary string objects when parsing each line, to trim whitespace and so on). Also includes an attribute-driven parser, which allows reading named config values for marked up fields in an object. Change 3230601 on 2016/12/12 by Ben.Marsh Swarm: Change Swarm AgentInterface to target .NET framework 4.5, to remove dependency on having 4.0 framework installed. Change 3230737 on 2016/12/12 by Ben.Marsh UAT: Stop UE4Build deriving from CommandUtils. Confusing pattern, and causes problems trying to access instance variables that are only set for build commands. Change 3230751 on 2016/12/12 by Ben.Marsh UAT: Move ParseParam*() functions which use the instanced parameter list from CommandUtils to BuildCommand, since that's the only thing that it's instanced for. Change 3230804 on 2016/12/12 by Ben.Marsh UBT: Add the IsPromotedBuild flag to Build.version, and only set the bFormalBuild flag in UBT if it's set. This allows UGS users to avoid having to compile separate RC files for each output binary. Change 3230831 on 2016/12/12 by Ben.Marsh UGS: Warn when trying to switch streams if files are checked out. Change 3231281 on 2016/12/12 by Chad.Garyet Fixing a bug where .modules files were getting put into receipts with their absolute path instead of their relative one Change 3231496 on 2016/12/12 by Ben.Marsh Disable code analysis in CrashReportProcess; causes warnings when compiled with VS2015. Change 3231979 on 2016/12/12 by Ben.Marsh UBT: Suppress LNK4221 when generating import libraries. This can happen often when generating import libraries separately to linking. Change 3232619 on 2016/12/13 by Ben.Marsh Fix "#pragma once in main file" errors on Mac, which are occurring in //UE4/Main. [CL 3232653 by Ben Marsh in Main branch]
2016-12-13 11:58:16 -05:00
SchemeConfiguration += " " + Target.Rules.Type.ToString();
}
if (bUseDangerouslyFastMode)
{
// the quickness!
Arguments += "DangerouslyFast " + PathToApp;
}
else
{
Arguments += "PackageIPA \"" + PathToApp + "\" -createstub";
// if we are making the dsym, then we can strip the debug info from the executable
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 (Target.Rules.bStripSymbolsOnIOS || (Target.Configuration == UnrealTargetConfiguration.Shipping))
{
Arguments += " -strip";
}
}
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
Arguments += " -config " + Target.Configuration + " -mac " + RemoteServerName + " -schemename " + SchemeName + " -schemeconfig \"" + SchemeConfiguration + "\"";
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
string Architecture = Target.Architecture;
if (Architecture != "")
{
// pass along the architecture if we need, skipping the initial -, so we have "-architecture simulator"
Arguments += " -architecture " + Architecture.Substring(1);
}
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 (Target.Platform == UnrealTargetPlatform.TVOS)
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
{
Arguments += " -tvos";
}
if (!bUseRPCUtil)
{
Arguments += " -usessh";
Arguments += " -sshexe \"" + ResolvedSSHExe + "\"";
Arguments += " -sshauth \"" + ResolvedSSHAuthentication + "\"";
Arguments += " -sshuser \"" + ResolvedRSyncUsername + "\"";
Arguments += " -rsyncexe \"" + ResolvedRSyncExe + "\"";
Arguments += " -overridedevroot \"" + UserDevRootMac + "\"";
}
// programmers that use Xcode packaging mode should use the following commandline instead, as it will package for Xcode on each compile
// Arguments = "PackageApp " + GameName + " " + Configuration;
StubGenerateProcess.StartInfo.Arguments = Arguments;
StubGenerateProcess.OutputDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
StubGenerateProcess.ErrorDataReceived += new DataReceivedEventHandler(OutputReceivedDataEventHandler);
OutputReceivedDataEventHandlerEncounteredError = false;
OutputReceivedDataEventHandlerEncounteredErrorMessage = "";
int ExitCode = Utils.RunLocalProcess(StubGenerateProcess);
if (OutputReceivedDataEventHandlerEncounteredError)
{
UnrealBuildTool.ExtendedErrorCode = ExitCode;
throw new Exception(OutputReceivedDataEventHandlerEncounteredErrorMessage);
}
// now that a slow mode sync has finished, we can now do DangerouslyFast mode again (if requested)
if (bUseDangerouslyFastModeWasRequested)
{
File.Create(DangerouslyFastValidFile.FullName);
}
else
{
// if we didn't want dangerously fast, then delete the file so that setting/unsetting the flag will do the right thing without a Rebuild
File.Delete(DangerouslyFastValidFile.FullName);
}
}
{
// Copy bundled assets from additional frameworks to the intermediate assets directory (so they can get picked up during staging)
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
String LocalFrameworkAssets = Path.GetFullPath(Target.ProjectDirectory + "/Intermediate/" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + "/FrameworkAssets");
String RemoteFrameworkAssets = ConvertPath(LocalFrameworkAssets);
CleanIntermediateDirectory(RemoteFrameworkAssets);
// Delete the local dest directory if it exists
if (Directory.Exists(LocalFrameworkAssets))
{
Directory.Delete(LocalFrameworkAssets, true);
}
foreach (UEBuildFramework Framework in RememberedAdditionalFrameworks)
{
if (Framework.OwningModule == null || Framework.CopyBundledAssets == null || Framework.CopyBundledAssets == "")
{
continue; // Only care if we need to copy bundle assets
}
string RemoteZipPath = GetRemoteIntermediateFrameworkZipPath(Framework);
RemoteZipPath = RemoteZipPath.Replace(".zip", "");
// For now, this is hard coded, but we need to loop over all modules, and copy bundled assets that need it
string RemoteSource = RemoteZipPath + "/" + Framework.CopyBundledAssets;
string BundleName = Framework.CopyBundledAssets.Substring(Framework.CopyBundledAssets.LastIndexOf('/') + 1);
String RemoteDest = RemoteFrameworkAssets + "/" + BundleName;
String LocalDest = LocalFrameworkAssets + "\\" + BundleName;
Log.TraceInformation("Copying bundled asset... RemoteSource: {0}, RemoteDest: {1}, LocalDest: {2}", RemoteSource, RemoteDest, LocalDest);
Hashtable Results = RPCUtilHelper.Command("/", String.Format("cp -R -L \"{0}\" \"{1}\"", RemoteSource, RemoteDest), "", null);
foreach (DictionaryEntry Entry in Results)
{
Log.TraceInformation("{0}", Entry.Value);
}
// Copy the bundled resource from the remote mac to the local dest
RPCUtilHelper.CopyDirectory(RemoteDest, LocalDest, RPCUtilHelper.ECopyOptions.None);
}
}
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 (Target.Platform == UnrealTargetPlatform.TVOS)
{
// copy back the built asset catalog
string CatPath = Path.GetDirectoryName(Target.OutputPath.FullName) + "\\Assets.car";
RPCUtilHelper.CopyFile(ConvertPath(CatPath), CatPath, false);
}
// If it is requested, send the app bundle back to the platform executing these commands.
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 (Target.Rules.bCopyAppBundleBackToDevice)
{
Log.TraceInformation("Copying binaries back to this device...");
try
{
string BinaryDir = Path.GetDirectoryName(Target.OutputPath.FullName) + "\\";
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 (BinaryDir.EndsWith(Target.AppName + "\\Binaries\\" + (Target.Platform == UnrealTargetPlatform.IOS ? "IOS" : "TVOS") + "\\") && Target.TargetType != TargetType.Game)
{
BinaryDir = BinaryDir.Replace(Target.TargetType.ToString(), "Game");
}
// Get the app bundle's name
string AppFullName = Target.AppName;
if (Target.Configuration != UnrealTargetConfiguration.Development)
{
AppFullName += "-" + Target.Platform.ToString();
AppFullName += "-" + Target.Configuration.ToString();
}
foreach (string BinaryPath in BuiltBinaries.Select(x => x.FullName))
{
if (!BinaryPath.Contains("Dummy"))
{
RPCUtilHelper.CopyFile(ConvertPath(BinaryPath), BinaryPath, false);
}
}
Log.TraceInformation("Copied binaries successfully.");
}
catch (Exception)
{
Log.TraceInformation("Copying binaries back to this device failed.");
}
}
}
}
public static int RunExecutableAndWait(string ExeName, string ArgumentList, out string StdOutResults)
{
// Create the process
ProcessStartInfo PSI = new ProcessStartInfo(ExeName, ArgumentList);
PSI.RedirectStandardOutput = true;
PSI.UseShellExecute = false;
PSI.CreateNoWindow = true;
Process NewProcess = Process.Start(PSI);
// Wait for the process to exit and grab it's output
StdOutResults = NewProcess.StandardOutput.ReadToEnd();
NewProcess.WaitForExit();
return NewProcess.ExitCode;
}
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
public void StripSymbols(FileReference SourceFile, FileReference TargetFile)
{
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
StripSymbolsWithXcode(SourceFile, TargetFile, Settings.Value.ToolchainDir);
}
};
}