// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tools.DotNETCommon; 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; /// /// Constructor /// /// The static plugin information public UEBuildPlugin(PluginInfo Info) { this.Info = Info; } /// /// 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 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; } } }