Hey there,
Thanks for reaching out regarding this use case. I’ve spoken with the team, and there are some challenges in implementing this in Build Graph 1. Build Graph 2 is quite experimental at the moment, but this would be the area of investigation & application for such a use case. As an example of a BuildGraph2 script, please refer to snippet below:
`using System.Collections.Generic;
using System.Threading.Tasks;
using AutomationTool;
using EpicGames.BuildGraph;
using EpicGames.BuildGraph.Expressions;
using EpicGames.Core;
using UnrealBuildTool;
using static AutomationTool.Tasks.StandardTasks;
namespace Ulysses.Automation.Graphs;
class ExampleGraph : BgGraphBuilder
{
public override BgGraph CreateGraph(BgEnvironment env)
{
BgAgent agent1 = new BgAgent(“agent 1”, “CompileWin64Incremental”);
BgAgent agent2 = new BgAgent(“agent 2”, “CompileWin64Incremental2”);
BgAgent agent3 = new BgAgent(“agent 3”, “CompileWin64Incremental3”);
BgNode<(BgFileSet, BgFileSet)> compileEditorNode = agent1.AddNode(x => CompileEditorAsync());
BgNode listBinariesNode = agent2.AddNode(x => PrintRequirementsAsync(x, “binaries”, compileEditorNode.Output.Item1)).Requires(compileEditorNode.Output.Item1);
BgNode listSymbolsNode = agent3.AddNode(x => PrintRequirementsAsync(x, “symbols”, compileEditorNode.Output.Item2)).Requires(compileEditorNode.Output.Item2);
return new BgGraph(new List { compileEditorNode, listBinariesNode, listSymbolsNode }, new List { new(“Aggregate”, listBinariesNode, listSymbolsNode) });
}
private static async Task<(BgFileSet, BgFileSet)> CompileEditorAsync()
{
FileSet allFiles = await CompileAsync($“EngineTestEditor”, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Development);
return (allFiles.Except(“.pdb"), allFiles.Filter(".pdb”));
}
[BgNodeName(“PrintRequirementsAsync {name}”)]
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Style”, “IDE0060:Remove unused parameter”, Justification = “”)]
private static Task PrintRequirementsAsync(BgContext context, string name, BgFileSet files)
{
return Task.CompletedTask;
}
}`This is a script referenced from a different EPS [Content removed]
You can launch such a script like this:
- RunUAT.bat BuildGraph -Target=“agent 1” -Class=ExampleGraph"
In the above system you should be able to achieve that you’re looking for in the interim.
Kind regards,
Julian