本文整理汇总了C#中AutomationTool.ProjectParams.GetCookedDataPlatformForClientTarget方法的典型用法代码示例。如果您正苦于以下问题:C# ProjectParams.GetCookedDataPlatformForClientTarget方法的具体用法?C# ProjectParams.GetCookedDataPlatformForClientTarget怎么用?C# ProjectParams.GetCookedDataPlatformForClientTarget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AutomationTool.ProjectParams
的用法示例。
在下文中一共展示了ProjectParams.GetCookedDataPlatformForClientTarget方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDeploymentContext
//@todo move this
public static List<DeploymentContext> CreateDeploymentContext(ProjectParams Params, bool InDedicatedServer, bool DoCleanStage = false)
{
ParamList<string> ListToProcess = InDedicatedServer && (Params.Cook || Params.CookOnTheFly) ? Params.ServerCookedTargets : Params.ClientCookedTargets;
var ConfigsToProcess = InDedicatedServer && (Params.Cook || Params.CookOnTheFly) ? Params.ServerConfigsToBuild : Params.ClientConfigsToBuild;
var CreateWebSocketsServer = Params.ServerTargetPlatforms.Count() > 0 && Params.ClientTargetPlatforms.Contains(UnrealTargetPlatform.HTML5);
List<UnrealTargetPlatform> PlatformsToStage = Params.ClientTargetPlatforms;
if (InDedicatedServer && (Params.Cook || Params.CookOnTheFly))
{
PlatformsToStage = Params.ServerTargetPlatforms;
}
bool prefixArchiveDir = false;
if (PlatformsToStage.Contains(UnrealTargetPlatform.Win32) && PlatformsToStage.Contains(UnrealTargetPlatform.Win64))
{
prefixArchiveDir = true;
}
List<DeploymentContext> DeploymentContexts = new List<DeploymentContext>();
foreach (var StagePlatform in PlatformsToStage)
{
// Get the platform to get cooked data from, may differ from the stage platform
UnrealTargetPlatform CookedDataPlatform = Params.GetCookedDataPlatformForClientTarget(StagePlatform);
if (InDedicatedServer && (Params.Cook || Params.CookOnTheFly))
{
CookedDataPlatform = Params.GetCookedDataPlatformForServerTarget(StagePlatform);
}
List<string> ExecutablesToStage = new List<string>();
string PlatformName = StagePlatform.ToString();
string StageArchitecture = !String.IsNullOrEmpty(Params.SpecifiedArchitecture) ? Params.SpecifiedArchitecture : "";
foreach (var Target in ListToProcess)
{
foreach (var Config in ConfigsToProcess)
{
string Exe = Target;
if (Config != UnrealTargetConfiguration.Development)
{
Exe = Target + "-" + PlatformName + "-" + Config.ToString() + StageArchitecture;
}
ExecutablesToStage.Add(Exe);
}
}
string StageDirectory = ((ShouldCreatePak(Params) || (Params.Stage)) || !String.IsNullOrEmpty(Params.StageDirectoryParam)) ? Params.BaseStageDirectory : "";
string ArchiveDirectory = (Params.Archive || !String.IsNullOrEmpty(Params.ArchiveDirectoryParam)) ? Params.BaseArchiveDirectory : "";
if (prefixArchiveDir && (StagePlatform == UnrealTargetPlatform.Win32 || StagePlatform == UnrealTargetPlatform.Win64))
{
if (Params.Stage)
{
StageDirectory = CombinePaths(Params.BaseStageDirectory, StagePlatform.ToString());
}
if (Params.Archive)
{
ArchiveDirectory = CombinePaths(Params.BaseArchiveDirectory, StagePlatform.ToString());
}
}
string EngineDir = CommandUtils.CombinePaths(CommandUtils.CmdEnv.LocalRoot, "Engine");
List<TargetReceipt> TargetsToStage = new List<TargetReceipt>();
foreach(string Target in ListToProcess)
{
foreach(UnrealTargetConfiguration Config in ConfigsToProcess)
{
string ReceiptBaseDir = Params.IsCodeBasedProject? Path.GetDirectoryName(Params.RawProjectPath) : EngineDir;
Platform PlatformInstance = Platform.Platforms[StagePlatform];
UnrealTargetPlatform[] SubPlatformsToStage = PlatformInstance.GetStagePlatforms();
// if we are attempting to gathering multiple platforms, the files aren't required
bool bRequireStagedFilesToExist = SubPlatformsToStage.Length == 1 && PlatformsToStage.Count == 1;
foreach (UnrealTargetPlatform ReceiptPlatform in SubPlatformsToStage)
{
string Architecture = Params.SpecifiedArchitecture;
if (string.IsNullOrEmpty(Architecture))
{
Architecture = "";
var BuildPlatform = UEBuildPlatform.GetBuildPlatform(ReceiptPlatform, true);
if (BuildPlatform != null)
{
Architecture = BuildPlatform.GetActiveArchitecture();
}
}
string ReceiptFileName = TargetReceipt.GetDefaultPath(ReceiptBaseDir, Target, ReceiptPlatform, Config, Architecture);
if(!File.Exists(ReceiptFileName))
{
if (bRequireStagedFilesToExist)
{
// if we aren't collecting multiple platforms, then it is expected to exist
throw new AutomationException(ErrorCodes.Error_MissingExecutable, "Stage Failed. Missing receipt '{0}'. Check that this target has been built.", Path.GetFileName(ReceiptFileName));
}
else
{
// if it's multiple platforms, then allow missing receipts
continue;
//.........这里部分代码省略.........
示例2: Cook
public static void Cook(ProjectParams Params)
{
if ((!Params.Cook && !(Params.CookOnTheFly && !Params.SkipServer)) || Params.SkipCook)
{
return;
}
Params.ValidateAndLog();
Log("********** COOK COMMAND STARTED **********");
string UE4EditorExe = HostPlatform.Current.GetUE4ExePath(Params.UE4Exe);
if (!FileExists(UE4EditorExe))
{
throw new AutomationException("Missing " + UE4EditorExe + " executable. Needs to be built first.");
}
if (Params.CookOnTheFly && !Params.SkipServer)
{
if (Params.ClientTargetPlatforms.Count > 0)
{
var LogFolderOutsideOfSandbox = GetLogFolderOutsideOfSandbox();
if (!GlobalCommandLine.Installed)
{
// In the installed runs, this is the same folder as CmdEnv.LogFolder so delete only in not-installed
DeleteDirectory(LogFolderOutsideOfSandbox);
CreateDirectory(LogFolderOutsideOfSandbox);
}
var ServerLogFile = CombinePaths(LogFolderOutsideOfSandbox, "Server.log");
Platform ClientPlatformInst = Params.ClientTargetPlatformInstances[0];
string TargetCook = ClientPlatformInst.GetCookPlatform(false, Params.HasDedicatedServerAndClient, Params.CookFlavor);
ServerProcess = RunCookOnTheFlyServer(Params.RawProjectPath, Params.NoClient ? "" : ServerLogFile, TargetCook, Params.RunCommandline);
if (ServerProcess != null)
{
Log("Waiting a few seconds for the server to start...");
Thread.Sleep(5000);
}
}
else
{
throw new AutomationException("Failed to run, client target platform not specified");
}
}
else
{
var PlatformsToCook = new HashSet<string>();
if (!Params.NoClient)
{
foreach (var ClientPlatform in Params.ClientTargetPlatforms)
{
// Use the data platform, sometimes we will copy another platform's data
var DataPlatform = Params.GetCookedDataPlatformForClientTarget(ClientPlatform);
PlatformsToCook.Add(Params.GetTargetPlatformInstance(DataPlatform).GetCookPlatform(false, Params.HasDedicatedServerAndClient, Params.CookFlavor));
}
}
if (Params.DedicatedServer)
{
foreach (var ServerPlatform in Params.ServerTargetPlatforms)
{
// Use the data platform, sometimes we will copy another platform's data
var DataPlatform = Params.GetCookedDataPlatformForServerTarget(ServerPlatform);
PlatformsToCook.Add(Params.GetTargetPlatformInstance(DataPlatform).GetCookPlatform(true, false, Params.CookFlavor));
}
}
if (Params.Clean.HasValue && Params.Clean.Value && !Params.IterativeCooking)
{
Log("Cleaning cooked data.");
CleanupCookedData(PlatformsToCook.ToList(), Params);
}
// cook the set of maps, or the run map, or nothing
string[] Maps = null;
if (Params.HasMapsToCook)
{
Maps = Params.MapsToCook.ToArray();
}
string[] Dirs = null;
if (Params.HasDirectoriesToCook)
{
Dirs = Params.DirectoriesToCook.ToArray();
}
string[] Cultures = null;
if (Params.HasCulturesToCook)
{
Cultures = Params.CulturesToCook.ToArray();
}
try
{
var CommandletParams = "-buildmachine -Unversioned -fileopenlog";
if (Params.UseDebugParamForEditorExe)
{
CommandletParams += " -debug";
}
if (Params.Manifests)
{
//.........这里部分代码省略.........
示例3: CreateDeploymentContext
//@todo move this
public static List<DeploymentContext> CreateDeploymentContext(ProjectParams Params, bool InDedicatedServer, bool DoCleanStage = false)
{
ParamList<string> ListToProcess = InDedicatedServer && (Params.Cook || Params.CookOnTheFly) ? Params.ServerCookedTargets : Params.ClientCookedTargets;
var ConfigsToProcess = InDedicatedServer && (Params.Cook || Params.CookOnTheFly) ? Params.ServerConfigsToBuild : Params.ClientConfigsToBuild;
List<UnrealTargetPlatform> PlatformsToStage = Params.ClientTargetPlatforms;
if (InDedicatedServer && (Params.Cook || Params.CookOnTheFly))
{
PlatformsToStage = Params.ServerTargetPlatforms;
}
bool prefixArchiveDir = false;
if (PlatformsToStage.Contains(UnrealTargetPlatform.Win32) && PlatformsToStage.Contains(UnrealTargetPlatform.Win64))
{
prefixArchiveDir = true;
}
List<DeploymentContext> DeploymentContexts = new List<DeploymentContext>();
foreach (var StagePlatform in PlatformsToStage)
{
// Get the platform to get cooked data from, may differ from the stage platform
UnrealTargetPlatform CookedDataPlatform = Params.GetCookedDataPlatformForClientTarget(StagePlatform);
if (InDedicatedServer && (Params.Cook || Params.CookOnTheFly))
{
CookedDataPlatform = Params.GetCookedDataPlatformForServerTarget(StagePlatform);
}
List<string> ExecutablesToStage = new List<string>();
string PlatformName = StagePlatform.ToString();
foreach (var Target in ListToProcess)
{
foreach (var Config in ConfigsToProcess)
{
string Exe = Target;
if (Config != UnrealTargetConfiguration.Development)
{
Exe = Target + "-" + PlatformName + "-" + Config.ToString();
}
ExecutablesToStage.Add(Exe);
}
}
string StageDirectory = (Params.Stage || !String.IsNullOrEmpty(Params.StageDirectoryParam)) ? Params.BaseStageDirectory : "";
string ArchiveDirectory = (Params.Archive || !String.IsNullOrEmpty(Params.ArchiveDirectoryParam)) ? Params.BaseArchiveDirectory : "";
if (prefixArchiveDir && (StagePlatform == UnrealTargetPlatform.Win32 || StagePlatform == UnrealTargetPlatform.Win64))
{
if (Params.Stage)
{
StageDirectory = CombinePaths(Params.BaseStageDirectory, StagePlatform.ToString());
}
if (Params.Archive)
{
ArchiveDirectory = CombinePaths(Params.BaseArchiveDirectory, StagePlatform.ToString());
}
}
//@todo should pull StageExecutables from somewhere else if not cooked
var SC = new DeploymentContext(Params.RawProjectPath, CmdEnv.LocalRoot,
StageDirectory,
ArchiveDirectory,
Params.CookFlavor,
Params.GetTargetPlatformInstance(CookedDataPlatform),
Params.GetTargetPlatformInstance(StagePlatform),
ConfigsToProcess,
ExecutablesToStage,
InDedicatedServer,
Params.Cook || Params.CookOnTheFly,
Params.CrashReporter && (StagePlatform != UnrealTargetPlatform.Linux || !Params.Rocket),
Params.Stage,
Params.CookOnTheFly,
Params.Archive,
Params.IsProgramTarget,
Params.HasDedicatedServerAndClient
);
LogDeploymentContext(SC);
// If we're a derived platform make sure we're at the end, otherwise make sure we're at the front
if (CookedDataPlatform != StagePlatform)
{
DeploymentContexts.Add(SC);
}
else
{
DeploymentContexts.Insert(0, SC);
}
}
return DeploymentContexts;
}
示例4: Cook
public static void Cook(ProjectParams Params)
{
if ((!Params.Cook && !(Params.CookOnTheFly && !Params.SkipServer)) || Params.SkipCook)
{
return;
}
Params.ValidateAndLog();
LogConsole("********** COOK COMMAND STARTED **********");
string UE4EditorExe = HostPlatform.Current.GetUE4ExePath(Params.UE4Exe);
if (!FileExists(UE4EditorExe))
{
throw new AutomationException("Missing " + UE4EditorExe + " executable. Needs to be built first.");
}
if (Params.CookOnTheFly && !Params.SkipServer)
{
if (Params.HasDLCName)
{
throw new AutomationException("Cook on the fly doesn't support cooking dlc");
}
if (Params.ClientTargetPlatforms.Count > 0)
{
var LogFolderOutsideOfSandbox = GetLogFolderOutsideOfSandbox();
if (!GlobalCommandLine.Installed)
{
// In the installed runs, this is the same folder as CmdEnv.LogFolder so delete only in not-installed
DeleteDirectory(LogFolderOutsideOfSandbox);
CreateDirectory(LogFolderOutsideOfSandbox);
}
String COTFCommandLine = Params.RunCommandline;
if (Params.IterativeCooking)
{
COTFCommandLine += " -iterate";
}
var ServerLogFile = CombinePaths(LogFolderOutsideOfSandbox, "Server.log");
Platform ClientPlatformInst = Params.ClientTargetPlatformInstances[0];
string TargetCook = ClientPlatformInst.GetCookPlatform(false, Params.HasDedicatedServerAndClient, Params.CookFlavor);
ServerProcess = RunCookOnTheFlyServer(Params.RawProjectPath, Params.NoClient ? "" : ServerLogFile, TargetCook, COTFCommandLine);
if (ServerProcess != null)
{
LogConsole("Waiting a few seconds for the server to start...");
Thread.Sleep(5000);
}
}
else
{
throw new AutomationException("Failed to run, client target platform not specified");
}
}
else
{
var PlatformsToCook = new HashSet<string>();
if (!Params.NoClient)
{
foreach (var ClientPlatform in Params.ClientTargetPlatforms)
{
// Use the data platform, sometimes we will copy another platform's data
var DataPlatform = Params.GetCookedDataPlatformForClientTarget(ClientPlatform);
PlatformsToCook.Add(Params.GetTargetPlatformInstance(DataPlatform).GetCookPlatform(false, Params.HasDedicatedServerAndClient, Params.CookFlavor));
}
}
if (Params.DedicatedServer)
{
foreach (var ServerPlatform in Params.ServerTargetPlatforms)
{
// Use the data platform, sometimes we will copy another platform's data
var DataPlatform = Params.GetCookedDataPlatformForServerTarget(ServerPlatform);
PlatformsToCook.Add(Params.GetTargetPlatformInstance(DataPlatform).GetCookPlatform(true, false, Params.CookFlavor));
}
}
if (Params.Clean.HasValue && Params.Clean.Value && !Params.IterativeCooking)
{
LogConsole("Cleaning cooked data.");
CleanupCookedData(PlatformsToCook.ToList(), Params);
}
// cook the set of maps, or the run map, or nothing
string[] Maps = null;
if (Params.HasMapsToCook)
{
Maps = Params.MapsToCook.ToArray();
foreach (var M in Maps)
{
LogConsole("HasMapsToCook " + M.ToString());
}
foreach (var M in Params.MapsToCook)
{
LogConsole("Params.HasMapsToCook " + M.ToString());
}
}
string[] Dirs = null;
if (Params.HasDirectoriesToCook)
//.........这里部分代码省略.........