Code within #if WITH_EDITOR running during package on 5.4 and Linux

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"

1 Like

This is the code it’s trying to compile in the LInux build:

#if WITH_EDITOR
			else if (GEditor && GEditor->GetActiveViewport() && GEditor->GetActiveViewport()->GetClient()) {
				FEditorViewportClient* client = (FEditorViewportClient*)GEditor->GetActiveViewport()->GetClient();
				camForward = client->GetViewRotation().Vector();
				camPos = client->GetViewLocation();
			}
#endif

And the error:

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();

We’re using Unreal 5.4.1 on the build machine.

Hi, did you figure out how to resolve this?

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.