// Copyright Epic Games, Inc. All Rights Reserved. using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; namespace UnrealBuildTool { abstract class ActionExecutor { public abstract string Name { get; } static protected double MemoryPerActionBytesOverride { get; private set; } = 0.0; /// /// Allow targets to override the expected amount of memory required for compiles, used to control the number /// of parallel action processes. /// /// public static void SetMemoryPerActionOverride(double MemoryPerActionOverrideGB) { MemoryPerActionBytesOverride = Math.Max(MemoryPerActionBytesOverride, MemoryPerActionOverrideGB * 1024 * 1024 * 1024); } public abstract bool ExecuteActions(List ActionsToExecute, ILogger Logger); } }