We’re running a CI process to package builds when we push, and it’s been working fine in 5.3 on Windows, Mac, and Linux but since we updated to 5.4 we’re having issue with the Linux build only. From the logs, it appears to be using code within a #if WITH_EDITOR block that it’s not on the other platforms/version. We didn’t change the code when we updated to 5.4, and there’s no platform specific code in the file either. I’m also able to package for Linux on Windows within the editor without issue.
Here’s the command we’re running on Linux to package: ./RunUAT.sh BuildCookRun -project="$CI_PROJECT_DIR/DUST.uproject" -noP4 -platform=Linux -clientconfig=Development -serverconfig=Development -clean -build -cook -allmaps -stage -pak -archive -archivedirectory="$CI_PROJECT_DIR/archive"
In file included from /home/gitlab-runner/builds/kbmL5g8yP/0/xr_pit_lab/dust/Plugins/ClipmapUnrealTerrain/Intermediate/Build/Linux/x64/UnrealEditor/Development/ClipmapUnrealTerrain/Module.ClipmapUnrealTerrain.cpp:25:
/home/gitlab-runner/builds/kbmL5g8yP/0/xr_pit_lab/dust/Plugins/ClipmapUnrealTerrain/Source/ClipmapUnrealTerrain/Private/CUTPlanetRenderer.cpp:511:24: error: member access into incomplete type 'FEditorViewportClient'
camForward = client->GetViewRotation().Vector();
I ended up adding a && !PLATFORM_LINUX to my #if statement and that fixed the build. It’s not the best solution since the code in there won’t run in a linux editor now, but we don’t use the linux editor for any development.