本文整理汇总了C#中AutomationTool.UE4Build类的典型用法代码示例。如果您正苦于以下问题:C# UE4Build类的具体用法?C# UE4Build怎么用?C# UE4Build使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UE4Build类属于AutomationTool命名空间,在下文中一共展示了UE4Build类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteInner
void ExecuteInner()
{
var UE4Build = new UE4Build(this);
var Agenda = new UE4Build.BuildAgenda();
{
var Win32Targets = new string[]
{
"FortniteClient",
"FortniteGame",
"FortniteServer",
"OrionServer",
"OrionClient",
"OrionGame",
};
Agenda.AddTargets(Win32Targets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Shipping);
Agenda.AddTargets(Win32Targets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Test);
}
Agenda.DoRetries = false;
Agenda.SpecialTestFlag = true;
UE4Build.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: true);
UE4Build.CheckBuildProducts(UE4Build.BuildProductFiles);
}
示例2: AddPluginToAgenda
static void AddPluginToAgenda(UE4Build.BuildAgenda Agenda, string PluginFileName, PluginDescriptor Plugin, string TargetName, TargetRules.TargetType TargetType, UnrealTargetPlatform Platform, UnrealTargetConfiguration Configuration, List<string> ReceiptFileNames, string InAdditionalArgs)
{
// Find a list of modules that need to be built for this plugin
List<string> ModuleNames = new List<string>();
foreach(ModuleDescriptor Module in Plugin.Modules)
{
bool bBuildDeveloperTools = (TargetType == TargetRules.TargetType.Editor || TargetType == TargetRules.TargetType.Program);
bool bBuildEditor = (TargetType == TargetRules.TargetType.Editor);
if(Module.IsCompiledInConfiguration(Platform, TargetType, bBuildDeveloperTools, bBuildEditor))
{
ModuleNames.Add(Module.Name);
}
}
// Add these modules to the build agenda
if(ModuleNames.Count > 0)
{
string Arguments = String.Format("-plugin {0}", CommandUtils.MakePathSafeToUseWithCommandLine(PluginFileName));
foreach(string ModuleName in ModuleNames)
{
Arguments += String.Format(" -module {0}", ModuleName);
}
string ReceiptFileName = BuildReceipt.GetDefaultPath(Path.GetDirectoryName(PluginFileName), TargetName, Platform, Configuration, "");
Arguments += String.Format(" -receipt {0}", CommandUtils.MakePathSafeToUseWithCommandLine(ReceiptFileName));
ReceiptFileNames.Add(ReceiptFileName);
if(!String.IsNullOrEmpty(InAdditionalArgs))
{
Arguments += InAdditionalArgs;
}
Agenda.AddTarget(TargetName, Platform, Configuration, InAddArgs: Arguments);
}
}
示例3: ExecuteBuild
public override void ExecuteBuild()
{
UE4Build UE4Build = new UE4Build(this);
int? ChangelistOverride = ParseParamNullableInt("cl");
int? CompatibleChangelistOverride = ParseParamNullableInt("compatiblecl");
string Build = ParseParamValue("Build", null);
UE4Build.UpdateVersionFiles(ChangelistNumberOverride: ChangelistOverride, CompatibleChangelistNumberOverride: CompatibleChangelistOverride, Build: Build);
}
示例4: ExecuteBuild
public override void ExecuteBuild()
{
// Get the plugin filename
string PluginFileName = ParseParamValue("Plugin");
if(PluginFileName == null)
{
throw new AutomationException("Plugin file name was not specified via the -plugin argument");
}
// Read the plugin
PluginDescriptor Plugin = PluginDescriptor.FromFile(PluginFileName);
// Clean the intermediate build directory
string IntermediateBuildDirectory = Path.Combine(Path.GetDirectoryName(PluginFileName), "Intermediate", "Build");
if(CommandUtils.DirectoryExists(IntermediateBuildDirectory))
{
CommandUtils.DeleteDirectory(IntermediateBuildDirectory);
}
// Get any additional arguments from the commandline
string AdditionalArgs = "";
if(ParseParam("Rocket"))
{
AdditionalArgs += " -Rocket";
}
// Build the host platforms
List<string> ReceiptFileNames = new List<string>();
UE4Build.BuildAgenda Agenda = new UE4Build.BuildAgenda();
UnrealTargetPlatform HostPlatform = BuildHostPlatform.Current.Platform;
if(!ParseParam("NoHostPlatform"))
{
AddPluginToAgenda(Agenda, PluginFileName, Plugin, "UE4Editor", TargetRules.TargetType.Editor, HostPlatform, UnrealTargetConfiguration.Development, ReceiptFileNames, AdditionalArgs);
}
// Add the game targets
List<UnrealTargetPlatform> TargetPlatforms = Rocket.RocketBuild.GetTargetPlatforms(this, HostPlatform);
foreach(UnrealTargetPlatform TargetPlatform in TargetPlatforms)
{
if(Rocket.RocketBuild.IsCodeTargetPlatform(HostPlatform, TargetPlatform))
{
AddPluginToAgenda(Agenda, PluginFileName, Plugin, "UE4Game", TargetRules.TargetType.Game, TargetPlatform, UnrealTargetConfiguration.Development, ReceiptFileNames, AdditionalArgs);
AddPluginToAgenda(Agenda, PluginFileName, Plugin, "UE4Game", TargetRules.TargetType.Game, TargetPlatform, UnrealTargetConfiguration.Shipping, ReceiptFileNames, AdditionalArgs);
}
}
// Build it
UE4Build Build = new UE4Build(this);
Build.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: false);
// Package the plugin to the output folder
string PackageDirectory = ParseParamValue("Package");
if(PackageDirectory != null)
{
List<BuildProduct> BuildProducts = GetBuildProductsFromReceipts(ReceiptFileNames);
PackagePlugin(PluginFileName, BuildProducts, PackageDirectory);
}
}
示例5: ExecuteInner
void ExecuteInner()
{
var UE4Build = new UE4Build(this);
var Agenda_Mono = new UE4Build.BuildAgenda();
var Agenda_NonUnity = new UE4Build.BuildAgenda();
{
{
var Win64DevTargets = new string[]
{
"FortniteEditor",
"OrionEditor",
"PlatformerGameEditor",
"QAGameEditor",
"ShooterGameEditor",
"StrategyGameEditor",
"VehicleGameEditor",
};
Agenda_Mono.AddTargets(Win64DevTargets, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Development, bForceMonolithic: true);
Agenda_Mono.AddTargets(Win64DevTargets, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Shipping, bForceMonolithic: true);
Agenda_Mono.AddTargets(Win64DevTargets, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Development, bForceNonUnity: true);
Agenda_Mono.AddTargets(Win64DevTargets, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Shipping, bForceNonUnity: true);
var Win32Targets = new string[]
{
"FortniteGame",
"FortniteServer",
"OrionGame",
"PlatformerGame",
"QAGame",
"ShooterGame",
"StrategyGame",
"VehicleGame",
};
Agenda_Mono.AddTargets(Win32Targets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Development, bForceMonolithic: true);
Agenda_Mono.AddTargets(Win32Targets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Development, bForceNonUnity: true);
var Win32ShipTargets = new string[]
{
"FortniteGame",
"FortniteServer",
};
Agenda_Mono.AddTargets(Win32ShipTargets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Shipping, bForceMonolithic: true);
Agenda_Mono.AddTargets(Win32ShipTargets, UnrealTargetPlatform.Win32, UnrealTargetConfiguration.Shipping, bForceNonUnity: true);
}
}
UE4Build.Build(Agenda_Mono, InDeleteBuildProducts: true, InUpdateVersionFiles: true);
UE4Build.Build(Agenda_NonUnity, InDeleteBuildProducts: true, InUpdateVersionFiles: true);
UE4Build.CheckBuildProducts(UE4Build.BuildProductFiles);
}
示例6: BuildBuildPatchTool
/// <summary>
/// Builds BuildPatchTool for the specified platform.
/// </summary>
/// <param name="Command"></param>
/// <param name="InPlatform"></param>
public static void BuildBuildPatchTool(BuildCommand Command, UnrealBuildTool.UnrealTargetPlatform InPlatform)
{
Log("Building BuildPatchTool");
var UE4Build = new UE4Build(Command);
var Agenda = new UE4Build.BuildAgenda();
Agenda.Targets.Add(new UE4Build.BuildTarget()
{
ProjectName = "",
TargetName = "BuildPatchTool",
Platform = InPlatform,
Config = UnrealBuildTool.UnrealTargetConfiguration.Development,
});
UE4Build.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: true);
UE4Build.CheckBuildProducts(UE4Build.BuildProductFiles);
}
示例7: BuildNecessaryTargets
// Broken down steps used to run the process.
#region RebuildLightMaps Process Steps
private void BuildNecessaryTargets()
{
Log("Running Step:- RebuildLightMaps::BuildNecessaryTargets");
UE4Build.BuildAgenda Agenda = new UE4Build.BuildAgenda();
Agenda.AddTarget("UnrealHeaderTool", UnrealBuildTool.UnrealTargetPlatform.Win64, UnrealBuildTool.UnrealTargetConfiguration.Development);
Agenda.AddTarget("ShaderCompileWorker", UnrealBuildTool.UnrealTargetPlatform.Win64, UnrealBuildTool.UnrealTargetConfiguration.Development);
Agenda.AddTarget("UnrealLightmass", UnrealBuildTool.UnrealTargetPlatform.Win64, UnrealBuildTool.UnrealTargetConfiguration.Development);
Agenda.AddTarget(CommandletTargetName, UnrealBuildTool.UnrealTargetPlatform.Win64, UnrealBuildTool.UnrealTargetConfiguration.Development);
try
{
UE4Build Builder = new UE4Build(this);
Builder.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: true, InForceNoXGE: false, InChangelistNumberOverride: GetLatestCodeChange());
UE4Build.CheckBuildProducts(Builder.BuildProductFiles);
}
catch (AutomationException Ex)
{
LogError("Rebuild Light Maps has failed.");
throw Ex;
}
}
示例8: BuildProduct
private static void BuildProduct(BuildCommand Command, UE4Build.BuildTarget Target)
{
if (Target == null)
{
throw new AutomationException("Target is required when calling UE4BuildUtils.BuildProduct");
}
LogConsole("Building {0}", Target.TargetName);
if (Command == null)
{
Command = new UE4BuildUtilDummyBuildCommand();
}
var UE4Build = new UE4Build(Command);
var Agenda = new UE4Build.BuildAgenda();
Agenda.Targets.Add(Target);
UE4Build.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: true);
UE4Build.CheckBuildProducts(UE4Build.BuildProductFiles);
}
示例9: ExecuteBuild
public override void ExecuteBuild()
{
// Get the output directory
string TargetDir = ParseParamValue("TargetDir");
if(TargetDir == null)
{
throw new AutomationException("Missing -Target argument to CopyUAT");
}
// Construct a dummy UE4Build object to get a list of the UAT and UBT build products
UE4Build Build = new UE4Build(this);
Build.AddUATFilesToBuildProducts();
if(ParseParam("WithLauncher"))
{
Build.AddUATLauncherFilesToBuildProducts();
}
Build.AddUBTFilesToBuildProducts();
// Get a list of all the input files
List<string> FileNames = new List<string>(Build.BuildProductFiles);
foreach(string FileName in Build.BuildProductFiles)
{
string SymbolFileName = Path.ChangeExtension(FileName, ".pdb");
if(File.Exists(SymbolFileName))
{
FileNames.Add(SymbolFileName);
}
}
// Copy all the files over
foreach(string FileName in FileNames)
{
string TargetFileName = Utils.MakeRerootedFilePath(FileName, CommandUtils.CmdEnv.LocalRoot, TargetDir);
Directory.CreateDirectory(Path.GetDirectoryName(TargetFileName));
File.Copy(FileName, TargetFileName);
}
Log("Copied {0} files to {1}", FileNames.Count, TargetDir);
}
示例10: DoTest
public override void DoTest(GUBP bp)
{
var Build = new UE4Build(bp);
var Agenda = new UE4Build.BuildAgenda();
string AddArgs = "-nobuilduht";
Agenda.AddTargets(
new string[] { BranchConfig.Branch.BaseEngineProject.Properties.Targets[TargetRules.TargetType.Editor].TargetName },
HostPlatform, UnrealTargetConfiguration.Development, InAddArgs: AddArgs);
foreach (var ProgramTarget in BranchConfig.Branch.BaseEngineProject.Properties.Programs)
{
if (ProgramTarget.Rules.GUBP_AlwaysBuildWithBaseEditor() && ProgramTarget.Rules.SupportsPlatform(HostPlatform))
{
Agenda.AddTargets(new string[] { ProgramTarget.TargetName }, HostPlatform, UnrealTargetConfiguration.Development, InAddArgs: AddArgs);
}
}
Build.Build(Agenda, InDeleteBuildProducts: true, InUpdateVersionFiles: false);
UE4Build.CheckBuildProducts(Build.BuildProductFiles);
SaveRecordOfSuccessAndAddToBuildProducts();
}
示例11: PostBuild
public virtual void PostBuild(GUBP bp, UE4Build UE4Build)
{
}
示例12: PreBuildAgenda
public override void PreBuildAgenda(UE4Build Build, UE4Build.BuildAgenda Agenda)
{
}
示例13: PostBuildTarget
public virtual void PostBuildTarget(UE4Build Build, string ProjectName, string UProjectPath, string Config)
{
}
示例14: ExecuteInner
void ExecuteInner()
{
var UE4Build = new UE4Build(this);
bool IsRunningOnMono = (Type.GetType("Mono.Runtime") != null);
var Agenda = new UE4Build.BuildAgenda();
var Config = ParseParamValue("Config");
if (String.IsNullOrEmpty(Config))
{
Config = "tools";
}
if (Config.ToLower() == "tools")
{
Agenda.DotNetSolutions.AddRange(
new string[]
{
@"Engine\Source\Programs\UnrealDocTool\UnrealDocTool\UnrealDocTool.sln",
@"Engine\Source\Programs\NetworkProfiler\NetworkProfiler.sln",
}
);
Agenda.SwarmProject = @"Engine\Source\Programs\UnrealSwarm\UnrealSwarm.sln";
Agenda.DotNetProjects.AddRange(
new string[]
{
@"Engine\Source\Programs\DotNETCommon\DotNETUtilities\DotNETUtilities.csproj",
@"Engine\Source\Programs\NoRedist\CrashReportServer\CrashReportCommon\CrashReportCommon.csproj",
@"Engine\Source\Programs\NoRedist\CrashReportServer\CrashReportReceiver\CrashReportReceiver.csproj",
@"Engine\Source\Programs\NoRedist\CrashReportServer\CrashReportProcess\CrashReportProcess.csproj",
@"Engine\Source\Programs\CrashReporter\RegisterPII\RegisterPII.csproj",
@"Engine\Source\Programs\Distill\Distill.csproj",
@"Engine\Source\Programs\RPCUtility\RPCUtility.csproj",
@"Engine\Source\Programs\UnrealControls\UnrealControls.csproj",
}
);
Agenda.IOSDotNetProjects.AddRange(
new string[]
{
@"Engine\Source\Programs\IOS\iPhonePackager\iPhonePackager.csproj",
@"Engine\Source\Programs\IOS\MobileDeviceInterface\MobileDeviceInterface.csproj",
@"Engine\Source\Programs\IOS\DeploymentInterface\DeploymentInterface.csproj",
}
);
Agenda.ExtraDotNetFiles.AddRange(
new string[]
{
"Interop.IWshRuntimeLibrary",
"UnrealMarkdown",
"CommonUnrealMarkdown",
}
);
}
//This needs to be a separate target for distributed building because it is required to build anything else.
if (!IsRunningOnMono)
{
var UHTTarget = new string[]
{
"UnrealHeaderTool",
};
Agenda.AddTargets(UHTTarget, UnrealTargetPlatform.Win64, UnrealTargetConfiguration.Development);
}
var ProgramTargets = new string[]
{
"UnrealFileServer",
"ShaderCompileWorker",
"MinidumpDiagnostics",
"SymbolDebugger",
"UnrealFrontend",
"UnrealLightmass",
"UnrealPak",
};
var Win64DevTargets = new List<string>
{
"FortniteEditor",
"OrionEditor",
"PlatformerGameEditor",
"QAGameEditor",
"ShooterGameEditor",
"StrategyGameEditor",
"VehicleGameEditor",
"ShadowEditor",
"SoulEditor",
};
var Win32Targets = new List<string>
{
"FortniteGame",
"FortniteServer",
"FortniteClient",
"OrionGame",
"PlatformerGame",
"ShooterGame",
"StrategyGame",
//.........这里部分代码省略.........
示例15: PreBuildAgenda
public override void PreBuildAgenda(UE4Build Build, UE4Build.BuildAgenda Agenda)
{
if (UnrealBuildTool.BuildHostPlatform.Current.Platform != UnrealTargetPlatform.Mac && !Automation.IsEngineInstalled())
{
Agenda.DotNetProjects.Add(@"Engine\Source\Programs\IOS\MobileDeviceInterface\MobileDeviceInterface.csproj");
Agenda.DotNetProjects.Add(@"Engine\Source\Programs\IOS\iPhonePackager\iPhonePackager.csproj");
Agenda.DotNetProjects.Add(@"Engine\Source\Programs\IOS\DeploymentServer\DeploymentServer.csproj");
}
}