Commit Graph

84 Commits

Author SHA1 Message Date
gary yuan
8be852fca6 Fix typo in string constant for Attribute metadata on BuildGraph BuildCommand
#rb trivial
#preflight skip

[CL 21555167 by gary yuan in ue5-main branch]
2022-08-24 18:52:30 -04:00
gary yuan
d0af43fb02 #jira: FORT-505939
Extended ParamHelp attribute for BuildCommand to better describe the metadata of parameters for UAT scripts.
Update BuildGraph with ParamHelp attributes.

#rb: Eric.Knapik
#preflight: 6303e331c00af5e294fbb7e9

[CL 21525146 by gary yuan in ue5-main branch]
2022-08-23 19:25:33 -04:00
Ben Marsh
38f3bc55ef BuildGraph: Various VM improvements.
* Added support for deserializing BgObject types directly into native classes.
* Removed opcodes for creating graph structures. These are now created in user code from BgObject types.
* Removed BgNodeSpecBuilder. BgNode objects can now be modified directly (returning a modified copy).
* Added concrete types for option parameters. The VM now keeps track of any parameters for evaluated options, allowing them to be added into the graph definition.
* Order dependencies now take nodes rather than outputs.
* Added explicit support for native thunks, whose bindings are saved to a sideband channel during compilation and referenced in bytecode as an index. This generalizes code that was previously specific to node definitions.
* Added a name table to bytecode, to optimize situations where we reference the same string mulitple times.

#preflight 62bf3c583f0d6beee2e8f4a6

[CL 20918762 by Ben Marsh in ue5-main branch]
2022-07-01 14:47:54 -04:00
Ben Marsh
c32dfb7acb BuildGraph: Move option classes alongside their underlying types, and fix up a lot of namespaces.
#preflight none

[CL 20819013 by Ben Marsh in ue5-main branch]
2022-06-24 19:08:20 -04:00
Ben Marsh
bb0e506aac BuildGraph: Rename classes to reduce boilerplate when writing scripts.
* Expression classes (nodes, aggregates, graphs, etc...) are now called BgNode, BgAggregate, etc...
* Evaluated and instantiated objects used by BuildGraph internals are now called BgNodeDef, BgAggregateDef, etc...

#preflight 62b6374161016695a6545b08

[CL 20818158 by Ben Marsh in ue5-main branch]
2022-06-24 18:30:51 -04:00
Ben Marsh
50a74d20ce BuildGraph: Add bytecode compiler and interpreter to allow graph evaluation outside UAT.
#preflight 62b606546067f280916744c8

[CL 20814909 by Ben Marsh in ue5-main branch]
2022-06-24 15:18:50 -04:00
Ben Marsh
1d8d46de10 BuildGraph: Remove unused abstractions added to support reading BuildGraph scripts directly from P4.
#preflight 62b367ccd76167320e368af6

[CL 20781865 by Ben Marsh in ue5-main branch]
2022-06-22 17:14:28 -04:00
Ben Marsh
64b6cb04f1 BuildGraph: Fix UDN documentation output.
#preflight none

[CL 20774471 by Ben Marsh in ue5-main branch]
2022-06-22 10:42:19 -04:00
Ben Marsh
ff46dfcfce BuildGraph: Various refactorings prior to adding bytecode executor.
* Moved XML script parsing into UAT. We don't need to evaluate this in Horde.
* Added custom node types for script and expression nodes, rather than wrapping native nodes with a custom script task.
#preflight 62b31b76650c9d58579b2ea6

[CL 20773724 by Ben Marsh in ue5-main branch]
2022-06-22 09:56:45 -04:00
Ben Marsh
ad092b8fef BuildGraph: Decouple diagnostics from the nodes and agents that contain them.
#preflight 62b1ee341b2d3b6cafcdd33a

[CL 20759421 by Ben Marsh in ue5-main branch]
2022-06-21 12:20:43 -04:00
Ryan Durand
944ea7d415 Safe guard against massive lists of modified files causing a hang in AutomationTool.
#rnx
#jira none
#rb ryan.hummer,ben.marsh
#preflight

