Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 4677883

#rb
#rnx

[CL 4678256 by Marc Audy in Dev-Framework branch]
This commit is contained in:
Marc Audy
2019-01-03 09:32:53 -05:00
2430 changed files with 16109 additions and 8871 deletions

View File

@@ -191,6 +191,77 @@ public partial class Project : CommandUtils
LogLog("End Deployment Context **************");
}
private static string GetInternationalizationPreset(ProjectParams Params, ConfigHierarchy PlatformGameConfig, bool bMustExist = true)
{
// Initialize internationalization preset.
string InternationalizationPreset = Params.InternationalizationPreset;
// Use configuration if otherwise lacking an internationalization preset.
if (string.IsNullOrEmpty(InternationalizationPreset))
{
if (PlatformGameConfig != null)
{
PlatformGameConfig.GetString("/Script/UnrealEd.ProjectPackagingSettings", "InternationalizationPreset", out InternationalizationPreset);
}
}
// Error if no preset has been provided.
if (bMustExist && string.IsNullOrEmpty(InternationalizationPreset))
{
throw new AutomationException("No internationalization preset was specified for packaging. This will lead to fatal errors when launching. Specify preset via commandline (-I18NPreset=) or project packaging settings (InternationalizationPreset).");
}
return InternationalizationPreset;
}
private static List<string> GetCulturesToStage(ProjectParams Params, ConfigHierarchy PlatformGameConfig, bool bMustExist = true)
{
// Initialize cultures to stage.
List<string> CulturesToStage = null;
// Use parameters if provided.
if (Params.CulturesToCook != null && Params.CulturesToCook.Count > 0)
{
CulturesToStage = Params.CulturesToCook;
}
// Use configuration if otherwise lacking cultures to stage.
if (CulturesToStage == null || CulturesToStage.Count == 0)
{
if (PlatformGameConfig != null)
{
PlatformGameConfig.GetArray("/Script/UnrealEd.ProjectPackagingSettings", "CulturesToStage", out CulturesToStage);
}
}
// Error if no cultures have been provided.
if (bMustExist && (CulturesToStage == null || CulturesToStage.Count == 0))
{
throw new AutomationException("No cultures were specified for cooking and packaging. This will lead to fatal errors when launching. Specify culture codes via commandline (-CookCultures=) or using project packaging settings (+CulturesToStage).");
}
return CulturesToStage;
}
private static void StageLocalizationDataForPlugin(DeploymentContext SC, List<string> CulturesToStage, FileReference Plugin)
{
PluginDescriptor Descriptor = PluginDescriptor.FromFile(Plugin);
if (Descriptor.LocalizationTargets != null)
{
foreach (LocalizationTargetDescriptor LocalizationTarget in Descriptor.LocalizationTargets)
{
if (LocalizationTarget.LoadingPolicy == LocalizationTargetDescriptorLoadingPolicy.Always || LocalizationTarget.LoadingPolicy == LocalizationTargetDescriptorLoadingPolicy.Game)
{
DirectoryReference PluginLocTargetDirectory = DirectoryReference.Combine(Plugin.Directory, "Content", "Localization", LocalizationTarget.Name);
if (!SC.BlacklistLocalizationTargets.Contains(LocalizationTarget.Name) && DirectoryReference.Exists(PluginLocTargetDirectory))
{
StageLocalizationDataForTarget(SC, CulturesToStage, PluginLocTargetDirectory);
}
}
}
}
}
private static void StageLocalizationDataForTarget(DeploymentContext SC, List<string> CulturesToStage, DirectoryReference SourceDirectory)
{
foreach (FileReference SourceFile in DirectoryReference.EnumerateFiles(SourceDirectory, "*.locmeta"))
@@ -291,6 +362,8 @@ public partial class Project : CommandUtils
LogInformation("Creating Staging Manifest...");
ConfigHierarchy PlatformGameConfig = ConfigCache.ReadHierarchy(ConfigHierarchyType.Game, DirectoryReference.FromFile(Params.RawProjectPath), SC.StageTargetPlatform.IniPlatformType);
if (Params.HasIterateSharedCookedBuild)
{
// can't do shared cooked builds with DLC that's madness!!
@@ -316,6 +389,13 @@ public partial class Project : CommandUtils
{
SC.StageFile(StagedFileType.NonUFS, Params.DLCFile);
}
// Stage DLC localization targets
List<string> CulturesToStage = GetCulturesToStage(Params, PlatformGameConfig, false);
if (CulturesToStage != null)
{
StageLocalizationDataForPlugin(SC, CulturesToStage, Params.DLCFile);
}
}
// Put the binaries into the staged dir
@@ -439,54 +519,16 @@ public partial class Project : CommandUtils
SC.StageFile(StagedFileType.SystemNonUFS, CommandLineFile, StagedCommandLineFile);
}
ConfigHierarchy PlatformGameConfig = ConfigCache.ReadHierarchy(ConfigHierarchyType.Game, DirectoryReference.FromFile(Params.RawProjectPath), SC.StageTargetPlatform.IniPlatformType);
DirectoryReference ProjectContentRoot = DirectoryReference.Combine(SC.ProjectRoot, "Content");
StagedDirectoryReference StageContentRoot = StagedDirectoryReference.Combine(SC.RelativeProjectRootForStage, "Content");
if (!Params.CookOnTheFly && !Params.SkipCookOnTheFly) // only stage the UFS files if we are not using cook on the fly
{
// Initialize internationalization preset.
string InternationalizationPreset = Params.InternationalizationPreset;
// Use configuration if otherwise lacking an internationalization preset.
if (string.IsNullOrEmpty(InternationalizationPreset))
{
if (PlatformGameConfig != null)
{
PlatformGameConfig.GetString("/Script/UnrealEd.ProjectPackagingSettings", "InternationalizationPreset", out InternationalizationPreset);
}
}
// Error if no preset has been provided.
if (string.IsNullOrEmpty(InternationalizationPreset))
{
throw new AutomationException("No internationalization preset was specified for packaging. This will lead to fatal errors when launching. Specify preset via commandline (-I18NPreset=) or project packaging settings (InternationalizationPreset).");
}
string InternationalizationPreset = GetInternationalizationPreset(Params, PlatformGameConfig);
// Initialize cultures to stage.
List<string> CulturesToStage = null;
// Use parameters if provided.
if (Params.CulturesToCook != null && Params.CulturesToCook.Count > 0)
{
CulturesToStage = Params.CulturesToCook;
}
// Use configuration if otherwise lacking cultures to stage.
if (CulturesToStage == null || CulturesToStage.Count == 0)
{
if (PlatformGameConfig != null)
{
PlatformGameConfig.GetArray("/Script/UnrealEd.ProjectPackagingSettings", "CulturesToStage", out CulturesToStage);
}
}
// Error if no cultures have been provided.
if (CulturesToStage == null || CulturesToStage.Count == 0)
{
throw new AutomationException("No cultures were specified for cooking and packaging. This will lead to fatal errors when launching. Specify culture codes via commandline (-CookCultures=) or using project packaging settings (+CulturesToStage).");
}
List<string> CulturesToStage = GetCulturesToStage(Params, PlatformGameConfig);
// Stage ICU internationalization data from Engine.
SC.StageFiles(StagedFileType.UFS, DirectoryReference.Combine(SC.LocalRoot, "Engine", "Content", "Internationalization", InternationalizationPreset), StageFilesSearch.AllDirectories, new StagedDirectoryReference("Engine/Content/Internationalization"));
@@ -494,7 +536,10 @@ public partial class Project : CommandUtils
// Engine ufs (content)
StageConfigFiles(SC, DirectoryReference.Combine(SC.LocalRoot, "Engine", "Config"));
StageLocalizationDataForTarget(SC, CulturesToStage, DirectoryReference.Combine(SC.LocalRoot, "Engine", "Content", "Localization", "Engine"));
if (!SC.BlacklistLocalizationTargets.Contains("Engine"))
{
StageLocalizationDataForTarget(SC, CulturesToStage, DirectoryReference.Combine(SC.LocalRoot, "Engine", "Content", "Localization", "Engine"));
}
// Game ufs (content)
SC.StageFile(StagedFileType.UFS, SC.RawProjectPath);
@@ -523,30 +568,16 @@ public partial class Project : CommandUtils
{
if (!SC.BlacklistLocalizationTargets.Contains(ProjectLocTargetDirectory.MakeRelativeTo(ProjectLocRootDirectory)))
{
StageLocalizationDataForTarget(SC, CulturesToStage, ProjectLocTargetDirectory);
StageLocalizationDataForTarget(SC, CulturesToStage, ProjectLocTargetDirectory);
}
}
}
}
}
// Stage all plugin localization targets
foreach (KeyValuePair<StagedFileReference, FileReference> StagedPlugin in StagedPlugins)
{
PluginDescriptor Descriptor = PluginDescriptor.FromFile(StagedPlugin.Value);
if (Descriptor.LocalizationTargets != null)
{
foreach (LocalizationTargetDescriptor LocalizationTarget in Descriptor.LocalizationTargets)
{
if (LocalizationTarget.LoadingPolicy == LocalizationTargetDescriptorLoadingPolicy.Always || LocalizationTarget.LoadingPolicy == LocalizationTargetDescriptorLoadingPolicy.Game)
{
DirectoryReference PluginLocTargetDirectory = DirectoryReference.Combine(StagedPlugin.Value.Directory, "Content", "Localization", LocalizationTarget.Name);
if (DirectoryReference.Exists(PluginLocTargetDirectory))
{
StageLocalizationDataForTarget(SC, CulturesToStage, PluginLocTargetDirectory);
}
}
}
}
StageLocalizationDataForPlugin(SC, CulturesToStage, StagedPlugin.Value);
}
// Stage any additional UFS and NonUFS paths specified in the project ini files; these dirs are relative to the game content directory

