You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
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:
@@ -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
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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("")]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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\
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/*/
|
||||
|
||||
@@ -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/*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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("")]
|
||||
|
||||
|
||||
@@ -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("")]
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user