Targeting Linux AArch64 : InputCoreTypes.generated.h not found

Hi all,

I am trying to compile a project for Linux aarch64. I followed the step that could be found in another post except I am targeting aarch64 instead of arm.

I have installed the cross toolchain “v11 clang 5.0.0-based - for UE4 4.19” and I am using UE 4.19 binary distribution from Epic Launcher.

So my modified UE_4.19\Engine\Source\Programs\UnrealBuildTool\Platform\Linux\UEBuildLinux.cs, looks like :

// FIXME: for now switching between architectures is hard-coded
//public const string DefaultArchitecture = "x86_64-unknown-linux-gnu";
//public const string DefaultArchitecture = "arm-unknown-linux-gnueabihf";
public const string DefaultArchitecture = "aarch64-unknown-linux-gnueabi";

And Config\DefaultEngine.ini from my project contains the following lines :

[/Script/LinuxTargetPlatform.LinuxTargetSettings]
TargetArchitecture=AArch64UnknownLinuxGnueabi

I regenerate the Visual Studio files, and when building the solution, I got the following error :

3>[1/12] Compile SharedPCH.Engine.h
3>In file included from C:/Program Files/Epic Games/UE_4.19/Engine/Intermediate/Build/Linux/93821A52/UE4Editor/Development/Engine/SharedPCH.Engine.h:140:
3>In file included from C:\Program Files\Epic Games\UE_4.19\Engine\Source\Runtime\Engine\Public\EngineSharedPCH.h:326:
3>Runtime/InputCore/Classes\InputCoreTypes.h(10,10): fatal error : 'InputCoreTypes.generated.h' file not found

Searching for the problematic include file in the binary distribution, it seems that there is only for ONE Linux architecture :

$ find Engine -name "InputCoreTypes.gener*"
Engine/Intermediate/Build/Android/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/HTML5/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/IOS/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/Linux/B4D820EA/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/TVOS/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/Win32/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/Win64/UE4/Inc/InputCore/InputCoreTypes.generated.h
Engine/Intermediate/Build/Win64/UE4Editor/Inc/InputCore/InputCoreTypes.generated.h

So, the only solution is to build UE from the source as Binary distribution is not “officially” supporting AArch64 ?

Regards

Recompiling the Editor from the source and exporting the Linux AArch64 project from there solves the problem…