View File

@@ -17,7 +17,7 @@ using Tools.DotNETCommon;
[Help("UEProjectName", "Optional name of the project we're gathering for (should match its .uproject file, eg QAGame).")]
[Help("LocalizationProjectNames", "Comma separated list of the projects to gather text from.")]
[Help("LocalizationBranch", "Optional suffix to use when uploading the new data to the localization provider.")]
[Help("LocalizationProvider", "Optional localization provide override (default is OneSky).")]
[Help("LocalizationProvider", "Optional localization provide override.")]
[Help("LocalizationSteps", "Optional comma separated list of localization steps to perform [Download, Gather, Import, Export, Compile, GenerateReports, Upload] (default is all). Only valid for projects using a modular config.")]
[Help("IncludePlugins", "Optional flag to include plugins from within the given UEProjectDirectory as part of the gather. This may optionally specify a comma separated list of the specific plugins to gather (otherwise all plugins will be gathered).")]
[Help("ExcludePlugins", "Optional comma separated list of plugins to exclude from the gather.")]
@@ -75,7 +75,7 @@ class Localise : BuildCommand
var LocalizationProviderName = ParseParamValue("LocalizationProvider");
if (LocalizationProviderName == null)
{
LocalizationProviderName = "OneSky";
LocalizationProviderName = "";
}
var LocalizationSteps = new List<string>();

