static string GetBlueprintPluginPathArgument(ProjectParams Params, bool Client, UnrealTargetPlatform TargetPlatform) { string ScriptPluginArgs = ""; // if we're utilizing an auto-generated code plugin/module (a product of // the cook process), make sure to compile it along with the targets here if (Params.RunAssetNativization) { ProjectParams.BlueprintPluginKey PluginKey = new ProjectParams.BlueprintPluginKey(); PluginKey.Client = Client; PluginKey.TargetPlatform = TargetPlatform; FileReference CodePlugin = null; if(Params.BlueprintPluginPaths.TryGetValue(PluginKey, out CodePlugin)) { ScriptPluginArgs += "-PLUGIN \"" + CodePlugin + "\" "; } else { LogWarning("BlueprintPluginPath for " + TargetPlatform + " " + (Client ? "client" : "server") + " was not found"); } } return ScriptPluginArgs; }
static void AddBlueprintPluginPathArgument(ProjectParams Params, bool Client, UnrealTargetPlatform TargetPlatform, string PlatformToCook) { if (Params.RunAssetNativization) { ProjectParams.BlueprintPluginKey PluginKey = new ProjectParams.BlueprintPluginKey(); PluginKey.Client = Client; PluginKey.TargetPlatform = TargetPlatform; string ProjectDir = Params.RawProjectPath.Directory.ToString(); // If you change this target path you must also update logic in CookOnTheFlyServer.cpp. Passing a single directory around is cumbersome for testing, so I have hard coded it. // Similarly if you change the .uplugin name you must update DefaultPluginName in BlueprintNativeCodeGenModule.cpp string GeneratedPluginPath = CombinePaths(ProjectDir, "Intermediate", PlatformToCook, "NativizedAssets/NativizedAssets.uplugin"); Params.BlueprintPluginPaths.Add(PluginKey, new FileReference(GeneratedPluginPath)); } }