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 2972003 on 2016/05/10 by Maciej.Mroz
Fixed build process for nativized Orion. When UBT commandline includes "-2015" switch, the Orion will be compiled with VS2015.
Change 2972004 on 2016/05/10 by Maciej.Mroz
Removed unnecessary comment
Change 2972177 on 2016/05/10 by Maciej.Mroz
Changed check() in UEdGraphSchema_K2::CreateSubstituteNode into ensure(). It fails for BP_GMM_Trainer asser (from Orion).
Change 2972313 on 2016/05/10 by Ben.Cosh
Adding support for the blueprint profiler execution path wire heat display which includes SlateCore support for color gradient splines.
#UEBP-103 - Execution path wire heat display
#Proj BlueprintProfiler, GraphEditor, Kismet, UnrealEd, SlateCore
#CodeReview Phillip.Kavan
Change 2974089 on 2016/05/11 by Maciej.Mroz
#jira UE-30557
NaN value is replaced by 0.0f while nativization.
Change 2974447 on 2016/05/11 by Maciej.Mroz
Fixed (in nativized code) strange C4883 error in VS2015 update 2.
Change 2974601 on 2016/05/11 by Mike.Beach
Fixing FText formatting warning, coming from the GameMode menu.
#jira UE-29901
Change 2974882 on 2016/05/11 by Dan.Oconnor
Fix for changes that only affected case being dropped by the blueprint editor (only effectied pins in graph view)
#jira UE-29750
Change 2977298 on 2016/05/13 by Ryan.Rauschkolb
Fixed Spelling error in Tooltip for "Save On Compile" in BP Editor
#jira UE-20392
Change 2977299 on 2016/05/13 by Ryan.Rauschkolb
Fixed Wrong Tooltip for "Keywords" and "Compact Node" in Macro Library Derived from an Actor
#jira UE-29894
Change 2977486 on 2016/05/13 by Ryan.Rauschkolb
Fixed "Asterisk" is misspelled as "Asterix" in a Blueprint Node
#jira UE-21579
Change 2977497 on 2016/05/13 by Mike.Beach
Clearing property nodes and cached read-addresses when changing the details view object (so any queued actions will not operate on invalid properties).
#jira UE-26392
Change 2977898 on 2016/05/14 by Maciej.Mroz
BP Nativization:
Name of native enum (converted from UDE) is mangled.
Change 2977915 on 2016/05/14 by Maciej.Mroz
Fixed UKismetNodeHelperLibrary::GetValidValue
Change 2978934 on 2016/05/16 by Maciej.Mroz
Blueprint nativiation fix:
Original owner od delegate is no longer added as "header dependency". THe delegates signatures are recreated in local scope anyway.
This change solves some circularly dependent headers errors (UHT error)
Change 2978985 on 2016/05/16 by Bob.Tellez
Duplicating CL#2969542 from //Fortnite/Main
#UE4 Fixed a crash that involved renaming SCS nodes during compile on load.
#JIRA FORT-23754
Change 2979069 on 2016/05/16 by Maciej.Mroz
#jira UE-28536 Attached Project Crashes on Attempting to Play in Standalone
A too strict check (in UEdGraphSchema_K2::ArePinTypesCompatible) is replaced by an error log.
Change 2980131 on 2016/05/17 by Ben.Cosh
This changes the macro displays in the execution graph to improve the logical layout of stats.
#Jira UEBP-192 - Update the macro appearance in the execution graph
#Proj Kismet, BlueprintProfiler
Change 2980483 on 2016/05/17 by Ryan.Rauschkolb
Fixed Copy/paste of Make Array loses type and values
#jira UE-16240
Change 2980764 on 2016/05/17 by Ryan.Rauschkolb
Added "Get All Actors With Tag" node
#jira UE-28769
Change 2982120 on 2016/05/18 by Mike.Beach
Preventing a crash that can happen when a UWorld TObjectIterator hits worlds that aren't in the engine's WorldList.
Change 2983265 on 2016/05/19 by Ben.Cosh
Fix for Blueprint profiler Min/Max stats considering both exclusive and inclusive timings
#Jira UE-31004 - The blueprint profiler displays different values for min and max stats when only a single sample is present.
#Proj Kismet
#lockdown nick.penwarden
[CL 2985633 by Dan Oconnor in Main branch]
170 lines
6.1 KiB
C#
170 lines
6.1 KiB
C#
// Copyright 1998-2016 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 && !Automation.IsEngineInstalled() && (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 && !Automation.IsEngineInstalled() && (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 && !Automation.IsEngineInstalled() && (TargetMask & ProjectBuildTargets.CrashReporter) == ProjectBuildTargets.CrashReporter)
|
|
{
|
|
foreach (var CrashReportPlatform in CrashReportPlatforms)
|
|
{
|
|
if (UnrealBuildTool.UnrealBuildTool.PlatformSupportsCrashReporter(CrashReportPlatform))
|
|
{
|
|
Agenda.AddTarget("CrashReportClient", CrashReportPlatform, UnrealTargetConfiguration.Shipping);
|
|
}
|
|
}
|
|
}
|
|
if (Params.HasProgramTargets && (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
|
|
}
|