2016-12-08 08:52:44 -05:00
|
|
|
|
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
|
|
using AutomationTool;
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
2016-04-14 20:35:31 -04:00
|
|
|
|
using System.Xml;
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
using UnrealBuildTool;
|
|
|
|
|
|
|
|
|
|
|
|
namespace BuildGraph.Tasks
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Parameters for a task that runs the cooker
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class PakFileTaskParameters
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2016-03-21 21:11:39 -04:00
|
|
|
|
/// List of files, wildcards and tag sets to add to the pak file, separated by ';' characters.
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
[TaskParameter(ValidationType = TaskParameterValidationType.FileSpec)]
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
public string Files;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// PAK file to output
|
|
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
[TaskParameter(ValidationType = TaskParameterValidationType.FileName)]
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
public string Output;
|
|
|
|
|
|
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Path to a Response File that contains a list of files to add to the pak file, instead of specifying them individually
|
|
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.FileName)]
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
public string ResponseFile;
|
|
|
|
|
|
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Directories to rebase the files relative to. If specified, the shortest path under a listed directory will be used for each file.
|
|
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.DirectoryName)]
|
2016-03-21 21:11:39 -04:00
|
|
|
|
public string RebaseDir;
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Script which gives the order of files
|
|
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.FileName)]
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
public string Order;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Encryption keys for this pak file
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TaskParameter(Optional = true)]
|
|
|
|
|
|
public string Sign;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Whether to compress files
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TaskParameter(Optional = true)]
|
|
|
|
|
|
public bool Compress = true;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Additional arguments to be passed to UnrealPak
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TaskParameter(Optional = true)]
|
|
|
|
|
|
public string Arguments = "";
|
2016-03-31 15:18:30 -04:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Tag to be applied to build products of this task
|
|
|
|
|
|
/// </summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2986511 on 2016/05/23 by Ben.Marsh
UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in.
Change 2993274 on 2016/05/27 by Ben.Marsh
Fix UGS enumerating deleted .target.cs files when trying to detect editor target name.
Change 2994265 on 2016/05/31 by Ben.Marsh
Add info about setting up CIS integration and zipped editor builds in UGS.
Change 2994275 on 2016/05/31 by Ben.Marsh
PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans)
Change 2994287 on 2016/05/31 by Ben.Marsh
UnrealGameSync: Add information about how UGS self-patches and updates.
Change 2996928 on 2016/06/01 by Ben.Marsh
UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet.
Change 2997619 on 2016/06/02 by Ben.Marsh
UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file.
Change 2999769 on 2016/06/03 by Ben.Marsh
UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not.
Change 3004879 on 2016/06/07 by Ben.Marsh
Remove copy of AWSSDK in NotForLicensees folder.
Change 3004902 on 2016/06/07 by Ben.Marsh
UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder.
Change 3005892 on 2016/06/08 by Ben.Marsh
Add the GitHub promotion to the UE4 binary release build.
Change 3016241 on 2016/06/16 by Ben.Marsh
UGS: Always sync version files at the same changelist as everything else (rather than head revision)
Change 3016446 on 2016/06/16 by Ben.Marsh
PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist)
Change 3016472 on 2016/06/16 by Ben.Marsh
PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot)
Change 3017694 on 2016/06/17 by Ben.Marsh
EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments.
Change 3017695 on 2016/06/17 by Ben.Marsh
UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders.
#jira UE-24271
Change 3017698 on 2016/06/17 by Ben.Marsh
Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types).
#jira UEB-664
Change 3017701 on 2016/06/17 by Ben.Marsh
BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node.
Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read.
All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency.
Change 3017714 on 2016/06/17 by Ben.Marsh
BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task).
Change 3018007 on 2016/06/17 by Ben.Marsh
UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt.
#jira UE-28761
Change 3018322 on 2016/06/17 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3018365 on 2016/06/17 by Ben.Marsh
Misc: Fixes for warnings compiling ShaderCompileWorker on Clang
Change 3018397 on 2016/06/17 by Ben.Marsh
UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT
Change 3019421 on 2016/06/20 by Ben.Marsh
Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead.
Change 3019423 on 2016/06/20 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3020377 on 2016/06/20 by Ben.Marsh
UBT: Fix strings not being escaped before writing to JSON files.
Change 3020378 on 2016/06/20 by Ben.Marsh
UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list.
Change 3020966 on 2016/06/21 by Ben.Marsh
EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main.
#rb none
#lockdown Nick.Penwarden
[CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
|
|
|
|
[TaskParameter(Optional = true, ValidationType = TaskParameterValidationType.TagList)]
|
2016-03-31 15:18:30 -04:00
|
|
|
|
public string Tag;
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3092544)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3079316 on 2016/08/05 by Ben.Marsh
Better PCH selection in ShaderFormatOpenGL and MetalShaderFormat - make sure Core is the first included header.
Change 3080579 on 2016/08/08 by Ben.Marsh
Slate: Move DEBUG_TAB_MANAGEMENT into SDockingTabStack.h to remove circular include dependency with DockingPrivate.h.
Change 3080587 on 2016/08/08 by Ben.Marsh
StandaloneRenderer: Move platform includes into a separate header so we can make individual headers self-contained, without having a circular dependency on StandaloneRendererPrivate.h.
Change 3080789 on 2016/08/08 by Ben.Marsh
Move BuildGraph tasks for chunking, posting builds, labeling builds, and merging manifests into the MCP project. While we do provide public interfaces for this functionality, we don't currently expect anyone outside Epic to be using them.
Change 3080815 on 2016/08/08 by Ben.Marsh
BuildGraph: Add a -GenerateDocs option, which writes out an HTML file constructed from C# XML documentation containing all the task information.
Change 3081374 on 2016/08/08 by Ben.Marsh
UBT: Invalidate the makefile if any UHT headers are deleted. Should fix issue where files are moved from one module to another, and the original module no longer contains any generated headers. Its include path needs to be removed from the compile environment.
Change 3083152 on 2016/08/09 by Ben.Marsh
PR #2667: Add Intel C++ Compiler support to Windows build (Contributed by JeffRous)
Change 3084039 on 2016/08/10 by Ben.Marsh
BuildGraph: Add additional markup for parameter attributes. Also improve some documation.
Change 3084240 on 2016/08/10 by Ben.Marsh
Plugins: Allow plugins in the project folder to replace plugins in the engine folder with the same name. Prohibit multiple plugins with the same name at other times.
Change 3084337 on 2016/08/10 by Ben.Marsh
UBT: Specify the -precompile option when generating project files for a target, so we include all valid modules for intellisense.
Change 3085594 on 2016/08/11 by Ben.Marsh
Change modules which reference a public header for their PCH to use a private PCH instead, even if it just includes the public header for now.
Change 3085999 on 2016/08/11 by Ben.Marsh
Add some missing #pragma once directives.
Change 3086146 on 2016/08/11 by Ben.Marsh
Core: Move prototype and linkage specifier for ConsoleCommandLibrary_* functions into header matching cpp file.
Change 3086172 on 2016/08/11 by Ben.Marsh
Fixup some C-style header guards to use #pragma once instead.
Change 3087289 on 2016/08/12 by Ben.Marsh
Split out UPackage and UMetaData into their own headers (they're already implemented in separate CPP files)
Change 3087310 on 2016/08/12 by Ben.Marsh
Move method stubs for FNullSlateSoundDevice into a CPP file, since they're exported from the SlateCore module.
Change 3087341 on 2016/08/12 by Ben.Marsh
UdpMessaging: Move PCH before #if PLATFORM_DESKTOP; it will only be defined if the definition is included.
Change 3087457 on 2016/08/12 by Ben.Marsh
Core: Reorganize the FTransform and FMatrix headers: Transform.h now includes TransformNonVectorized.h or TransformVectorized.h as appropriate, and UnrealMatrix.h is now Matrix.inl (and included from Matrix.h).
Change 3088407 on 2016/08/13 by Ben.Marsh
Replace use of Windows SIZE_T define with the regular C++ size_t.
Change 3088416 on 2016/08/13 by Ben.Marsh
Include a header from all .generated.cpp files (GeneratedCppIncludes.h) which includes all the basic types required to compile them, rather than assuming that the module PCH will include everything.
Also include the real declarations of noexport classes in Object.h (now renamed to NoExportTypes.h for clarity) when the CPP macro is defined, so the .generated.deps.h file will automatically have the correct definitions for them at compile time rather than relying on them being in the private PCH.
Finally, rename UObject.h to Object.h for consistency with the naming convention for all other UObject classes. UObject.h still exists for now, but outputs a deprecated message if included.
Change 3088544 on 2016/08/14 by Ben.Marsh
Core: Move the definition of the TEXT() macro into Platform.h, to avoid having to include OS headers to get it.
Change 3088552 on 2016/08/14 by Ben.Marsh
Fix compile errors for some modules that don't already include CoreUObject.h.
Change 3088925 on 2016/08/15 by Ben.Marsh
Remove circular include dependencies from VulkanRHI.
Change 3088926 on 2016/08/15 by Ben.Marsh
Remove duplicate definition for WITH_FIXED_AREA_ENTERING_COST from EngineDefines.h - always uses the definition from DetourNavMeshQuery.h instead.
Change 3088930 on 2016/08/15 by Ben.Marsh
Remove circular include dependency from PhysX.
Change 3088935 on 2016/08/15 by Ben.Marsh
OnlineSubsystemUtils: Move CPP files out of public header directory.
Change 3088965 on 2016/08/15 by Ben.Marsh
Add private PCH to Landscape, MoviePlayer, TaskGraph, XAudio2 and RealtimeProfiler modules.
Change 3088966 on 2016/08/15 by Ben.Marsh
Engine: Move CPP files out of public header directories.
Change 3089520 on 2016/08/15 by Ben.Marsh
BuildGraph: Change documentation command to output markdown.
Change 3090299 on 2016/08/16 by Ben.Marsh
D3D12RHI: Move around some implementations to fix circular header dependencies which are masked by delayed template instantiation.
Change 3090303 on 2016/08/16 by Ben.Marsh
Engine: Add a template specialization for TPointerIsConvertibleFromTo<AActor, const volatile UObject> to fix dependency on complete AActor definition for static assert in TWeakPointer<AActor>, which only appears if including Level.h without Actor.h. Delayed template instantiation usually masks this issue.
Change 3091861 on 2016/08/17 by Ben.Marsh
Remove circular header dependencies, and fix ambiguous include paths in OSVR.
Change 3092068 on 2016/08/17 by Ben.Marsh
Moving VulkanDynamicRHI into its own header.
Change 3093133 on 2016/08/18 by Ben.Marsh
EC: Include additional context lines for Clang errors.
Change 3093147 on 2016/08/18 by Ben.Marsh
UBT: Add an error message when attempting to do a single-file compile with the wrong target selected.
Change 3093228 on 2016/08/18 by Ben.Marsh
Remove redundant setting for remote server name from XML config, and set it to a valid machine in the engine config.
[CL 3093264 by Ben Marsh in Main branch]
2016-08-18 10:28:43 -04:00
|
|
|
|
/// Creates a PAK file from a given set of files.
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
[TaskElement("PakFile", typeof(PakFileTaskParameters))]
|
|
|
|
|
|
public class PakFileTask : CustomTask
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Parameters for the task
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
PakFileTaskParameters Parameters;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Constructor.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="InParameters">Parameters for this task</param>
|
|
|
|
|
|
public PakFileTask(PakFileTaskParameters InParameters)
|
|
|
|
|
|
{
|
|
|
|
|
|
Parameters = InParameters;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Execute the task.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <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>
|
|
|
|
|
|
/// <returns>True if the task succeeded</returns>
|
|
|
|
|
|
public override bool Execute(JobContext Job, HashSet<FileReference> BuildProducts, Dictionary<string, HashSet<FileReference>> TagNameToFileSet)
|
|
|
|
|
|
{
|
|
|
|
|
|
// Find the directories we're going to rebase relative to
|
2016-03-21 21:11:39 -04:00
|
|
|
|
HashSet<DirectoryReference> RebaseDirs = new HashSet<DirectoryReference>{ CommandUtils.RootDirectory };
|
|
|
|
|
|
if(Parameters.RebaseDir != null)
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
{
|
2016-03-21 21:11:39 -04:00
|
|
|
|
RebaseDirs.UnionWith(SplitDelimitedList(Parameters.RebaseDir).Select(x => ResolveDirectory(x)));
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Get the output parameter
|
|
|
|
|
|
FileReference OutputFile = ResolveFile(Parameters.Output);
|
|
|
|
|
|
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
// Check for a ResponseFile parameter
|
|
|
|
|
|
FileReference ResponseFile = null;
|
|
|
|
|
|
if (!String.IsNullOrEmpty(Parameters.ResponseFile))
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
{
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
ResponseFile = ResolveFile(Parameters.ResponseFile);
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
if (ResponseFile == null)
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
{
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
// Get a unique filename for the response file
|
|
|
|
|
|
ResponseFile = FileReference.Combine(new DirectoryReference(CommandUtils.CmdEnv.LogFolder), String.Format("PakList_{0}.txt", OutputFile.GetFileNameWithoutExtension()));
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3233612 on 2016/12/13 by Ben.Marsh
UGS: Fix cases where precompiled binaries are submitted for a content change.
Change 3235584 on 2016/12/14 by Ben.Marsh
UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead.
Change 3235741 on 2016/12/14 by Ben.Marsh
UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself.
Change 3238176 on 2016/12/16 by Ben.Marsh
UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs.
Change 3238249 on 2016/12/16 by Ben.Marsh
UBT: Add attribute-driven command line parser.
Change 3238462 on 2016/12/16 by Ben.Marsh
UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly.
Change 3238564 on 2016/12/16 by Ben.Marsh
UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor.
Change 3239919 on 2016/12/19 by Ben.Marsh
UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined.
Change 3240061 on 2016/12/19 by Ben.Marsh
UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more.
Change 3240175 on 2016/12/19 by Ben.Marsh
UBT: Add the target name and project file location to the target rules.
Change 3240490 on 2016/12/19 by Ben.Marsh
UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs.
Change 3240717 on 2016/12/20 by Ben.Marsh
UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line.
Change 3240718 on 2016/12/20 by Ben.Marsh
UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT.
Change 3241002 on 2016/12/20 by Ben.Marsh
UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance.
Change 3241027 on 2016/12/20 by Ben.Marsh
Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency.
Change 3241055 on 2016/12/20 by Ben.Marsh
UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated.
Change 3241156 on 2016/12/20 by Ben.Marsh
Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using.
Change 3241205 on 2016/12/20 by Ben.Marsh
Replace all uses of TargetRules.TargetType with TargetType.
Change 3241881 on 2016/12/21 by Ben.Marsh
UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path.
Change 3241895 on 2016/12/21 by Ben.Marsh
UBT: Remove toolchain support for Windows XP.
Change 3241908 on 2016/12/21 by Ben.Marsh
UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field.
Change 3242835 on 2016/12/22 by Ben.Marsh
UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice.
Change 3242837 on 2016/12/22 by Ben.Marsh
Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds.
Change 3242923 on 2016/12/22 by Ben.Marsh
Build: Fixes for conforming incremental workspaces:
* P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason.
* Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces.
Change 3242961 on 2016/12/22 by Ben.Marsh
UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before.
Change 3242981 on 2016/12/22 by Ben.Marsh
UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT.
Change 3242999 on 2016/12/22 by Ben.Marsh
UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes.
Change 3243022 on 2016/12/22 by Ben.Marsh
UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line.
Change 3243083 on 2016/12/22 by Ben.Marsh
UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules.
Change 3243090 on 2016/12/22 by Ben.Marsh
UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work.
Change 3243423 on 2016/12/23 by Ben.Marsh
UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes.
Change 3243516 on 2016/12/23 by Ben.Marsh
UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs)
Change 3244020 on 2016/12/28 by Ben.Marsh
UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties.
Change 3244074 on 2016/12/28 by Ben.Marsh
UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary.
Change 3244076 on 2016/12/28 by Ben.Marsh
UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead.
Change 3244083 on 2016/12/28 by Ben.Marsh
UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes.
Change 3244441 on 2016/12/31 by Ben.Marsh
UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur.
Change 3244687 on 2017/01/03 by Matthew.Griffin
Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs
Change 3246112 on 2017/01/04 by Ben.Marsh
UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build.
Change 3246223 on 2017/01/04 by Ben.Marsh
UBT: Prevent version manifests being overridden if a file is not being built as part of the target.
Change 3246387 on 2017/01/04 by Ben.Marsh
UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it.
Change 3247004 on 2017/01/04 by Ben.Marsh
UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place.
Change 3247250 on 2017/01/04 by Ben.Marsh
UBT: Prevent precompiled binaries being added to the list of app binaries twice.
Change 3247594 on 2017/01/05 by Ben.Marsh
Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build.
Change 3247763 on 2017/01/05 by Ben.Marsh
UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them.
Change 3247775 on 2017/01/05 by Ben.Marsh
UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance.
Change 3247811 on 2017/01/05 by Ben.Marsh
EC: Add a batch file for testing postp filters.
Change 3247839 on 2017/01/05 by Ben.Marsh
EC: Include the name of the file being compiled when parsing MSVC errors and warnings.
Change 3248101 on 2017/01/05 by Ben.Marsh
UBT: Fix Android support for force included headers.
Change 3248533 on 2017/01/05 by Ben.Marsh
PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott)
Change 3249205 on 2017/01/06 by Ben.Marsh
UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present.
Change 3249249 on 2017/01/06 by Ben.Marsh
UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines.
Change 3249486 on 2017/01/06 by Ben.Marsh
UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies.
Change 3249736 on 2017/01/06 by Ben.Marsh
UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object.
Change 3250179 on 2017/01/07 by Ben.Marsh
Fix creating installed build when root directory contains a space in the name.
Change 3250181 on 2017/01/07 by Ben.Marsh
UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms.
Change 3250223 on 2017/01/07 by Ben.Marsh
UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together.
Change 3250233 on 2017/01/07 by Ben.Marsh
UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out.
Change 3250241 on 2017/01/07 by Ben.Marsh
UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules.
Change 3250400 on 2017/01/08 by Ben.Marsh
UBT: Move executor config settings onto the executor instances.
Change 3257708 on 2017/01/13 by Ben.Marsh
UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change.
Change 3260535 on 2017/01/17 by Ben.Marsh
Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job.
Change 3260875 on 2017/01/17 by Ben.Marsh
EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced.
To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile.
Change 3261724 on 2017/01/18 by Ben.Marsh
Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job.
Change 3261756 on 2017/01/18 by Ben.Marsh
IncludeTool: Prevent matching a full enum declaration as a forward declaration.
Change 3261932 on 2017/01/18 by Ben.Marsh
EC: Add support for specifying days of the week in schedules. The following syntaxes are supported:
"Monday, Tuesday and Wednesday at 10:30"
"Daily except Sunday and Wednesday at 14:30"
Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name.
#jira UEB-729
Change 3262676 on 2017/01/18 by Ben.Marsh
UBT: Split UBTMakefile into its own file. (From PR #3106)
Change 3263893 on 2017/01/19 by Ben.Marsh
UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc...
Change 3264291 on 2017/01/19 by Ben.Marsh
UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts.
Change 3264534 on 2017/01/19 by Ben.Marsh
UBT: Include plugin config files in generated projects.
Change 3264571 on 2017/01/19 by Ben.Marsh
UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files.
Change 3265745 on 2017/01/20 by Ben.Marsh
UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance.
Change 3265777 on 2017/01/20 by Ben.Marsh
UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode.
Change 3268314 on 2017/01/23 by Ben.Marsh
UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed.
Change 3269601 on 2017/01/24 by Ben.Marsh
UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled.
Change 3269607 on 2017/01/24 by Ben.Marsh
UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that.
Change 3269608 on 2017/01/24 by Ben.Marsh
UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated.
Change 3271062 on 2017/01/24 by Ben.Marsh
UBT: Fixes for bugs detected by PVS Studio (PR #3161)
Change 3272421 on 2017/01/25 by Ben.Marsh
Fix commends regarding DDC in BaseEngine.ini
#jira UE-41076
Change 3272810 on 2017/01/25 by Ben.Marsh
Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel.
Change 3272935 on 2017/01/25 by Ben.Marsh
Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS.
Change 3274167 on 2017/01/26 by Ben.Marsh
Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables.
#jira UE-36457
Change 3275557 on 2017/01/27 by Ben.Marsh
Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is.
Change 3275628 on 2017/01/27 by Ben.Marsh
UBT: Splitting configuration files into one class per-file.
Change 3276784 on 2017/01/29 by Ben.Marsh
Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it.
Change 3276792 on 2017/01/29 by Ben.Marsh
UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT.
Change 3277263 on 2017/01/30 by Ben.Marsh
IncludeTool: Merging various fixes.
* Fix warnings about #include directives after first code block from parsing monolithic headers.
* Fix exception on startup if the intermediate directory does not already exist.
* Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location.
* Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare.
* Remove (unused) code which makes assumptions about files ending with "Classes.h".
* Add a verbose per-file output log to aid with debugging.
* Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default.
* Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list.
* Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant.
* Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first.
* Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't.
Change 3277307 on 2017/01/30 by Ben.Marsh
UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line.
[CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
|
|
|
|
for (int Idx = 2; FileReference.Exists(ResponseFile); Idx++)
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
{
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
ResponseFile = FileReference.Combine(ResponseFile.Directory, String.Format("PakList_{0}_{1}.txt", OutputFile.GetFileNameWithoutExtension(), Idx));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Write out the response file
|
|
|
|
|
|
HashSet<FileReference> Files = ResolveFilespec(CommandUtils.RootDirectory, Parameters.Files, TagNameToFileSet);
|
|
|
|
|
|
using (StreamWriter Writer = new StreamWriter(ResponseFile.FullName, false, new System.Text.UTF8Encoding(true)))
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (FileReference File in Files)
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
{
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3047776)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3021930 on 2016/06/21 by Ben.Marsh
BuildGraph: Better diagnostic message if the source directory for copies does not exist.
Change 3022391 on 2016/06/21 by Ben.Marsh
Rework copy task slightly so that all code paths result in files being tagged.
Change 3026592 on 2016/06/24 by Ben.Marsh
BuildGraph: Add a ForEach element, which will assign a local property to each of a semicolon separated list of values, and expand the elements within it. Added an example in Properties.xml.
Change 3028708 on 2016/06/27 by Matthew.Griffin
Converting Engine build process to BuildGraph script
Added Tag Receipts task to retrieve list of build products/dependencies from *.target files.
Changed Pak File task so that you can specify an existing response file, rather than creating one from the file list.
Changed base task so that you can resolve filespec from a list of file patterns if you already have them separated, which was the case with wildcards in runtime dependencies.
Added EngineMajorVersion, EngineMinorVersion and EnginePatchVersion as default properties available to BuildGraph
Added FinalizeInstalledBuild command to write out InstalledBuild.txt file and config entries for installed platforms
Included .exe.config and exe.mdb files to build products of CsCompile task if they exist
Added TagReferences option to CsCompile so that you can get any external references projects have that need to be included when staging
Added RunOptions parameter to SpawnTask, so that you can specify these for the exe you want to run
Added missing Runtime Dependency for ICU on Mac
Change 3030209 on 2016/06/28 by Matthew.Griffin
Renamed EngineBuild.xml to InstalledEngineBuild.xml to make its purpose more clear.
Removed reference to xcodeunlock.sh from Mac Installed build dependencies as the file itself has been deleted.
Added myself to list of notifiers for failures in the UE4 Binary build.
Change 3034068 on 2016/06/30 by Ben.Marsh
BuildGraph: Change scoping rules for properties. Local properties can no longer shadow global properties with the same name (or vice versa), and local properties are always modified in the scope that they were first declared, rather than being re-declared in a narrower scope.
Change 3034070 on 2016/06/30 by Ben.Marsh
BuildGraph: Warn when referencing a property which is not defined, and add new attributes to the <Property> element to set the default value for a property if it's not already set, and validating that it's one of a list of valid values if it is (eg. <Property Name="WithWin64" Restrict="true;false" Default="false"/>).
Change 3034110 on 2016/06/30 by Matthew.Griffin
Updated Installed Build so that properties are consistently named Exceptions and that the right versions are used
Added Filter and Exception properties for each target platform to add any files that can't be figured out via dependencies
Added Default values for various properties used across Engine build scripts - IsReleaseBranch, IsPreflight, OutputDir, BuildLabel, WithWin64 etc.
Tagged Generated Includes from each target so that they can be included in Installed Build
Added additional Android architectures to Shipping build
Changed SwarmCoordinator to build for Any CPU
Removed Local HostPlatform property from DDC nodes
Changed Installed Build target platforms to use Do blocks so that we only have to check With... property once
Reordered stripping and signing process so that we use the Exception check in less places
Change 3035499 on 2016/07/01 by Ben.Marsh
BuildGraph: Remove the <Local> element, and just make all <Property> declarations scoped. Also add an error if a property is later declared in a parent scope, since the earlier assignment won't be visible to the later one.
Change 3035520 on 2016/07/01 by Ben.Marsh
BuildGraph: Add support for <, <=, >, >= operators in condition expressions.
Change 3035666 on 2016/07/01 by Matthew.Griffin
Added more parameters to Chunk and Label Build tasks
Updated all remaining uses of Local to Property in Installed Build script
Made sure Feature Packs use paths compatible with Mac and also changed the node to use a ForEach element
Change 3037020 on 2016/07/04 by Matthew.Griffin
Ensured that TempStorageFileList uses forward slashes as its path separators so that it's easily used on Mac and Windows
Was causing the results of the Make Feature Packs node to be tagged using Windows style paths, meaning they would throw an error if you tried to copy them on Mac
Change 3037052 on 2016/07/04 by Ben.Marsh
Move FJsonValue::ErrorMessage into cpp file, since it depends on the log class defined in Json.h (which includes it).
Change 3037283 on 2016/07/05 by Matthew.Griffin
Removed EnterScope and LeaveScope from ReadGraphBody so that included files are treated as being in the same scope (allows use of properties across files)
Change 3037547 on 2016/07/05 by Ben.Marsh
UAT: Allow CommandUtils.Run() to check directories listed in the PATH environment variable for the executable before failing.
Change 3037552 on 2016/07/05 by Ben.Marsh
BuildGraph: Add an <Unzip> task, which extracts a zip file to an output directory.
Change 3039109 on 2016/07/06 by Matthew.Griffin
Moved tagging of UAT build products to the Installed Build step as it's the only thing that needs them
Moved Strip and Sign filters to the filters file, made sure they're used for all operations and added stripping back to UE4Editor nodes
Changed BuildPatchTool to be built in shipping mode
Changed all C# projects to be compiled for AnyCPU as they ended up in different output folders otherwise
Added all files referenced by C# projects to avoid having to filter them manually
Changed filters to get files included for Linux closer to the old pattern
Changed Build DDC command to ignore empty entries in FeaturePacks list, don't want to fail the process if a list begins with a ;
Changed UE4Game to use shipping PhysX libs for Shipping builds
Added glut32.dll as a Runtime Dependency for PhysX
Added libsteam_api.so as a Runtime Dependency for Steamworks on Linux
Change 3039676 on 2016/07/06 by Ben.Marsh
Core: Move definitions for FORCEINLINE'd FMath functions into UnrealMathUtility. Prevents link errors if including one without the other.
Change 3039681 on 2016/07/06 by Ben.Marsh
Core: Move implementation of GetTypeHash(FTimespan) into CPP file, to remove implicit dependency on the inline implementation of GetTypeHash(int64) being included.
Change 3039735 on 2016/07/06 by Ben.Marsh
Core: Move USE_DELEGATE_TRYGETBOUNDFUNCTIONNAME into a separate header, so delegate headers can be included separately.
Change 3039878 on 2016/07/06 by Ben.Marsh
Core: Move FOperatorFunctionID out of TOperatorJumpTable to allow MSVC to compile it and catch errors before the template is instantiated.
Change 3040156 on 2016/07/06 by Ben.Marsh
Core: Move FDateTime::GetTypeHash() into cpp file to eliminate dependency on TypeHash.h being included before it.
Change 3041009 on 2016/07/07 by Matthew.Griffin
Changed UE4Game to only use shipping PhysX libraries on Windows
Change 3041015 on 2016/07/07 by Leigh.Swift
UBT: Support creating C# programs that will be included in the UE4.sln Programs list.
To have your program listed, remove the sln file that may have been created for you, and add a file named "UE4CSharp.prog" next to your csproj file.
Change 3041234 on 2016/07/07 by Matthew.Griffin
Added building of Launcher Samples to BuildGraph system
Added Command to Build Sample projects, which distills to temp directory, builds DDC if needed and then chunks/posts to MCP
Change 3041244 on 2016/07/07 by Ben.Marsh
Core: Change PlatformIncludes.h to include all the individual PlatformMemory.h, PlatformTime.h, etc... headers rather than including separate per-platform headers which include them all. Makes it much easier to optimize header file usage, and eliminates redundant typedefs in the individual Platform*.h files. Also fixes some headers that previously didn't compile.
Change 3042518 on 2016/07/08 by Matthew.Griffin
Added content modifiers to those notified about Sample failures
Throw exception if RocketPromoteBuild tries to promote all samples
Throw exceptions for missing parameters in BuildLauncherSample command, corrected EngineDir parameter name.
Change 3042545 on 2016/07/08 by Ben.Marsh
Core: Push/Pop defines for MAX_uint8, MAX_uint16, MAX_uint32, MAX_int32 around Windows.h includes, so we don't need to be careful about the order in which we include NumericLimits.h.
Change 3042546 on 2016/07/08 by Ben.Marsh
Core: Put standard CRT includes into their own header, so we can include it without taking all of PlatformIncludes.h (and make any platform-specific additions as needed)
Change 3042548 on 2016/07/08 by Ben.Marsh
Core: Include PlatformCompilerSetup headers from Platform.h, as well as all the defaults for non-platform overriden defines. Allows including Platform.h to get all the basic types, defines and compile environment set up without having to include a large number of system headers or unnecessary functionality.
Change 3044424 on 2016/07/11 by Ben.Marsh
Merge fixes for QFE installer (CL 3044412) from 4.11 branch.
Change 3044584 on 2016/07/11 by Ben.Marsh
Core: Move FMath::FormatIntToHumanReadable() to UnrealMath.cpp, since it's a very large/expensive function to try to inline (and introduce a FString dependency for)
Change 3044603 on 2016/07/11 by Matthew.Griffin
Added PS4 and XboxOne to installed build as options that will always be disabled by default
Standardised some of the agent names
Removed logging from the Installed Build nodes as it takes a huge amount of time to write out the list for little reward
Change 3044608 on 2016/07/11 by Ben.Marsh
Core: Split out definition of SIMD VectorRegister class into its own header, so it's not forcibly included with UnrealMathUtility.
Change 3044638 on 2016/07/11 by Matthew.Griffin
Added internal build jobs for all games with compile, cook and package nodes.
Added Documentation, Localization and NonUnity steps.
Change 3045959 on 2016/07/12 by Matthew.Griffin
Removed Aggregates from Installed Build script as they weren't used/necessary.
Change 3045961 on 2016/07/12 by Matthew.Griffin
Fixed various issues with Full Build
Switch to build non-client/server configurations for some games
Included PS4 and Xbox game targets in our internal monolithics aggregate
Added Requirements for steps that need UHT, SCW etc.
Added list of Packaged Game Nodes that we can build up as they're defined
Added targets that were previously in the Internal Tools nodes
Changed APIDocTool to build Release as that's what the solution uses and made use of the path created for it
Removed -clean from the NonUnity targets as that doesn't actually build anything
Changed mail notifications so that individual nodes are used for content modifiers, not every preceeding node too
Change 3047068 on 2016/07/12 by Ben.Marsh
BuildGraph: Reduce the amount of log output when compiling a C# project; use /verbosity:minimal and /nolog, as Visual Studio does.
Change 3047298 on 2016/07/12 by Ben.Marsh
EC: Add a workspace setting specifying that it should be synced incrementally.
Change 3047626 on 2016/07/13 by Matthew.Griffin
Added PackageToNetwork property, which will default to false, which determines whether to put staged builds on the P: drive or within the LocalBuilds folder of the root dir
Also changed WorldExplorers to use P:/Builds/Friday instead of WEX, as no one is now clearing up the WEX folder regularly
Change 3047762 on 2016/07/13 by Matthew.Griffin
Added -nodebuginfo to all compile tasks with -precompile to reduce the size of libs produced
Added plugin intermediates to list of files excluded from installed build
[CL 3047809 by Ben Marsh in Main branch]
2016-07-13 09:16:28 -04:00
|
|
|
|
string RelativePath = FindShortestRelativePath(File, RebaseDirs);
|
|
|
|
|
|
if (RelativePath == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
CommandUtils.LogError("Couldn't find relative path for '{0}' - not under any rebase directories", File.FullName);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
Writer.WriteLine("\"{0}\" \"{1}\"{2}", File.FullName, RelativePath, Parameters.Compress ? " -compress" : "");
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Format the command line
|
|
|
|
|
|
StringBuilder CommandLine = new StringBuilder();
|
|
|
|
|
|
CommandLine.AppendFormat("{0} -create={1}", CommandUtils.MakePathSafeToUseWithCommandLine(OutputFile.FullName), CommandUtils.MakePathSafeToUseWithCommandLine(ResponseFile.FullName));
|
|
|
|
|
|
if(Parameters.Sign != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
CommandLine.AppendFormat(" -sign={0}", CommandUtils.MakePathSafeToUseWithCommandLine(ResolveFile(Parameters.Sign).FullName));
|
|
|
|
|
|
}
|
|
|
|
|
|
if(Parameters.Order != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
CommandLine.AppendFormat(" -order={0}", CommandUtils.MakePathSafeToUseWithCommandLine(ResolveFile(Parameters.Order).FullName));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (GlobalCommandLine.Installed)
|
|
|
|
|
|
{
|
|
|
|
|
|
CommandLine.Append(" -installed");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (GlobalCommandLine.UTF8Output)
|
|
|
|
|
|
{
|
|
|
|
|
|
CommandLine.AppendFormat(" -UTF8Output");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Get the executable path
|
|
|
|
|
|
FileReference UnrealPakExe;
|
|
|
|
|
|
if(HostPlatform.Current.HostEditorPlatform == UnrealTargetPlatform.Win64)
|
|
|
|
|
|
{
|
|
|
|
|
|
UnrealPakExe = ResolveFile("Engine/Binaries/Win64/UnrealPak.exe");
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
UnrealPakExe = ResolveFile(String.Format("Engine/Binaries/{0}/UnrealPak", HostPlatform.Current.HostEditorPlatform.ToString()));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Run it
|
|
|
|
|
|
CommandUtils.Log("Running '{0} {1}'", CommandUtils.MakePathSafeToUseWithCommandLine(UnrealPakExe.FullName), CommandLine.ToString());
|
|
|
|
|
|
CommandUtils.RunAndLog(CommandUtils.CmdEnv, UnrealPakExe.FullName, CommandLine.ToString(), Options: CommandUtils.ERunOptions.Default | CommandUtils.ERunOptions.UTF8Output);
|
|
|
|
|
|
BuildProducts.Add(OutputFile);
|
2016-03-31 15:18:30 -04:00
|
|
|
|
|
|
|
|
|
|
// Apply the optional tag to the output file
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2986511 on 2016/05/23 by Ben.Marsh
UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in.
Change 2993274 on 2016/05/27 by Ben.Marsh
Fix UGS enumerating deleted .target.cs files when trying to detect editor target name.
Change 2994265 on 2016/05/31 by Ben.Marsh
Add info about setting up CIS integration and zipped editor builds in UGS.
Change 2994275 on 2016/05/31 by Ben.Marsh
PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans)
Change 2994287 on 2016/05/31 by Ben.Marsh
UnrealGameSync: Add information about how UGS self-patches and updates.
Change 2996928 on 2016/06/01 by Ben.Marsh
UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet.
Change 2997619 on 2016/06/02 by Ben.Marsh
UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file.
Change 2999769 on 2016/06/03 by Ben.Marsh
UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not.
Change 3004879 on 2016/06/07 by Ben.Marsh
Remove copy of AWSSDK in NotForLicensees folder.
Change 3004902 on 2016/06/07 by Ben.Marsh
UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder.
Change 3005892 on 2016/06/08 by Ben.Marsh
Add the GitHub promotion to the UE4 binary release build.
Change 3016241 on 2016/06/16 by Ben.Marsh
UGS: Always sync version files at the same changelist as everything else (rather than head revision)
Change 3016446 on 2016/06/16 by Ben.Marsh
PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist)
Change 3016472 on 2016/06/16 by Ben.Marsh
PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot)
Change 3017694 on 2016/06/17 by Ben.Marsh
EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments.
Change 3017695 on 2016/06/17 by Ben.Marsh
UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders.
#jira UE-24271
Change 3017698 on 2016/06/17 by Ben.Marsh
Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types).
#jira UEB-664
Change 3017701 on 2016/06/17 by Ben.Marsh
BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node.
Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read.
All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency.
Change 3017714 on 2016/06/17 by Ben.Marsh
BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task).
Change 3018007 on 2016/06/17 by Ben.Marsh
UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt.
#jira UE-28761
Change 3018322 on 2016/06/17 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3018365 on 2016/06/17 by Ben.Marsh
Misc: Fixes for warnings compiling ShaderCompileWorker on Clang
Change 3018397 on 2016/06/17 by Ben.Marsh
UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT
Change 3019421 on 2016/06/20 by Ben.Marsh
Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead.
Change 3019423 on 2016/06/20 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3020377 on 2016/06/20 by Ben.Marsh
UBT: Fix strings not being escaped before writing to JSON files.
Change 3020378 on 2016/06/20 by Ben.Marsh
UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list.
Change 3020966 on 2016/06/21 by Ben.Marsh
EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main.
#rb none
#lockdown Nick.Penwarden
[CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
|
|
|
|
foreach(string TagName in FindTagNamesFromList(Parameters.Tag))
|
2016-03-31 15:18:30 -04:00
|
|
|
|
{
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2986511 on 2016/05/23 by Ben.Marsh
UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in.
Change 2993274 on 2016/05/27 by Ben.Marsh
Fix UGS enumerating deleted .target.cs files when trying to detect editor target name.
Change 2994265 on 2016/05/31 by Ben.Marsh
Add info about setting up CIS integration and zipped editor builds in UGS.
Change 2994275 on 2016/05/31 by Ben.Marsh
PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans)
Change 2994287 on 2016/05/31 by Ben.Marsh
UnrealGameSync: Add information about how UGS self-patches and updates.
Change 2996928 on 2016/06/01 by Ben.Marsh
UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet.
Change 2997619 on 2016/06/02 by Ben.Marsh
UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file.
Change 2999769 on 2016/06/03 by Ben.Marsh
UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not.
Change 3004879 on 2016/06/07 by Ben.Marsh
Remove copy of AWSSDK in NotForLicensees folder.
Change 3004902 on 2016/06/07 by Ben.Marsh
UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder.
Change 3005892 on 2016/06/08 by Ben.Marsh
Add the GitHub promotion to the UE4 binary release build.
Change 3016241 on 2016/06/16 by Ben.Marsh
UGS: Always sync version files at the same changelist as everything else (rather than head revision)
Change 3016446 on 2016/06/16 by Ben.Marsh
PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist)
Change 3016472 on 2016/06/16 by Ben.Marsh
PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot)
Change 3017694 on 2016/06/17 by Ben.Marsh
EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments.
Change 3017695 on 2016/06/17 by Ben.Marsh
UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders.
#jira UE-24271
Change 3017698 on 2016/06/17 by Ben.Marsh
Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types).
#jira UEB-664
Change 3017701 on 2016/06/17 by Ben.Marsh
BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node.
Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read.
All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency.
Change 3017714 on 2016/06/17 by Ben.Marsh
BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task).
Change 3018007 on 2016/06/17 by Ben.Marsh
UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt.
#jira UE-28761
Change 3018322 on 2016/06/17 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3018365 on 2016/06/17 by Ben.Marsh
Misc: Fixes for warnings compiling ShaderCompileWorker on Clang
Change 3018397 on 2016/06/17 by Ben.Marsh
UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT
Change 3019421 on 2016/06/20 by Ben.Marsh
Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead.
Change 3019423 on 2016/06/20 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3020377 on 2016/06/20 by Ben.Marsh
UBT: Fix strings not being escaped before writing to JSON files.
Change 3020378 on 2016/06/20 by Ben.Marsh
UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list.
Change 3020966 on 2016/06/21 by Ben.Marsh
EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main.
#rb none
#lockdown Nick.Penwarden
[CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
|
|
|
|
FindOrAddTagSet(TagNameToFileSet, TagName).Add(OutputFile);
|
2016-03-31 15:18:30 -04:00
|
|
|
|
}
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Find the shortest relative path of the given file from a set of base directories.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="File">Full path to a file</param>
|
|
|
|
|
|
/// <param name="RebaseDirs">Possible base directories</param>
|
|
|
|
|
|
/// <returns>The shortest relative path, or null if the file is not under any of them</returns>
|
|
|
|
|
|
public static string FindShortestRelativePath(FileReference File, IEnumerable<DirectoryReference> RebaseDirs)
|
|
|
|
|
|
{
|
|
|
|
|
|
string RelativePath = null;
|
|
|
|
|
|
foreach(DirectoryReference RebaseDir in RebaseDirs)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(File.IsUnderDirectory(RebaseDir))
|
|
|
|
|
|
{
|
|
|
|
|
|
string NewRelativePath = File.MakeRelativeTo(RebaseDir);
|
|
|
|
|
|
if(RelativePath == null || NewRelativePath.Length < RelativePath.Length)
|
|
|
|
|
|
{
|
|
|
|
|
|
RelativePath = NewRelativePath;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return RelativePath;
|
|
|
|
|
|
}
|
2016-04-14 20:35:31 -04:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Output this task out to an XML writer.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public override void Write(XmlWriter Writer)
|
|
|
|
|
|
{
|
|
|
|
|
|
Write(Writer, Parameters);
|
|
|
|
|
|
}
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3020969)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2986511 on 2016/05/23 by Ben.Marsh
UdpMessaging: Force references to symbols in the files containing UDP automated tests. Since plugins are compiled into static libraries before being linked into the executable, the linker will exclude any object files which don't have any referenced symbols. In non-unity builds, or adaptive unity builds with modified test files, this results in the tests not being linked in.
Change 2993274 on 2016/05/27 by Ben.Marsh
Fix UGS enumerating deleted .target.cs files when trying to detect editor target name.
Change 2994265 on 2016/05/31 by Ben.Marsh
Add info about setting up CIS integration and zipped editor builds in UGS.
Change 2994275 on 2016/05/31 by Ben.Marsh
PR #2443: [Unreal Game Sync] Added -project so shortcut or script can hint at the project file to open. (Contributed by paulevans)
Change 2994287 on 2016/05/31 by Ben.Marsh
UnrealGameSync: Add information about how UGS self-patches and updates.
Change 2996928 on 2016/06/01 by Ben.Marsh
UnrealGameSync: Fix trying to sync files which are open for branch or move/add. They don't exist on the server yet.
Change 2997619 on 2016/06/02 by Ben.Marsh
UAT: Fix PRX files not being remapped on PS4. All non-UFS should be allowed to be remapped, and UFS files can be if we're not using a PAK file.
Change 2999769 on 2016/06/03 by Ben.Marsh
UBT: Fix codepaths which assume that the current user account has a personal folder. The SYSTEM account (which Jenkins defaults to using) does not.
Change 3004879 on 2016/06/07 by Ben.Marsh
Remove copy of AWSSDK in NotForLicensees folder.
Change 3004902 on 2016/06/07 by Ben.Marsh
UAT: Switch MCP to use version of AWSSDK that's not in a NotForLicensees folder.
Change 3005892 on 2016/06/08 by Ben.Marsh
Add the GitHub promotion to the UE4 binary release build.
Change 3016241 on 2016/06/16 by Ben.Marsh
UGS: Always sync version files at the same changelist as everything else (rather than head revision)
Change 3016446 on 2016/06/16 by Ben.Marsh
PR #2279: Use MSBuild instead of DevEnv for solution builds (Contributed by FineRedMist)
Change 3016472 on 2016/06/16 by Ben.Marsh
PR #2442: pointing to the pull requests page of the repo (Contributed by KrishMunot)
Change 3017694 on 2016/06/17 by Ben.Marsh
EC: Produce an error if trying to sync back to a changelist more than 30 days before the most recent change. Meant to catch errors in entered CL fields from the dashboard. Can be overridden by specifying --allow-old-change in the build arguments.
Change 3017695 on 2016/06/17 by Ben.Marsh
UBT: Use a well defined order for parsing configuration files, rather than ignoring one file if another has a newer timestamp. Prevents confusing behavior where settings can be present, but are completely ignored. Now prioritizes the BuildConfiguration.xml file in the My Documents/Unreal Engine/UnrealBuildTool, followed by the one in AppData/Roaming/Unreal Engine/UnrealBuildTool. Both are added to the Config section of the solution if present, under different folders.
#jira UE-24271
Change 3017698 on 2016/06/17 by Ben.Marsh
Rename the <MsBuild> task to <CsCompile>, highlighting the fact that it only actually works on .csproj files (and not .sln files or other project types).
#jira UEB-664
Change 3017701 on 2016/06/17 by Ben.Marsh
BuildGraph: Relax a lot of the restrictions relating to using output tags from nodes. Output tags may contain an arbitrary set of files, including files which are also in other tags or produced by other nodes, but will not be written to temp storage more than once. The default tagged set of files for a node (eg. #MyNodeName) now includes all build products produced by that node.
Temp storage now separates the storing of build products from the tags which reference them. A TempStorageFileList object is written for each output tag, which includes a list of files as well as a list of the storage blocks referenced by it. When a node depends on a tag, the TempStorageFileList is read first and used to determine which storage blocks to read.
All tasks now have overloaded functions for returning the tags which they modify and/or reference, and errors are produced if an existing tag is modified, or referenced without being added as an input dependency.
Change 3017714 on 2016/06/17 by Ben.Marsh
BuildGraph: Allow specifying multiple tag names in the 'Tag' attribute of build tasks (or 'With' attribute of the 'Tag' task).
Change 3018007 on 2016/06/17 by Ben.Marsh
UBT: Add sections to the target receipt listing files which are required to build using precompiled binaries (as previously generated using -generateexternalfilelist), and runtime dependencies that may be required when using precompiled binaries but aren't actually required for the current target (which previously had to be specified through InstalledEngineFilters.ini). Tested by running UBT with arguments "UE4Game Win64 Development -precompile -xgeexport" and examining target receipt.
#jira UE-28761
Change 3018322 on 2016/06/17 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3018365 on 2016/06/17 by Ben.Marsh
Misc: Fixes for warnings compiling ShaderCompileWorker on Clang
Change 3018397 on 2016/06/17 by Ben.Marsh
UnrealVS: Add an UnrealVS command to run a single-file-compile with UBT
Change 3019421 on 2016/06/20 by Ben.Marsh
Fix compilation of FreeType on Clang for Windows - there's an fttypes.h header already in the Windows SDK, so use a relative include path instead.
Change 3019423 on 2016/06/20 by Ben.Marsh
PR #2518: Improvements for Clang on Windows (Contributed by Mattiwatti)
Change 3020377 on 2016/06/20 by Ben.Marsh
UBT: Fix strings not being escaped before writing to JSON files.
Change 3020378 on 2016/06/20 by Ben.Marsh
UBT: Exclude precompiled files from the target receipt which are outside the engine and project directories. We don't need SDK libs being added to the precompile list.
Change 3020966 on 2016/06/21 by Ben.Marsh
EC: Allow scheduling builds at a certain offset past midnight, using the schedule formatted like "Every 20m from 04:00", and add scheduled builds of target platforms for dev streams every 4 hours. Also make the meaning of "Editor Only" and "Editor, Tools & Monolithics" build names consistent between Dev streams and Main, and add a new "Editor, Tools, Monolithics & DDC" build type includes additional DDC build for //UE4/Main.
#rb none
#lockdown Nick.Penwarden
[CL 3020980 by Ben Marsh in Main branch]
2016-06-21 09:17:49 -04:00
|
|
|
|
|
|
|
|
|
|
/// <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()
|
|
|
|
|
|
{
|
|
|
|
|
|
return FindTagNamesFromFilespec(Parameters.Files);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <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()
|
|
|
|
|
|
{
|
|
|
|
|
|
return FindTagNamesFromList(Parameters.Tag);
|
|
|
|
|
|
}
|
Copying //UE4/Orion-Staging to //UE4/Main (Origin: //Orion/Dev-General @ 2904087)
==========================
MAJOR FEATURES + CHANGES
==========================
#lockdown Nick.Penwarden
Change 2903938 on 2016/03/10 by Frank.Gigliotti
Added an instance ID to FAnimMontageInstance
#CodeReview Laurent.Delayen
#RB Laurent.Delayen
#Tests PIE
Change 2903745 on 2016/03/10 by Wes.Hunt
Update Oodle TPS
#rb none
#tests none
#codereview:john.pollard
Change 2903689 on 2016/03/10 by Uriel.Doyon
New "LogHeroMaterials" console command, displaying the current state of materials and textures on the character hero.
#rb marcus.wasmer
#codereview marcus.wassmer
#tests editor, playing PC games, trying the new command
Change 2903669 on 2016/03/10 by Aaron.McLeran
OR-17180 Make stat soundcues and stat soundwaves NOT display zero volume sounds
- Change only effects debug stat commands for audio guys
#rb none
#tests played paragon with new debug stat commands, confirms doesn't show zero-volume sounds
Change 2903625 on 2016/03/10 by John.Pollard
XB1 Oodle SDK
#rb none
#tests none
#codereview Jeff.Campeau
Change 2903577 on 2016/03/10 by Ben.Marsh
Remaking latest build scripts from //UE4/Main @ 2900980.
Change 2903560 on 2016/03/10 by Ben.Marsh
Initial version of BuildGraph scripts - used to create build processes in UE4 which can be run locally or in parallel across a build farm (assuming synchronization and resource allocation implemented by a separate system). Intended to supersede GUBP.
Build graphs are declared using an XML script using syntax similar to MSBuild, ANT or NAnt, and consist of the following components:
* Tasks: Building blocks which can be executed as part of the build process. Many predefined tasks are provided (<Cook>, <Compile>, <Copy>, <Stage>, <Log>, <PakFile>, etc...), and additional tasks may be added be declaring classes derived from AutomationTool.CustomTask in other UAT modules.
* Nodes: A named sequence of tasks which is executed to produce outputs. Nodes may have input dependencies on other nodes before they can be executed. Declared with the <Node> element in scripts.
* Agent Groups: A set of nodes nodes which is executed on the same machine if running as part of a build system. Has no effect when building locally. Declared with the <Group> element in scripts.
* Triggers: Container for groups which should only be executed when explicitly triggered (using the -Trigger=<Name> or -SkipTriggers command line argument). Declared with the <Trigger> element in scripts.
* Notifiers: Specifies email recipients for failures in one or more nodes, whether they should receive notifications on warnings, and so on.
Properties can be passed in to a script on the command line, or set procedurally with the <Property Name="Foo" Value="Bar"/> syntax. Properties referenced with the $(Property Name) notation are valid within all strings, and will be expanded as macros when the script is read. If a property name is not set explicitly, it defaults to the contents of an environment variable with the same name.
Local properties, which only affect the scope of the containing XML element (node, group, etc...) are declared with the <Local Name="Foo" Value="Bar"/> element, and will override a similarly named global property for the local property's scope.
Any elements can be conditionally defined via the "If" attribute, and are largely identical to MSBuild conditions. Literals in conditions may be quoted with single (') or double (") quotes, or an unquoted sequence of letters, digits and underscore characters. All literals are considered identical regardless of how they are declared, and are considered case-insensitive for comparisons (so true equals 'True', equals "TRUE"). Available operators are "==", "!=", "And", "Or", "!", "(...)", "Exists(...)" and "HasTrailingSlash(...)". A full grammar is written up in Condition.cs.
File manipulation is done using wildcards and tags. Any attribute that accepts a list of files may consist of: a Perforce-style wildcard (matching any number of "...", "*" and "?" patterns in any location), a full path name, or a reference to a tagged collection of files, denoted by prefixing with a '#' character. Files may be added to a tag set using the <Tag> Task, which also allows performing set union/difference style operations. Each node can declare multiple outputs in the form of a list of named tags, which other nodes can then depend on.
Build graphs may be executed in parallel as part build system. To do so, the initial graph configuration is generated by running with the -Export=<Filename> argument (producing a JSON file listing the nodes and dependencies to execute). Each participating agent should be synced to the same changelist, and UAT should be re-run with the appropriate -Node=<Name> argument. Outputs from different nodes are transferred between agents via shared storage, typically a network share, the path to which can be specified on the command line using the -SharedStorageDir=<Path> argument. Note that the allocation of machines, and coordination between them, is assumed to be managed by an external system.
A schema for the known set of tasks can be generated by running UAT with the "-Schema=<FileName>" option. Generating a schema and referencing it from a BuildGraph script allows Visual Studio to validate and auto-complete elements as you type.
#rb none
#codereview Marc.Audy, Wes.Hunt, Matthew.Griffin, Richard.Fawcett
#tests local only so far, but not part of any build process yet
Change 2903539 on 2016/03/10 by John.Pollard
Improve replay playback debugging of character movement
#rb none
#tests replays
Change 2903526 on 2016/03/10 by Ben.Marsh
Remake changes from //UE4/Main without integration history, to add support for BuildGraph tasks.
#rb none
#tests none
Change 2903512 on 2016/03/10 by Dan.Youhon
Modify minimum Duration values for JumpForce and MoveToForce ability tasks so that having minimum Duration values doesn't trigger check()s
#rb None
#tests Compiles
Change 2903474 on 2016/03/10 by Marc.Audy
Fix crash if ChildActor is null
#rb None
#tests None
Change 2903314 on 2016/03/10 by Marc.Audy
Fix ParentComponent not being persisted and fixup content that was saved in the window it was broken
#rb James.Golding
#tests Selection of child actors works as expected
#jira UE-28201
Change 2903298 on 2016/03/10 by Simon.Tovey
Disabling the trails optimization.
#tests none
#rb none
#codereview Olaf.Piesche
Change 2903124 on 2016/03/10 by Robert.Manuszewski
Small refactor to pak signing to help with exe protection
#rb none
#tests none
[CL 2907678 by Andrew Grant in Main branch]
2016-03-13 18:53:13 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|