// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using System.Text; namespace AutomationTool { public partial class CommandUtils { /// /// Runs UBT with the specified commandline. Automatically creates a logfile. When /// no LogName is specified, the executable name is used as logfile base name. /// /// Environment to use. /// Commandline to pass on to UBT. /// Optional logfile name. public static void RunUBT(CommandEnvironment Env, string UBTExecutable, string CommandLine, string LogName = null) { if (!FileExists(UBTExecutable)) { throw new AutomationException("Unable to find UBT executable: " + UBTExecutable); } if (GlobalCommandLine.Rocket) { CommandLine += " -rocket"; } CommandUtils.RunAndLog(Env, UBTExecutable, CommandLine, LogName); } /// /// Builds a UBT Commandline. /// /// Unreal project to build (optional) /// Target to build. /// Platform to build for. /// Configuration to build. /// Additional arguments to pass on to UBT. public static string UBTCommandline(string Project, string Target, string Platform, string Config, string AdditionalArgs = "") { string CmdLine; if (String.IsNullOrEmpty(Project)) { CmdLine = String.Format("{0} {1} {2} {3}", Target, Platform, Config, AdditionalArgs); } else { CmdLine = String.Format("{0} {1} {2} -Project={3} {4}", Target, Platform, Config, Project, AdditionalArgs); } return CmdLine; } /// /// Builds a target using UBT. Automatically creates a logfile. When /// no LogName is specified, the executable name is used as logfile base name. /// /// BuildEnvironment to use. /// Unreal project to build (optional) /// Target to build. /// Platform to build for. /// Configuration to build. /// Additional arguments to pass on to UBT. /// Optional logifle name. public static void RunUBT(CommandEnvironment Env, string UBTExecutable, string Project, string Target, string Platform, string Config, string AdditionalArgs = "", string LogName = null) { RunUBT(Env, UBTExecutable, UBTCommandline(Project, Target, Platform, Config, AdditionalArgs), LogName); } } }