mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
This had to be embedded in the build process (or better, solved for real). Using Cmake, Clang, NDK 18b, Qt 5.12 beta 4, some Subsurface code does not compile. At this point in time, its fully unclear to me why we see the error as it is. Thing fail deep down in Qt and NDK headers on #include <cmath>. Error like "::signbit is not in the global namespace". The most logic reason is an improper order in which include paths are constructed in the build process. Any attempt to find the real reason failed. Even very similar command lines from a qmake build that succeed fail with a cmake style build. The very very dirty hack is commenting out some lines in NDK 18b: "./android-ndk-r18b/sources/cxx-stl/llvm-libc++/include/cmath Comment lines 313-325, and all build, links and runs with no errors related to this known at this point. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl> |
||
---|---|---|
.. | ||
patches | ||
.gitignore | ||
android-build-wrapper.sh | ||
build.sh | ||
qt-installer-noninteractive.qs | ||
README | ||
variables.sh | ||
warning-ndk18b.txt |
Tool repo to crosscompile subsurface to android-arm --------------------------------------------------- Dependencies: 1. android_sdk, android_ndk and Qt for android. See step 0. 2. cmake 3. ant 4. Java JDK 5. working adb is recommended 6. dependencies of libdivecomputer and subsurface - visit http://subsurface.hohndel.org/documentation/building/ Steps to install: Step 0. Grab.. Android ndk from: http://developer.android.com/tools/sdk/ndk/index.html Android sdk from: http://developer.android.com/sdk/index.html#download And QT for android from: http://qt-project.org/downloads Step 1. Extract and install these into known directories. Have a look in the top of build.sh for where the cross build tool expects them. By default thats is: ../../../android-ndk-r9d ../../../android-sdk-linux and ../../../Qt/5.5 (or Qt/5.6) Step 2. Run bash build.sh in the terminal. By default it builds for arm but you can pass x86 as first arg to build.sh to have it build for x86. Nice when debugging in a fast emulator. The script will download and build the whole dependency chain. After this, subsurface will be built for android. The output folder is subsurface-build-arm/android_build and your newly created apk shows up as: subsurface-build-arm/android_build/bin/QtApp-debug.apk Where the x86 apk shows up when built for x86 is left as a exercise for the reader.