View File

@@ -12,7 +12,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HTML5LaunchHelper")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyCopyright("Copyright 1998-2019 Epic Games, Inc. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@@ -1,4 +1,4 @@
Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
Maya Live Link Plugin

View File

@@ -15,7 +15,7 @@
const char* Help =
"\
WebRTCProxy\n\
Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.\n\
Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.\n\
\n\
Parameters:\n\
\n\

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
@echo off
pushd %~dp0

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
pushd %~dp0
npm install

View File

@@ -1,4 +1,4 @@
/*Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.*/
/*Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.*/
:root {
/*Using colour scheme https://color.adobe.com/TD-Colors---Option-3-color-theme-10394433/*/

View File

@@ -1,4 +1,4 @@
/*Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.*/
/*Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.*/
:root {
/*Using colour scheme https://color.adobe.com/TD-Colors---Option-3-color-theme-10394433/*/

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
@echo off
pushd %~dp0

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
@echo off
pushd %~dp0

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
@echo off
pushd %~dp0

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
@echo off
pushd %~dp0

View File

@@ -1,4 +1,4 @@
:: Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
:: Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
pushd %~dp0
npm install

View File

@@ -286,7 +286,9 @@ namespace UnrealBuildTool
// [RCL] 2018-05-02: disabling XGE even during a native build because the support is not ready and you can have mysterious build failures when ib_console is installed.
// [RCL] 2018-07-10: enabling XGE for Windows to see if the crash from 2016 still persists. Please disable if you see spurious build errors that don't repro without XGE
// [bschaefer] 2018-08-24: disabling XGE due to a bug where XGE seems to be lower casing folders names that are headers ie. misc/Header.h vs Misc/Header.h
return false;//BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Win64;
// [bschaefer] 2018-10-04: enabling XGE as an update in xgConsole seems to have fixed it for me
// [bschaefer] 2018-12-17: disable XGE again, as the same issue before seems to still be happening but intermittently
return false; //BuildHostPlatform.Current.Platform == UnrealTargetPlatform.Win64;
}
public override bool CanUseParallelExecutor()

View File

@@ -424,6 +424,19 @@ namespace UnrealBuildTool
Arguments.Append("\"");
}
List<string> FrameworksSearchPaths = new List<string>();
foreach (UEBuildFramework Framework in CompileEnvironment.AdditionalFrameworks)
{
string FrameworkPath = Path.GetDirectoryName(Path.GetFullPath(Framework.FrameworkName));
if (!FrameworksSearchPaths.Contains(FrameworkPath))
{
Arguments.Append(" -F \"");
Arguments.Append(FrameworkPath);
Arguments.Append("\"");
FrameworksSearchPaths.Add(FrameworkPath);
}
}
CPPOutput Result = new CPPOutput();
// Create a compile action for each source file.
foreach (FileItem SourceFile in InputFiles)
@@ -1352,7 +1365,7 @@ namespace UnrealBuildTool
BuildProducts.Add(FileReference.Combine(BundleContentsDirectory, Resource.BundleContentsSubdir, ResourceFile.Substring(Path.GetDirectoryName(Resource.ResourcePath).Length + 1)), BuildProductType.RequiredResource);
}
}
else
else if (BundleContentsDirectory != null)
{
BuildProducts.Add(FileReference.Combine(BundleContentsDirectory, Resource.BundleContentsSubdir, Path.GetFileName(Resource.ResourcePath)), BuildProductType.RequiredResource);
}

