Commit Graph

9 Commits

Author SHA1 Message Date
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
jonathan adamczewski
5053cae2d8 Launch UnrealBuildTool via dotnet unrealbuildtool.dll, not unrealbuildtool.exe
#jira none
#rnx
#preflight 624261bdb6084b98321e9251

[CL 19544939 by jonathan adamczewski in ue5-main branch]
2022-03-29 13:20:46 -04:00
jonathan adamczewski
5c68d1d9ef Revert //UE5/Main/... changelist 19531725 - return to NET Core 3.1
#preflight 62422fd0470aff98e946bfce
#jira UE-119846

[CL 19534572 by jonathan adamczewski in ue5-main branch]
2022-03-28 18:25:19 -04:00
jonathan adamczewski
18ac15cbb1 Upgrade to .NET 6.0
#jira UE-119846
#preflight 6241fc06470aff98e943c035

[CL 19531725 by jonathan adamczewski in ue5-main branch]
2022-03-28 15:30:56 -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
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