// Copyright Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EpicGames.Core; namespace UnrealBuildTool { /// /// Stores information about a plugin that is being built for a target /// class UEBuildPlugin { /// /// Information about the plugin /// public PluginInfo Info; /// /// Modules that this plugin belongs to /// public List Modules = new List(); /// /// Recursive /// public HashSet? Dependencies; /// /// Whether the descriptor for this plugin is needed at runtime; because it has modules or content which is used, or because it references another module that does. /// public bool bDescriptorNeededAtRuntime; /// /// Whether this descriptor is referenced non-optionally by something else; a project file or other plugin. This is recursively applied to the plugin's references. /// public bool bDescriptorReferencedExplicitly; /// /// Chain of references to this plugin /// public string ReferenceChain; /// /// Constructor /// /// The static plugin information /// Chain of references to this plugin public UEBuildPlugin(PluginInfo Info, string ReferenceChain) { this.Info = Info; this.ReferenceChain = ReferenceChain; } /// /// Accessor for the name of this plugin /// public string Name { get { return Info.Name; } } /// /// Accessor for the file for this plugin /// public FileReference File { get { return Info.File; } } /// /// Accessor for the child files for this plugin /// public List ChildFiles { get { return Info.ChildFiles; } } /// /// Accessor for the type of the plugin /// public PluginType Type { get { return Info.Type; } } /// /// Accessor for this plugin's root directory /// public DirectoryReference Directory { get { return Info.Directory; } } /// /// Accessor for this plugin's descriptor /// public PluginDescriptor Descriptor { get { return Info.Descriptor; } } /// /// Returns the name of this plugin for debugging /// /// Name of the plugin public override string ToString() { return Info.Name; } } }