2019-12-26 23:01:54 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2016-12-08 08:52:44 -05:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Threading.Tasks ;
using System.Xml ;
2020-12-21 23:07:37 -04:00
using EpicGames.Core ;
2023-03-08 14:32:15 -05:00
using Microsoft.Extensions.Logging ;
2024-05-22 13:17:22 -04:00
using UnrealBuildBase ;
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
2021-12-10 16:56:09 -05:00
namespace AutomationTool.Tasks
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
{
/// <summary>
/// Parameters for a move task
/// </summary>
public class MoveTaskParameters
{
/// <summary>
2019-10-11 16:59:16 -04:00
/// Optional filter to be applied to the list of input files.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// </summary>
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.FileSpec)]
2024-05-21 20:54:09 -04:00
public string Files { get ; set ; }
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// <summary>
2019-10-11 16:59:16 -04:00
/// The pattern(s) to copy from (for example, Engine/*.txt).
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// </summary>
[TaskParameter(ValidationType = TaskParameterValidationType.FileSpec)]
2024-05-21 20:54:09 -04:00
public string From { get ; set ; }
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// <summary>
2019-10-11 16:59:16 -04:00
/// The directory to copy to.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// </summary>
[TaskParameter(ValidationType = TaskParameterValidationType.FileSpec)]
2024-05-21 20:54:09 -04:00
public string To { get ; set ; }
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
2021-02-18 18:13:28 -04:00
/// <summary>
/// Optionally if files should be overwritten, defaults to false.
/// </summary>
[TaskParameter(Optional = true)]
2024-05-21 20:54:09 -04:00
public bool Overwrite { get ; set ; } = false ;
2021-02-18 18:13:28 -04:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// <summary>
2019-10-11 16:59:16 -04:00
/// Tag to be applied to build products of this task.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// </summary>
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.TagList)]
2024-05-21 20:54:09 -04:00
public string Tag { get ; set ; }
2023-05-08 14:19:24 -04:00
/// <summary>
/// Whether or not to throw an error if no files were found to copy
/// </summary>
[TaskParameter(Optional = true)]
2024-05-21 20:54:09 -04:00
public bool ErrorIfNotFound { get ; set ; } = false ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
}
/// <summary>
/// Moves files from one directory to another.
/// </summary>
[TaskElement("Move", typeof(MoveTaskParameters))]
2021-12-10 15:36:47 -05:00
public class MoveTask : BgTaskImpl
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
{
2024-05-22 13:17:22 -04:00
readonly MoveTaskParameters _parameters ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// <summary>
/// Constructor
/// </summary>
2024-05-22 13:17:22 -04:00
/// <param name="parameters">Parameters for this task</param>
public MoveTask ( MoveTaskParameters parameters )
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
{
2024-05-22 13:17:22 -04:00
_parameters = parameters ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
}
/// <summary>
2024-05-22 13:17:22 -04:00
/// ExecuteAsync the task.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
/// </summary>
2024-05-22 13:17:22 -04:00
/// <param name="job">Information about the current job</param>
/// <param name="buildProducts">Set of build products produced by this node.</param>
/// <param name="tagNameToFileSet">Mapping from tag names to the set of files they include</param>
public override Task ExecuteAsync ( JobContext job , HashSet < FileReference > buildProducts , Dictionary < string , HashSet < FileReference > > tagNameToFileSet )
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
{
// Parse all the source patterns
2024-05-22 13:17:22 -04:00
FilePattern sourcePattern = new FilePattern ( Unreal . RootDirectory , _parameters . From ) ;
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
// Parse the target pattern
2024-05-22 13:17:22 -04:00
FilePattern targetPattern = new FilePattern ( Unreal . RootDirectory , _parameters . To ) ;
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
// Apply the filter to the source files
2024-05-22 13:17:22 -04:00
HashSet < FileReference > files = null ;
if ( ! String . IsNullOrEmpty ( _parameters . Files ) )
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
{
2024-05-22 13:17:22 -04:00
sourcePattern = sourcePattern . AsDirectoryPattern ( ) ;
files = ResolveFilespec ( sourcePattern . BaseDirectory , _parameters . Files , tagNameToFileSet ) ;
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
}
// Build the file mapping
2024-05-22 13:17:22 -04:00
Dictionary < FileReference , FileReference > targetFileToSourceFile ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
2024-02-14 20:30:30 -05:00
try
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
{
2024-05-22 13:17:22 -04:00
targetFileToSourceFile = FilePattern . CreateMapping ( files , ref sourcePattern , ref targetPattern ) ;
2024-02-14 20:30:30 -05:00
// Check we got some files
2024-05-22 13:17:22 -04:00
if ( targetFileToSourceFile . Count = = 0 )
2023-05-08 14:19:24 -04:00
{
2024-05-22 13:17:22 -04:00
if ( _parameters . ErrorIfNotFound )
2024-02-14 20:30:30 -05:00
{
2024-05-22 13:17:22 -04:00
Logger . LogError ( "No files found matching '{SourcePattern}'" , sourcePattern ) ;
2024-02-14 20:30:30 -05:00
}
else
{
2024-05-22 13:17:22 -04:00
Logger . LogInformation ( "No files found matching '{SourcePattern}'" , sourcePattern ) ;
2024-02-14 20:30:30 -05:00
}
return Task . CompletedTask ;
}
// Copy them all
2024-05-22 13:17:22 -04:00
Logger . LogInformation ( "Moving {Arg0} file{Arg1} from {Arg2} to {Arg3}..." , targetFileToSourceFile . Count , ( targetFileToSourceFile . Count = = 1 ) ? "" : "s" , sourcePattern . BaseDirectory , targetPattern . BaseDirectory ) ;
CommandUtils . ParallelMoveFiles ( targetFileToSourceFile . Select ( x = > new KeyValuePair < FileReference , FileReference > ( x . Value , x . Key ) ) , _parameters . Overwrite ) ;
2024-02-14 20:30:30 -05:00
// Update the list of build products
2024-05-22 13:17:22 -04:00
buildProducts . UnionWith ( targetFileToSourceFile . Keys ) ;
2024-02-14 20:30:30 -05:00
// Apply the optional output tag to them
2024-05-22 13:17:22 -04:00
foreach ( string tagName in FindTagNamesFromList ( _parameters . Tag ) )
2024-02-14 20:30:30 -05:00
{
2024-05-22 13:17:22 -04:00
FindOrAddTagSet ( tagNameToFileSet , tagName ) . UnionWith ( targetFileToSourceFile . Keys ) ;
2024-02-14 20:30:30 -05:00
}
}
2024-05-22 13:17:22 -04:00
catch ( FilePatternSourceFileMissingException ex )
2024-02-14 20:30:30 -05:00
{
2024-05-22 13:17:22 -04:00
if ( _parameters . ErrorIfNotFound )
2024-02-14 20:30:30 -05:00
{
2024-05-22 13:17:22 -04:00
Logger . LogError ( "Error while trying to create file pattern match for '{SourcePattern}', error {ExceptionString}" , sourcePattern , ex . ToString ( ) ) ;
2023-05-08 14:19:24 -04:00
}
else
{
2024-05-22 13:17:22 -04:00
Logger . LogInformation ( "Error while trying to create file pattern match for '{SourcePattern}', error {ExceptionString}" , sourcePattern , ex . ToString ( ) ) ;
2023-05-08 14:19:24 -04:00
}
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
}
2021-12-10 15:36:47 -05:00
return Task . CompletedTask ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
}
/// <summary>
/// Output this task out to an XML writer.
/// </summary>
2024-05-22 13:17:22 -04:00
public override void Write ( XmlWriter writer )
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
{
2024-05-22 13:17:22 -04:00
Write ( writer , _parameters ) ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
}
/// <summary>
/// Find all the tags which are used as inputs to this task
/// </summary>
/// <returns>The tag names which are read by this task</returns>
public override IEnumerable < string > FindConsumedTagNames ( )
{
2024-05-22 13:17:22 -04:00
foreach ( string tagName in FindTagNamesFromFilespec ( _parameters . Files ) )
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
{
2024-05-22 13:17:22 -04:00
yield return tagName ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209300)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3146735 on 2016/09/30 by Ben.Marsh
EC: Add the standard postprocessor onto conform job steps.
Change 3147190 on 2016/09/30 by Ben.Marsh
UBT: Add a whitelist for circular dependencies between modules, and output a warning if any new circular dependencies are added.
Change 3148611 on 2016/10/03 by Matthew.Griffin
Added list of Dependant modules to EULA check
#jira UE-29432
Change 3149098 on 2016/10/03 by Ben.Marsh
PR #2821: Fix to stop BuildGraph-created files from being tracked by Git (*.manifest and 'LocalBuilds/') (Contributed by BrodyHiggerson)
Change 3149395 on 2016/10/03 by Ben.Marsh
UBT: Don't execute pre- and post-build steps when generating project files.
Change 3150398 on 2016/10/04 by Ben.Marsh
UBT: Fix support for the OptimizeCode setting on Mac, HTML5, Android, Linux, iOS, and XboxOne, and use it to control optimization level in DebugGame configurations. Also determine whether optimization should be enabled for a module at the UEBuildModule level, rather than deriving it (inconsistently) from the ModuleRules enum in the toolchain.
#jira UE-18652
Change 3150569 on 2016/10/04 by Ben.Marsh
UBT: Remove the NativeBuildEnvironmentConfiguration and NativeBuildEnvironmentConfiguration.TargetInfo classes; store the platform/configuration/architecture on the CPPEnvironment and LinkEnvironment directly.
Change 3150606 on 2016/10/04 by Ben.Marsh
UBT: Remove support for C++/CLR modules. There's quite a lot of baggage to support it, and I suspect it's already rotted since we don't use it.
Change 3150628 on 2016/10/04 by Ben.Marsh
UBT: Remove .NET framework assembly paths for C++ modules.
Change 3150640 on 2016/10/04 by Ben.Marsh
UBT: Move functionality for finding headers into its own class (CPPHeaders), rather than hijacking CPPEnvironment.
Change 3152101 on 2016/10/05 by Ben.Marsh
UBT: Always force include PCHs, even if they're the first header in the file. Clang already has to work this way, as do shared pchs on Windows, and it's simpler to use the same system universally.
Change 3153231 on 2016/10/06 by Ben.Marsh
UBT: Write arguments for the Visual C++ toolchain to the response file on separate lines, for easier debugging.
Change 3154868 on 2016/10/07 by Richard.Fawcett
Ensure that child instances of UAT invoked by BuildGraph honor p4 and submit properties
Change 3155017 on 2016/10/07 by Ben.Marsh
Lightmass: Add a prefix to all SSE macros to distinguish from overlapping implementations in Core.
Change 3156159 on 2016/10/08 by Ben.Marsh
UBT: Rewrite code to generate/consume shared PCHs in a way that is compatible with Clang platforms (and which doesn't require supressing warnings on Windows)
* Per-module defines are now set via a generated header rather than the command line (Definitions.<ModuleName>.h). This header is force-included AFTER the shared PCH header.
* Shared PCHs are now built using the public compile environment only, eliminating situations where private include paths and definitions from the first module using the shared PCH were being passed to the compiler.
* Shared PCHs can now be generated in separate optimized/unoptimized variants if necessary due to per-module optimization settings
* Names of shared PCHs now follow the pattern "SharedPCH.<ModuleName>.h" to distinguish from private PCHs
* Enabled shared PCHs for Mac, iOS, Linux.
Reduces UE4Editor Mac build times by ~25% (~21m vs ~28m).
Change 3163040 on 2016/10/14 by Ben.Marsh
UBT: Add an option to export a target's properties, modules, and binaries for external analyzers (-jsonexport and -jsonexport=<filename>). Also add an option to specifically supress building a target (-skipbuild).
Change 3165028 on 2016/10/17 by Ben.Marsh
PR #2799: Set Windows exe properties from ini (Contributed by projectgheist)
Change 3165076 on 2016/10/17 by Ben.Marsh
Build: Remove run conditions from agent setup steps. Should fix issues where an agent doesn't run because the preconditions for one of its nodes failed, but which doesn't prevent another node from running. (Also: being able to see an expanded list of job steps is a useful feature, and it doesn't take much time to run if it's a no-op).
Change 3167773 on 2016/10/19 by Ben.Marsh
BuildGraph: More flexible <Copy> task for BuildGraph. Now takes "From" and "To" attributes, which may take individual files as well as wildcards, and permits renaming as part of copies. Separate "Files" attribute is still supported, but is now optional, and is used to filter the list of source files.
Examples, taken from Engine/Build/Graph/TagsAndFiles.xml:
<!-- Source and destination are treated as directories due to presence of 'Files' attribute -->
<Copy Files="..." From="Engine/Build" To="Output0" />
<!-- Single file -->
<Copy From="Engine/Build/Build.version" To="Output1/Output.version" />
<!-- Output treated as directory -->
<Copy From="Engine/Build/.../*.txt" To="Output2" />
<Copy From="Engine/Build/.../*.txt" To="Output3/" />
<Copy From="Engine/Build/....txt" To="Output4" />
<!-- With rename -->
<Copy From="Engine/Build/....txt" To="Output5/....old" />
<!-- Copy only subdirectories of Engine/Build, but maintain directory structure -->
<Copy From="Engine/Build/*/....txt" To="Output6/" />
<!-- Match bat*/.../*.txt -->
<Copy From="Engine/Build/bat...txt" To="Output7" />
<!-- Copy only PS4 subfolders -->
<Copy From="Engine/Build/.../ps4/..." To="Output8" />
Change 3167852 on 2016/10/19 by Ben.Marsh
BuildGraph: Add a <Move> task, which can move or rename files using the same syntax as the <Copy> task.
Change 3168034 on 2016/10/19 by Ben.Marsh
BuildGraph: Add support for multi-line properties, declared inside a <Property> tag.
Mutli-line properties can be useful for making lists for filtering. Each non-empty line inside the property tag is stripped of leading and trailing whitespace, and appended to the property value separated by a semicolon. For example, the following two properties have an identical value:
<Property Name="Prop1" Value="One;Two;Three;One hundred"/>
<Property Name="Prop2">
<!-- Some numbers -->
One
Two
Three
<!-- Values are delimited by newlines; spaces within a line are preserved -->
One hundred
</Property>
Change 3169256 on 2016/10/20 by Ben.Marsh
UBT: Fix chronic algorithmic complexity of StableTopologicalSort(). Was recursively building lists of dependencies for each module, scanning linearly to find dependencies, and only caching pairs of modules being checked. Now caches a flat set of dependencies for each module.
Previously took >10s to run on my machine, now takes < 0.2s.
Change 3169271 on 2016/10/20 by Ben.Marsh
BuildGraph: Modify implementation of task merging. Instead of combining multiple tasks together, allow any task to supply a proxy executor instance deriving from ITaskExecutor, to which other tasks can be added. Keeps the in-memory representation closer to the script representation, and makes it easier to re-export preprocessed scripts and do in-memory analysis of the graph.
Change 3179662 on 2016/10/31 by Matthew.Griffin
Fixed last remaining issues with building QAGameEditor as a monolithic executable
Added a node for building mono editor in CIS so that we catch any new issues
#jira UE-32712
Change 3184857 on 2016/11/03 by Matthew.Griffin
Removing CopyVisualizers now that UE4.natvis is included in solution and we're not supporting VS2013
#jira UE-35628
Change 3187232 on 2016/11/04 by Ben.Marsh
UGS: Fix editor .target file being deleted when doing a content-only sync, and causing a prompt to rebuild the editor when trying to launch.
Change 3188413 on 2016/11/07 by Matthew.Griffin
Added Switch to Installed Build so that it matches pattern for other confidential platforms
Change 3188426 on 2016/11/07 by Matthew.Griffin
Changed BuildPlugin command so that it reads from installed platform data to get list of target platforms
Some hard coding remains so as to not change functionality for code users, Mac only built on Mac etc.
#jira UE-36205
Change 3189363 on 2016/11/07 by Ben.Marsh
Consolidate functionality for determining the path to MSBuild.exe to use for compiling UE4 tools into a single batch file (GetMSBuildToolPath) and fix "Clean" not working on PS4 due to include/library paths being set to something by the Visual Studio environment.
Change 3191372 on 2016/11/09 by Ben.Marsh
UGS: Ensure project config file remains valid even if sync is aborted due to files needing resolve. Prevents user configuration from not being applied onto build steps.
Change 3191381 on 2016/11/09 by Ben.Marsh
UGS: Allow Ctrl-A to select all in the log window.
#jira UE-38378
Change 3193388 on 2016/11/10 by Ben.Marsh
Change installed plugins to be disabled by default, but display a notification in the editor the first time you load a project with a new one. Installed plugins which are new to this project will be adorned with a "NEW!" badge in the plugin browser.
Change 3193677 on 2016/11/10 by Ben.Marsh
UBT: Remove global static instance of ActionGraph. Instance is now instantiated and passed around to functions that require it.
Change 3193942 on 2016/11/10 by Ben.Marsh
UBT: Store the include cache as an instanced object on each target, rather than looking up separate caches in a global variable.
Change 3198296 on 2016/11/15 by Ben.Marsh
UBT: Include .modules files in target receipts and manifests.
Change 3200284 on 2016/11/16 by Matthew.Griffin
Move Sample game projects into a different solution folder like Templates
Change 3205168 on 2016/11/19 by Ben.Marsh
Update strings to refer to Visual Studio "15" as Visual Studio 2017.
Change 3206333 on 2016/11/21 by Ben.Marsh
Merge fix to detection of VS2017 RC from 4.14 release.
Change 3206786 on 2016/11/21 by Ben.Marsh
BuildGraph: Spawn child processes to embed source server information into PDB files in parallel.
Change 3207588 on 2016/11/22 by Ben.Marsh
UBT: Reduce the number of resource files needed to compile local builds. ModuleVersionResource.rc.inl is now always only compiled once, and linked into each output binary. The default PCLaunch.rc file is also only compiled once, expect when making formal builds (where -formal is passed on the command line, or a changelist is set in Build.version). This ensures that the OriginalFileName metadata is still set for output binaries in binary releases.
[CL 3209331 by Ben Marsh in Main branch]
2016-11-23 15:34:07 -05:00
}
}
/// <summary>
/// Find all the tags which are modified by this task
/// </summary>
/// <returns>The tag names which are modified by this task</returns>
public override IEnumerable < string > FindProducedTagNames ( )
{
2024-05-22 13:17:22 -04:00
return FindTagNamesFromList ( _parameters . Tag ) ;
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
}
}
}