[Guide] Building GameKit for arm64 (Unreal)

0

Prerequisites:

Changes to build steps found in README.MD:

  1. In all build steps where ANDROID_ABI=armeabi-v7a appears change it to ANDROID_ABI=arm64-v8a
  2. In all build steps where ANDROID_API_LEVEL=24 appears change it to ANDROID_API_LEVEL=X where X is the API level you want to build for (this step is only needed if you want to build for another API level).
  3. For BOOST build, replace user-config.jam with the following:
import os ;
local NDKRoot = [ os.environ NDKROOT ] ;
local ClangBin = [ os.environ CLANGPATH ] ;
local AndroidApiLevel = [ os.environ ANDROID_API_LEVEL ] ;
using clang : arm64 : $(ClangBin)/aarch64-linux-android21-clang++.cmd : 
<cxxflags>-std=c++11
<archiver>$(NDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar
<ranlib>$(NDKRoot)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ranlib
 ;
  1. And build with ./b2 toolset=clang-arm64 target-os=android architecture=arm address-model=64 --without-python threading=multi link=static --layout=tagged variant=debug,release
  2. In GameKit C++ codebase, open scripts\Android\regenerate_android_projects.bat and set ANDROID_ABI=arm64-v8a, DBoost_ARCHITECTURE="-a64" and ANDROID_API_LEVEL=X (API level change is only needed if you want to build for a different level)
  3. Rebuild GameKit C++ with python scripts\aws_gamekit_cpp_build.py Android Release and copy the libraries to the Unreal plugin directory with python scripts\refresh_plugin.py —platform Android Release —unreal_plugin_path [Path to Unreal Project]\Plugins\AwsGameKit
  4. Modify [Path to Unreal Project]\Plugins\AwsGameKit\Source\AwsGameKitCore\AwsGameKitCore.Build.cs to point to 64 bit versions of Boost libraries by changing lines 166-167 to
libs.Add("libboost_filesystem-mt-d-a64.a");
libs.Add("libboost_iostreams-mt-d-a64.a");

and 172-173 to

libs.Add("libboost_filesystem-mt-a64.a");
libs.Add("libboost_iostreams-mt-a64.a");
  1. In Unreal’s Project Settings enable Support for arm64 by navigating to Platforms/Android and clicking on “Support arm64 (aka arm64-v8a)
  2. Package your game project for Android
  • The cmake command for the AWS SDK build will also need the following added to it: -DANDROID_ABI=arm64-v8a

asked 3 months ago52 views
No Answers

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions