You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
========================== MAJOR FEATURES + CHANGES ========================== Change 2781504 on 2015/11/25 by Mike.Beach Guarding against invalid nodes for deferred graph node actions (add, remove, select), by using TWeakObjectPtr instead of raw UEdGraphNode pointers. #jira UE-23371 #codereview Dan.OConnor Change 2781513 on 2015/11/25 by Michael.Schoell Find-in-Blueprints optimized gathering. Size of data has shrunk in the Asset Registry by up to one fifth the old size! Performance moderately improved. Load and save times of Blueprints increased, less redundant gathering of searchable data. #jira UE-22928 - Optimize Find-in-Blueprints Gathering of Searchable Data Change 2781517 on 2015/11/25 by Michael.Schoell Marked FTimerHandle::Handle as a UPROPERTY(transient) so that Blueprints can check the equality of two instances of the structure. #jira UE-23136 - Remove Item Node Removes All Objects in an Array Change 2781804 on 2015/11/26 by Maciej.Mroz Changed ConformImplementedEvents. #jira UE-23738 BP_RiftMage_Ultimate fails to convert during cooking #codereview Phillip.Kavan, Mike.Beach Change 2781821 on 2015/11/26 by Ben.Cosh This reinstates the blueprint debugging keymaps and adds additional functionality for step over and step out as key maps in the PIE world controls. #UEBP-66 - Blueprint debug keymappings #UE-16817 - Add step-in, step-over, and run until here functions for breakpoints #UE-12481 - The F10 key doesn't work for stepping blueprint debugging #Branch UE4 #Proj GraphEditor, Kismet, UnrealEd, CoreUObject, Slate reviewedby chris.wood Change 2781861 on 2015/11/26 by Maciej.Mroz UE-23626 Converted tower defense game - you cannot click to place towers CodeGenerator generates overriden exported names for events and functions. #codereview Dan.Oconnor, Steve.Robb Change 2782798 on 2015/11/30 by Maciej.Mroz BP C++ conversion: components from SCS calls AttachTo (with ParentSocket parameter). #jira UE-23862 Pawns in TowerDefenseGame don't move in converted build #codereview Phillip.Kavan, Mike.Beach, Dan.Oconnor Change 2782881 on 2015/11/30 by Michael.Schoell Fixed ensure when promoting function graphs from interfaces during interface removal. #jira UE-23717 - Ensure removing an implemented interface when transfering functions Change 2783041 on 2015/11/30 by Maciej.Mroz BP C++ conversion: All variables from Event Graph are listed as class properties. #jira UE-23629 Converted tower defense game - Cam scrolls to upper left when mouse leaves window #codereview Mike.Beach, Dan.Oconnor Change 2783080 on 2015/11/30 by Michael.Schoell Removing an interface function's output parameters will no longer cause Blueprints implementing the function to error. Functions expected as event overrides will accept function graph implementations and give a warning informing that it is unexpected. All function graphs (interfaces, interface implementations, overrides) can be duplicated. Parent function calls will be removed. Duplicating graphs will correct names of objects in child Blueprints. Function overrides of interfaces expected as an event can be deleted. Duplicating graphs while in PIE is no longer possible. When removing an interface, the operation can now be canceled. #jira UE-13335 - Inside a BP Interface, changing a Function output to an input will cause a compile error in the reference bp Change 2783338 on 2015/11/30 by Michael.Schoell New output pins on function result nodes will properly fill out with valid default values. All invalid pins will auto-validate themselves on node reconstruction when opening the Blueprint. #jira UE-1928 - BLUEPRINTS: Default value not supplied for output parameters of function Change 2783742 on 2015/11/30 by Phillip.Kavan [UE-15463] Add special-case handling for failed imports of BPGC-owned component archetype objects on level load. change summary: - modified FLinkerLoad::VerifyImport() to customize the load error messaging for missing component archetype objects Change 2784652 on 2015/12/01 by Ben.Cosh Fix for crash whilst undoing the creation of a macro and currently displaying the tooltip in the blueprint editor. #UE-23955 - Adding a macro graph through MyBlueprint and then calling undo causes a crash updating the macro tooltip. #Branch UE4 #Proj Kismet #CodeReview Chris.Wood Change 2784834 on 2015/12/01 by Michael.Schoell Added functions to convert from string to: Vector, Vector2D, Rotator, Color. #jira UE-23761 - GitHub 1795 : [KismetStringLibrary] Convert String Back Into Vector, Rotator, Float, Adding Support for 2 way conversion! ? Rama PR #1795
170 lines
6.0 KiB
C#
170 lines
6.0 KiB
C#
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Threading;
|
|
using System.Reflection;
|
|
using System.Linq;
|
|
using AutomationTool;
|
|
using UnrealBuildTool;
|
|
|
|
[Flags]
|
|
public enum ProjectBuildTargets
|
|
{
|
|
None = 0,
|
|
Editor = 1 << 0,
|
|
ClientCooked = 1 << 1,
|
|
ServerCooked = 1 << 2,
|
|
Bootstrap = 1 << 3,
|
|
CrashReporter = 1 << 4,
|
|
Programs = 1 << 5,
|
|
|
|
// All targets
|
|
All = Editor | ClientCooked | ServerCooked | Bootstrap | CrashReporter | Programs,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Helper command used for compiling.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Command line params used by this command:
|
|
/// -cooked
|
|
/// -cookonthefly
|
|
/// -clean
|
|
/// -[platform]
|
|
/// </remarks>
|
|
public partial class Project : CommandUtils
|
|
{
|
|
#region Build Command
|
|
|
|
public static void Build(BuildCommand Command, ProjectParams Params, int WorkingCL = -1, ProjectBuildTargets TargetMask = ProjectBuildTargets.All)
|
|
{
|
|
Params.ValidateAndLog();
|
|
|
|
if (!Params.Build)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Log("********** BUILD COMMAND STARTED **********");
|
|
|
|
var UE4Build = new UE4Build(Command);
|
|
var Agenda = new UE4Build.BuildAgenda();
|
|
var CrashReportPlatforms = new HashSet<UnrealTargetPlatform>();
|
|
|
|
// Setup editor targets
|
|
if (Params.HasEditorTargets && !Params.Rocket && (TargetMask & ProjectBuildTargets.Editor) == ProjectBuildTargets.Editor)
|
|
{
|
|
// @todo Mac: proper platform detection
|
|
UnrealTargetPlatform EditorPlatform = HostPlatform.Current.HostEditorPlatform;
|
|
const UnrealTargetConfiguration EditorConfiguration = UnrealTargetConfiguration.Development;
|
|
|
|
CrashReportPlatforms.Add(EditorPlatform);
|
|
Agenda.AddTargets(Params.EditorTargets.ToArray(), EditorPlatform, EditorConfiguration, Params.CodeBasedUprojectPath);
|
|
if (Params.EditorTargets.Contains("UnrealHeaderTool") == false)
|
|
{
|
|
Agenda.AddTargets(new string[] { "UnrealHeaderTool" }, EditorPlatform, EditorConfiguration);
|
|
}
|
|
if (Params.EditorTargets.Contains("ShaderCompileWorker") == false)
|
|
{
|
|
Agenda.AddTargets(new string[] { "ShaderCompileWorker" }, EditorPlatform, EditorConfiguration);
|
|
}
|
|
if (Params.Pak && Params.EditorTargets.Contains("UnrealPak") == false)
|
|
{
|
|
Agenda.AddTargets(new string[] { "UnrealPak" }, EditorPlatform, EditorConfiguration);
|
|
}
|
|
if (Params.FileServer && Params.EditorTargets.Contains("UnrealFileServer") == false)
|
|
{
|
|
Agenda.AddTargets(new string[] { "UnrealFileServer" }, EditorPlatform, EditorConfiguration);
|
|
}
|
|
}
|
|
|
|
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)
|
|
{
|
|
// Add every plugin:
|
|
foreach( var CodePlugin in Params.BlueprintPluginPaths)
|
|
{
|
|
ScriptPluginArgs = "-PLUGIN \"" + CodePlugin + "\"";
|
|
}
|
|
}
|
|
|
|
// Setup cooked targets
|
|
if (Params.HasClientCookedTargets && (TargetMask & ProjectBuildTargets.ClientCooked) == ProjectBuildTargets.ClientCooked)
|
|
{
|
|
foreach (var BuildConfig in Params.ClientConfigsToBuild)
|
|
{
|
|
foreach (var ClientPlatform in Params.ClientTargetPlatforms)
|
|
{
|
|
CrashReportPlatforms.Add(ClientPlatform);
|
|
Agenda.AddTargets(Params.ClientCookedTargets.ToArray(), ClientPlatform, BuildConfig, Params.CodeBasedUprojectPath, InAddArgs: ScriptPluginArgs + " -remoteini=\"" + Params.RawProjectPath.Directory.FullName + "\"");
|
|
}
|
|
}
|
|
}
|
|
if (Params.HasServerCookedTargets && (TargetMask & ProjectBuildTargets.ServerCooked) == ProjectBuildTargets.ServerCooked)
|
|
{
|
|
foreach (var BuildConfig in Params.ServerConfigsToBuild)
|
|
{
|
|
foreach (var ServerPlatform in Params.ServerTargetPlatforms)
|
|
{
|
|
CrashReportPlatforms.Add(ServerPlatform);
|
|
Agenda.AddTargets(Params.ServerCookedTargets.ToArray(), ServerPlatform, BuildConfig, Params.CodeBasedUprojectPath, InAddArgs: ScriptPluginArgs + " -remoteini=\"" + Params.RawProjectPath.Directory.FullName + "\"");
|
|
}
|
|
}
|
|
}
|
|
if (!Params.NoBootstrapExe && !Params.Rocket && (TargetMask & ProjectBuildTargets.Bootstrap) == ProjectBuildTargets.Bootstrap)
|
|
{
|
|
UnrealBuildTool.UnrealTargetPlatform[] BootstrapPackagedGamePlatforms = { UnrealBuildTool.UnrealTargetPlatform.Win32, UnrealBuildTool.UnrealTargetPlatform.Win64 };
|
|
foreach(UnrealBuildTool.UnrealTargetPlatform BootstrapPackagedGamePlatform in BootstrapPackagedGamePlatforms)
|
|
{
|
|
if(Params.ClientTargetPlatforms.Contains(BootstrapPackagedGamePlatform))
|
|
{
|
|
Agenda.AddTarget("BootstrapPackagedGame", BootstrapPackagedGamePlatform, UnrealBuildTool.UnrealTargetConfiguration.Shipping);
|
|
}
|
|
}
|
|
}
|
|
if (Params.CrashReporter && !Params.Rocket && (TargetMask & ProjectBuildTargets.CrashReporter) == ProjectBuildTargets.CrashReporter)
|
|
{
|
|
foreach (var CrashReportPlatform in CrashReportPlatforms)
|
|
{
|
|
if (UnrealBuildTool.UnrealBuildTool.PlatformSupportsCrashReporter(CrashReportPlatform))
|
|
{
|
|
Agenda.AddTarget("CrashReportClient", CrashReportPlatform, UnrealTargetConfiguration.Shipping);
|
|
}
|
|
}
|
|
}
|
|
if (Params.HasProgramTargets && !Params.Rocket && (TargetMask & ProjectBuildTargets.Programs) == ProjectBuildTargets.Programs)
|
|
{
|
|
foreach (var BuildConfig in Params.ClientConfigsToBuild)
|
|
{
|
|
foreach (var ClientPlatform in Params.ClientTargetPlatforms)
|
|
{
|
|
Agenda.AddTargets(Params.ProgramTargets.ToArray(), ClientPlatform, BuildConfig, Params.CodeBasedUprojectPath);
|
|
}
|
|
}
|
|
}
|
|
UE4Build.Build(Agenda, InDeleteBuildProducts: Params.Clean, InUpdateVersionFiles: WorkingCL > 0);
|
|
|
|
if (WorkingCL > 0) // only move UAT files if we intend to check in some build products
|
|
{
|
|
UE4Build.AddUATFilesToBuildProducts();
|
|
}
|
|
UE4Build.CheckBuildProducts(UE4Build.BuildProductFiles);
|
|
|
|
if (WorkingCL > 0)
|
|
{
|
|
// Sign everything we built
|
|
CodeSign.SignMultipleIfEXEOrDLL(Command, UE4Build.BuildProductFiles);
|
|
|
|
// Open files for add or edit
|
|
UE4Build.AddBuildProductsToChangelist(WorkingCL, UE4Build.BuildProductFiles);
|
|
}
|
|
|
|
Log("********** BUILD COMMAND COMPLETED **********");
|
|
}
|
|
|
|
#endregion
|
|
}
|