UnrealBuildTool: Fix issue preventing PGO from running against a target without a project

#rnx

[CL 28643719 by joe kirchoff in ue5-main branch]
This commit is contained in:
joe kirchoff
2023-10-10 18:40:01 -04:00
parent 164923fd56
commit a204c6ad35
3 changed files with 5 additions and 5 deletions

View File

@@ -499,12 +499,12 @@ namespace UnrealBuildTool
CompileEnvironment.Definitions.Add("RHI_RAYTRACING=1");
}
if ((Target.bPGOOptimize || Target.bPGOProfile) && Target.ProjectFile != null)
if (Target.bPGOOptimize || Target.bPGOProfile)
{
Logger.LogInformation("PGO {PgoType} build", Target.bPGOOptimize ? "optimize" : "profile");
if (Target.bPGOOptimize)
{
CompileEnvironment.PGODirectory = DirectoryReference.Combine(Target.ProjectFile.Directory, "Platforms", "Android", "Build", "PGO").FullName;
CompileEnvironment.PGODirectory = DirectoryReference.Combine(Target.ProjectFile?.Directory ?? Unreal.WritableEngineDirectory, "Platforms", "Android", "Build", "PGO").FullName;
CompileEnvironment.PGOFilenamePrefix = String.Format("{0}-Android", Target.Name);
LinkEnvironment.PGODirectory = CompileEnvironment.PGODirectory;

View File

@@ -494,7 +494,7 @@ namespace UnrealBuildTool
if (CompileEnvironment.bPGOOptimize)
{
DirectoryReference BaseDir = Unreal.EngineDirectory;
DirectoryReference BaseDir = Unreal.WritableEngineDirectory;
if (Target.ProjectFile != null)
{
BaseDir = DirectoryReference.FromFile(Target.ProjectFile);

View File

@@ -1655,12 +1655,12 @@ namespace UnrealBuildTool
LinkEnvironment.ModuleDefinitionFile = Target.WindowsPlatform.ModuleDefinitionFile;
if ((Target.bPGOOptimize || Target.bPGOProfile) && Target.ProjectFile != null)
if (Target.bPGOOptimize || Target.bPGOProfile)
{
// Win64 PGO folder is Windows, the rest match the platform name
string PGOPlatform = Target.Platform == UnrealTargetPlatform.Win64 ? "Windows" : Target.Platform.ToString();
CompileEnvironment.PGODirectory = DirectoryReference.Combine(Target.ProjectFile.Directory, "Platforms", PGOPlatform, "Build", "PGO").FullName;
CompileEnvironment.PGODirectory = DirectoryReference.Combine(Target.ProjectFile?.Directory ?? Unreal.WritableEngineDirectory, "Platforms", PGOPlatform, "Build", "PGO").FullName;
CompileEnvironment.PGOFilenamePrefix = String.Format("{0}-{1}-{2}", Target.Name, Target.Platform, Target.Configuration);
LinkEnvironment.PGODirectory = CompileEnvironment.PGODirectory;