View File

@@ -384,7 +384,12 @@ namespace UnrealBuildTool
/// <summary>
/// The default compiler version to be used, if installed.
/// </summary>
static readonly VersionNumber DefaultToolChainVersion = VersionNumber.Parse("14.13.26128");
static readonly VersionNumber DefaultClangToolChainVersion = VersionNumber.Parse("6.0.0");
/// <summary>
/// The default compiler version to be used, if installed.
/// </summary>
static readonly VersionNumber DefaultVisualStudioToolChainVersion = VersionNumber.Parse("14.13.26128");
/// <summary>
/// The default Windows SDK version to be used, if installed.
@@ -912,6 +917,16 @@ namespace UnrealBuildTool
}
else
{
VersionNumber DefaultToolChainVersion;
if(Compiler == WindowsCompiler.Clang)
{
DefaultToolChainVersion = DefaultClangToolChainVersion;
}
else
{
DefaultToolChainVersion = DefaultVisualStudioToolChainVersion;
}
if(ToolChainVersionToDir.ContainsKey(DefaultToolChainVersion))
{
ToolChainVersion = DefaultToolChainVersion;

View File

@@ -11,7 +11,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("InstallerCustomAction")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyCopyright("Copyright 1998-2019 Epic Games, Inc. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@@ -12,7 +12,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Epic Games")]
[assembly: AssemblyProduct("DumpHitchParser")]
[assembly: AssemblyCopyright("Copyright © Epic Games 2017-2018")]
[assembly: AssemblyCopyright("Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@@ -12,7 +12,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("UE4TemplateProject")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyCopyright("Copyright 1998-2019 Epic Games, Inc. All rights reserved.")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Some files were not shown because too many files have changed in this diff Show More