mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
This is squashed commit consisting of a number of subjects, all intended to get our app to build, link and run on device, but as the steps are small (but non-trivial), I document them in this one commit. 1) Do not use OpenSSLs install targets, but simply copy the wanted build artifacts manually. The main reason for this, is that the install targets want to install a lot more than we build, so it also builds parts of the OpenSSL suite that we will never use. 2) As Android does not like shared libraries with embedded versioning (and the used androiddeployqt actively prevents adding versioned libraries to the build), strip all this data from the generated shared libraries. This trick was already there, but its adapted to all possible conflicts. 3) The OpenSSL config script seems rather broken, resulted in failed builds, and calling the underlying Configure is simpler. 4) Finally, parts of the OpenSSL code uses stdio things like stdout, stderr, etc. These showed up as undeclared external on build time. Well, luckily, there was an easy way out using 2 -D(efines). This feels hacky, but does the job (and we are not interested in the output of OpenSSL in our app). 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.