[Backout] - CL26624440

[FYI] joe.kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Correctly mark extra dynamic libraries, executables, map (for Microsoft platforms) and symbol files in the build output list as their correct BuildProductType, rather than the generic RequiredResource

Reported via UDN

#rb Josh.Adams

[CL 26651146 by mickael gilabert in 5.3 branch]
This commit is contained in:
mickael gilabert
2023-07-27 15:36:29 -04:00
parent 611b316f55
commit 5824476a71

View File

@@ -2628,37 +2628,7 @@ namespace UnrealBuildTool
Binary.GetBuildProducts(Rules, TargetToolChain, BinaryBuildProducts, GlobalLinkEnvironment.bCreateDebugInfo);
BuildProducts.AddRange(BinaryBuildProducts);
}
{
UEBuildPlatform BuildPlatform = UEBuildPlatform.GetBuildPlatform(Platform);
string DynamicLinkLibraryExt = BuildPlatform.GetBinaryExtension(UEBuildBinaryType.DynamicLinkLibrary);
string ExecutableExt = BuildPlatform.GetBinaryExtension(UEBuildBinaryType.Executable);
HashSet<string> DebugInfoExtensions = new(BuildPlatform.GetDebugInfoExtensions(Rules, UEBuildBinaryType.DynamicLinkLibrary)
.Concat(BuildPlatform.GetDebugInfoExtensions(Rules, UEBuildBinaryType.Executable)));
HashSet<string> MapInfoExtensions = Platform.IsInGroup(UnrealPlatformGroup.Microsoft) ? new(new string[]{ ".map" , ".objpaths" }) : new();
BuildProducts.AddRange(RuntimeDependencyTargetFileToSourceFile.Select(x =>
{
string Ext = x.Key.GetExtension();
BuildProductType ProductType = BuildProductType.RequiredResource;
if (DynamicLinkLibraryExt.Equals(Ext, StringComparison.OrdinalIgnoreCase))
{
ProductType = BuildProductType.DynamicLibrary;
}
else if (ExecutableExt.Equals(Ext, StringComparison.OrdinalIgnoreCase))
{
ProductType = BuildProductType.Executable;
}
else if (DebugInfoExtensions.Contains(Ext, StringComparer.OrdinalIgnoreCase))
{
ProductType = BuildProductType.SymbolFile;
}
else if (MapInfoExtensions.Contains(Ext, StringComparer.OrdinalIgnoreCase))
{
ProductType = BuildProductType.MapFile;
}
return new KeyValuePair<FileReference, BuildProductType>(x.Key, ProductType);
}));
}
BuildProducts.AddRange(RuntimeDependencyTargetFileToSourceFile.Select(x => new KeyValuePair<FileReference, BuildProductType>(x.Key, BuildProductType.RequiredResource)));
// Remove any installed build products that don't exist. They may be part of an optional install.
if (Unreal.IsEngineInstalled())