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) { if (Module.IsCompiledInConfiguration(Platform, TargetType)) { 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); } }
static List <BuildProduct> GetBuildProductsFromReceipts(List <string> ReceiptFileNames) { List <BuildProduct> BuildProducts = new List <BuildProduct>(); foreach (string ReceiptFileName in ReceiptFileNames) { BuildReceipt Receipt = BuildReceipt.Read(ReceiptFileName); BuildProducts.AddRange(Receipt.BuildProducts); } return(BuildProducts); }
public void StageRuntimeDependenciesFromReceipt(BuildReceipt Receipt) { // Also stage any additional runtime dependencies, like ThirdParty DLLs foreach (RuntimeDependency RuntimeDependency in Receipt.RuntimeDependencies) { // allow missing files if needed if (Receipt.bRequireDependenciesToExist == false && File.Exists(RuntimeDependency.Path) == false) { continue; } StageFile(StagedFileType.NonUFS, RuntimeDependency.Path, RuntimeDependency.StagePath); } }
public void StageBuildProductsFromReceipt(BuildReceipt Receipt) { // Stage all the build products needed at runtime foreach (BuildProduct BuildProduct in Receipt.BuildProducts) { // allow missing files if needed if (Receipt.bRequireDependenciesToExist == false && File.Exists(BuildProduct.Path) == false) { continue; } if (BuildProduct.Type == BuildProductType.Executable || BuildProduct.Type == BuildProductType.DynamicLibrary || BuildProduct.Type == BuildProductType.RequiredResource) { StageFile(StagedFileType.NonUFS, BuildProduct.Path); } else if (BuildProduct.Type == BuildProductType.SymbolFile) { StageFile(StagedFileType.DebugNonUFS, BuildProduct.Path); } } }
private List<string> CollectPluginDataPaths(BuildReceipt Receipt) { List<string> PluginExtras = new List<string>(); if (Receipt == null) { Log.TraceInformation("Receipt is NULL"); return PluginExtras; } // collect plugin extra data paths from target receipt var Results = Receipt.AdditionalProperties.Where(x => x.Name == "AndroidPlugin"); foreach (var Property in Results) { // Keep only unique paths string PluginPath = Property.Value; if (PluginExtras.FirstOrDefault(x => x == PluginPath) == null) { PluginExtras.Add(PluginPath); Log.TraceInformation("AndroidPlugin: {0}", PluginPath); } } return PluginExtras; }