BuildAndTestProject.xml: failure when crosscompiling Linux with SymbolStore enabled.

When we use BuildAndTestProject.xml to build and upload source code symbols to SymbolServer for multiple platforms at once, and Linux is one of those platforms, build fails because Linux doesn’t implement SymbolServer support.

Uploading symbols to “TempPath\SymbolServer” …

PublishSymbols() has not been implemented for Linux

Failure publishing symbol files.

while executing task <SymStore Platform=“Linux” Files=“#Win64Lyra Compile Linux” StoreDir=“TempPath\SymbolServer/Linux” Product=“LyraGame” Change=“0” BuildVersion=“Lyra-CL-0” IndexSources=“False” />

at Engine\Build\Graph\Tasks\BuildAndTestProject.xml(721)

Our workaround, that’s enough for our use case, is to exclude Linux as in the next “UploadSymbolsNodeName” declaration in BuildAndTestProject.xml (our change in bold)

<Property Name=“UploadSymbolsNodeName” Value=“$(PreNodeNameWithPlatform)Upload Symbols $(TargetPlatform)” If=“‘$(SymbolServerPath)’ != ‘’ And !$(IsMobilePlatform) And !$(IsTargetPlatformLinux)” />

Is there anything else we should take care of?

Note that this issue is also present in UE5.6 and previous UE5 versions.

ReproSteps

  1. Get //UE5/Release-5.7/…@46459148
  2. From workspace root, run the following commandline

RunUAT.bat BuildGraph -Script=Engine\Build\Graph\Tasks\BuildAndTestProject.xml -set:ProjectName=Lyra -set:ProjectPath=Samples/Games/Lyra -set:TargetName=LyraGame -Target=“BuildAndTest Lyra” -set:TargetPlatforms=Linux+Win64 -set:TargetConfigurations=Test -set:EditorPlatformLinuxAgentOverride=Win64 -set:PublishBuilds=false -set:SkipCook=true -set:SkipPackage=true -set:SkipPublish=true -set:SkipTest=true -set:SymbolServerPath=TempPath\SymbolServer -set:EnableSymbolStore=true -buildmachine

Regards

Thanks for reporting this issue.

As far as I know there is nothing else that is required to be done on your side.

Thank you very much for the confirmation.

Hope to have this or an equivalent fix available in your official xml file.

Best regards.