Android is officially supported by Qt through their qmake tool and QtAndroidExtras module. The application is compiled as a dynamic library that is loaded by a Java wrapper.
I managed to compile the Qt client and connect to a remote game from an Android device. Currently, text input and basic interaction are working, including scrolling the map. You better not use a smartphone though. Here's a mandatory screenshot:
My modified version of freeciv can be found at https://github.com/lmoureaux/freeciv/co ... ndroid-2.6. Most changes are related to the way tilesets are loaded (apk don't work like traditional Linux packages) and the build system (to build the client as a shared object).
Here's my configure command (for an x86 target):
Code: Select all
export "CPP=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/i868-linux-android21-clang -E"
./configure --enable-client=qt \
You need to build Qt from source. Download a tarball from the website and follow the instructions. You need only QtBase and QtAndroidExtras. Use of a recent Qt release is recommended (I use 5.13.1).
Instructions to make the apk are provided in the repo under bootstrap/android/make-apk.sh; this will eventually be integrated to the build system.
[edit 2019-08-20] Added some required env vars
[edit 2019-09-19] Updated configure command for cross-compilation; scrolling the map works; added Qt instructions