Files
UnrealEngineUWP/Engine/Source/Programs/Shared/EpicGames.BuildGraph/BgDiagnostic.cs
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

54 lines
1.5 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using EpicGames.Core;
using System;
using System.Collections.Generic;
using System.Text;
namespace EpicGames.BuildGraph
{
/// <summary>
/// Diagnostic message from the graph script. These messages are parsed at startup, then culled along with the rest of the graph nodes before output. Doing so
/// allows errors and warnings which are only output if a node is part of the graph being executed.
/// </summary>
public class BgGraphDiagnostic
{
/// <summary>
/// Location of the diagnostic
/// </summary>
public BgScriptLocation Location;
/// <summary>
/// The diagnostic event type
/// </summary>
public LogEventType EventType;
/// <summary>
/// The message to display
/// </summary>
public string Message;
/// <summary>
/// The node which this diagnostic is declared in. If the node is culled from the graph, the message will not be displayed.
/// </summary>
public BgNode? EnclosingNode;
/// <summary>
/// The agent that this diagnostic is declared in. If the entire agent is culled from the graph, the message will not be displayed.
/// </summary>
public BgAgent? EnclosingAgent;
/// <summary>
/// Constructor
/// </summary>
public BgGraphDiagnostic(BgScriptLocation Location, LogEventType EventType, string Message, BgNode? EnclosingNode, BgAgent? EnclosingAgent)
{
this.Location = Location;
this.EventType = EventType;
this.Message = Message;
this.EnclosingNode = EnclosingNode;
this.EnclosingAgent = EnclosingAgent;
}
}
}