Android build

Preparation of building environment
Before you start building OpenMW on Android you have to do few steps of preparation: Openmw building without errors only on crystax ndk 10.1.0 version.
 * 1) Download   Crystax NDK
 * 1) Download Cmake for Android (it will be used for OpenMW and its dependencies compilation)
 * 2) Download java
 * 3) Download all OpenMW dependencies, ie:
 * 4) * OSG
 * 5) * Openal
 * 6) * boost integrated in crystax ndk for all android platforms
 * 7) * bullet
 * 8) * Sdl2
 * 9) * ffmpeg 1.26
 * 10) * mygui
 * 11) * zlib integrated in android

Prebuilt openmw dependencies for armv7 arch https://drive.google.com/file/d/0B5mOME9qjLFuckRrSWd6ZTMtZGM/view?usp=sharing

Prebuilt openmw dependencies for armv8 arch https://drive.google.com/file/d/0B5mOME9qjLFuVkpRc2FWb3h1SW8/view?usp=sharing

Compilation of OpenMW dependencies
Then you should add PATH for crystax ndk and google sdk.

Building OSG
Next you must build OSG from source. I build osg with this tutorials.

http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/43-building-openscenegraph-for-android-3-0-2

http://www.openscenegraph.org/index.php/documentation/platform-specifics/android/178-building-openscenegraph-for-android-3-4

You must build osg with osgdb_dds osgdb_bmp, osgdb_tga ,osgdb_gif ,osgdb_jpeg, osgdb_png plugins and GLES1 profile !

Building MyGUI
Then you must build mygui with 1 rendering system

Building Bullet
Then you should build bullet2. You can use cmake android toolchain for it

Building OpenAL
Then you must build openal. http://repo.or.cz/w/openal-soft/android.git

Building Qt (optional)
Note: Qt is only used by the launcher and OpenMW-CS, and can be skipped. To build Qt 4.8 for android: http://necessitas.kde.org/ I used this tutorial for building: https://community.kde.org/Necessitas/CompileQtFramework

Building FFmpeg
Then you must build ffmpeg. Important! You must use ffmpeg 1.26: http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

my script for build

Building SDL2
Then you must build SDL2: https://www.libsdl.org/hg.php I used SDL2 mercurial latest source.

Building OpenMW
Then I started to build OpenMW. I copied all libraries  in one folder. For example AndroidDependencies, and build openmw like this

-O2 or -Os optimal optimizations flags for building. Without this flags fps will be very low

After builing openmw library, you must copy all the libraries to libs folder in the java project folder

For example : /eclipse-project/app/src/main/jniLibs/armeabi-v7a

Then you must import this java project in android-studio, which included with the android sdk.

Also you need to import the configuration files from desktop openmw version.

Building Gotchas
CMake Error at /home/bcurtis/workspace/OpenMW/android/android-cmake/android.toolchain.cmake:429 (math): math cannot parse the expression: "+0": syntax error, unexpected exp_PLUS, expecting exp_OPENPARENT or exp_NUMBER (1) Call Stack (most recent call first): /home/bcurtis/workspace/OpenMW/android/build/CMakeFiles/3.2.2/CMakeSystem.cmake:6 (include) CMakeLists.txt:1 (project)

Don't panic, this can be worked around with the removal (or comment '#') of the non-critical line in the file android-cmake/android.toolchain.cmake on line 429.