[CL 20717184 by Ryan Durand in ue5-main branch]
2022-06-18 06:15:46 -04:00
Ben Marsh
ad3ba4ab43 BuildGraph: Allow use of absolute paths in Include elements.
#jira UE-152589
#preflight 6282aa6fc57a894cf697049d

[CL 20230392 by Ben Marsh in ue5-main branch]
2022-05-16 16:02:27 -04:00
Ben Marsh
508c144999 Horde: Last batch (hopefully) of static analysis fixes/suppressions.
#preflight 623e144c8073508cfc117a87

[CL 19517822 by Ben Marsh in ue5-main branch]
2022-03-25 15:35:47 -04:00
Ben Marsh
5e8a45eab2 Reformat EpicGames.BuildGraph according to style guidelines.
#preflight 623cdba70a073579730cf22b

[CL 19502617 by Ben Marsh in ue5-main branch]
2022-03-24 17:05:58 -04:00
Ryan Durand
7e494a86dd * Fix spelling on Retrieve
* Copy manifest ZIP files locally before unzipping them.
* Use retries when copying to harden against network blips.

#rnx
#jira UE-139648
#rb ryan.hummer, ben.marsh
#preflight

[CL 19480296 by Ryan Durand in ue5-main branch]
2022-03-23 12:02:11 -04:00
Ben Marsh
a91047d88b Allow running buildgraph scripts outside the UE root directory.
#jira UE-143426
#preflight 621d47429a5676d19a444b2b

[CL 19184477 by Ben Marsh in ue5-main branch]
2022-02-28 17:19:49 -05:00
Ben Marsh
a59ef99c07 BuildGraph: New mechanism for declaring graphs using C# code (WIP).
Nodes can now be implemented by arbitary C# methods. Graph structure is specified through expression trees implemented using Bg* types, which are not substituted with values until execution time. Doing so allows determination of node and option dependencies for a particular target, allowing us to generate dynamic UI for presenting relevant settings to the user.

Includes partial implementation of Installed Build script as an example implementation.

#preflight 61bb85d46c2686e86322eec9

[CL 18477305 by Ben Marsh in ue5-main branch]
2021-12-16 13:55:22 -05:00
Ben Marsh
6a2855f64c UAT: Add support for async build commands and BuildGraph tasks.
#preflight 61b3aa86e928cffe866fa918

[CL 18433916 by Ben Marsh in ue5-main branch]
2021-12-10 15:36:47 -05:00
Ben Marsh
2960dad878 BuildGraph: Separate out a base class for the script parser, allowing the structure of a script to be examined without processing anything.
[CL 18302815 by Ben Marsh in ue5-main branch]
2021-11-26 20:24:26 -05:00
Ben Marsh
e75b127ab7 BuildGraph: Revert some changes causing problems with some existing scripts.
[CL 18238990 by Ben Marsh in ue5-main branch]
2021-11-18 11:52:02 -05:00
Ben Marsh
3f14906dc3 BuildGraph: Add a dedicated type to store source file location for script messages.
[CL 18210060 by Ben Marsh in ue5-main branch]
2021-11-16 14:07:30 -05:00
Ben Marsh
c2dbe61853 BuildGraph: Add support for including scripts using wildcards.
[CL 18191024 by Ben Marsh in ue5-main branch]
2021-11-15 10:58:50 -05:00
Ben Marsh
dda07eb2ee BuildGraph: Rename BgScript to BgGraph, to distinguish the concrete preprocessed graph from the input un-preprocessed script.
[CL 18181549 by Ben Marsh in ue5-main branch]
2021-11-14 11:34:01 -05:00
Ben Marsh
74ebf60078 BuildGraph: Make Exists() and Read() methods asynchronous.
[CL 18132882 by Ben Marsh in ue5-main branch]
2021-11-10 12:50:51 -05:00
Ben Marsh
503670e371 Build fix.
[CL 18115882 by Ben Marsh in ue5-main branch]
2021-11-09 18:18:55 -05:00