Description

Using BuildGraph to create a local binary build of the engine fails if the BuildConfiguration.xml file has bUseUnityBuild and bUsePCHFiles both set to false. The build fails due to some missing Json includes.

Steps to Reproduce
  1. Open the BuildConfiguration.xml file and set it to not use unity build or PCH files.
    <?xml version="1.0" encoding="utf-8" ?>
     <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
         <BuildConfiguration>
             <bUseUnityBuild>false</bUseUnityBuild>
             <bUsePCHFiles>false</bUseSharedPCHs>
         </BuildConfiguration>
     </Configuration>
    
  2. Navigate to the Engine\Build\Batchfiles folder of your Engine installation and open a command prompt window there.
  3. Run the following command: runuat.bat BuildGraph -Script=Engine\Build\InstalledEngineBuild.xml -target="Build Tools CS; Compile UnrealHeaderTool Win64; Compile UE4Editor Win64; Compile UE4Game Win64" -verbose=VeryVerbose -Clean -p4 -UseLocalBuildStorage -set:WithDDC=false -set:HostPlatformOnly=true -ForceNonUnity -Licensee -Compile

RESULT:
The build will fail with several undeclared identifier errors (see attached log).

EXPECTED:
The build completes successfully.

WORKAROUND:
Adding the following includes to Engine\Plugins\Online\OnlineSubsystem\Source\Private\OnlineSubsystemImpl.cpp allows the build to complete successfully:

#include "Dom/JsonObject.h"
#include "Dom/JsonValue.h"
#include "Serialization/JsonReader.h"
#include "Serialization/JsonSerializer.h"

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-46444 in the post.

0
Login to Vote

Fixed
ComponentOnline - OSS
Affects Versions4.16.1
Target Fix4.18
Fix Commit3483258
Main Commit3483258
Release Commit3643070
CreatedJun 23, 2017
ResolvedJul 7, 2017
UpdatedApr 27, 2018