// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace AutomationTool { /// /// Host platform abstraction /// public abstract class HostPlatform { private static HostPlatform RunningPlatform; /// /// Current running host platform. /// public static HostPlatform Current { get { return RunningPlatform; } } /// /// Initializes the current platform. /// internal static void Initialize() { if (UnrealBuildTool.BuildHostPlatform.Current.Platform == UnrealBuildTool.UnrealTargetPlatform.Mac) { RunningPlatform = new MacHostPlatform(); } else { RunningPlatform = new WindowsHostPlatform(); } } /// /// Sets .Net framework environment variables. /// abstract public void SetFrameworkVars(); /// /// Gets the build executable filename. /// /// abstract public string GetMsBuildExe(); /// /// Gets the dev environment executable name. /// /// abstract public string GetMsDevExe(); /// /// Folder under UE4/ to the platform's binaries. /// abstract public string RelativeBinariesFolder { get; } /// /// Full path to the UE4 Editor executable for the current platform. /// /// /// abstract public string GetUE4ExePath(string UE4Exe); /// /// Log folder for local builds. /// abstract public string LocalBuildsLogFolder { get; } /// /// Name of the p4 executable. /// abstract public string P4Exe { get; } /// /// Creates a process and sets it up for the current platform. /// /// /// abstract public Process CreateProcess(string AppName); /// /// Sets any additional options for running an executable. /// /// /// /// abstract public void SetupOptionsForRun(ref string AppName, ref CommandUtils.ERunOptions Options, ref string CommandLine); /// /// Sets the console control handler for the current platform. /// /// abstract public void SetConsoleCtrlHandler(ProcessManager.CtrlHandlerDelegate Handler); /// /// Gets UBT project name for the current platform. /// abstract public string UBTProjectName { get; } /// /// Returns the type of the host editor platform. /// abstract public UnrealBuildTool.UnrealTargetPlatform HostEditorPlatform { get; } /// /// Returns the pdb file extenstion for the host platform. /// abstract public string PdbExtension { get; } /// /// List of processes that can't not be killed /// abstract public string[] DontKillProcessList { get; } } }