aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/android
AgeCommit message (Collapse)Author
2019-11-20Android: update README to mention build containerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05Android: switch to latest OpenSSLGravatar Dirk Hohndel
If we update all this, we might as well go to the latest. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05Android: work around Android 5.x issues with OpenSSLGravatar Dirk Hohndel
The Qt documentation has specific suggestions how to build our own version of OpenSSL in order to work on Android 5.x: https://doc.qt.io/qt-5/android-openssl-support.html Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05builld-system: switch Android to Qt 5.13.1Gravatar Dirk Hohndel
This fixes the SSL issue with Android 5.x/Lollipop. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-04android-build: Add some more libzip hacksGravatar Anton Lundin
This hacks the libzip build to not try to find zlib, because it fails doing so on modern NDK. We just tell it that its there, and be done with it. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2019-10-04android-build: Add support for x86_64Gravatar Anton Lundin
This adds support for building x86_64 apks. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2019-10-04android-build: Load variables file relative source dirGravatar Anton Lundin
Not everybody have their build dir in the same place, but we can always find the files relative each other. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2019-10-02Android: allow passing through -quick argumentGravatar Dirk Hohndel
So even setups relying on the wrapper script can do faster rebuilds. This also cleans up a bug that made passing through the release parameter fail in the past, and removes overly verbose debugging output. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-21Android: bundle default font for use in OnePlus devicesGravatar Dirk Hohndel
This is working around a Qt Bug https://bugreports.qt.io/browse/QTBUG-69494 which prevents correct rendering of the OnePlus fonts. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-19Android: ensure higher build number for arm64 APKGravatar Dirk Hohndel
Google Play allows uploading two APKs, but only if the arm64 one has a higher build number. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18Android: small change to keep exports togetherGravatar Dirk Hohndel
Simply move that export to the top of the file with the others. Suggested-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18Android: fix review commentGravatar Jan Mulder
Fix review comment by Anton on GitHub. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-07-18Android: fix location of the build apksGravatar Jan Mulder
With all upgrading, the build apks now show up in a slightly different location. Correct this in the scripting. Notice that this is debug building only. Release building is outside the repo. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-07-18Android: rework build of OpenSSL to get it to build link and runGravatar Jan Mulder
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>
2019-07-18Android: Qt 5.12.4, OpenSSL 1.1.1cGravatar Jan Mulder
The main reason for upgrading of the Qt version is the hunt for a broken BT/BLE stack, preventing downloads from BT/BLE enabled DCs, in relation to arm64 architecture builds. (And the absolute need for an arm64 build in relation to the publication of the Android app in Googles Play store). In addition, Qt 5.12.4 starts supporting OpenSSL 1.1.1c, and trying to use our current OpenSSL 1.0 series is highly discouraged by Qt (and OpenSSL itself). So, upgrade both in unison. But ... be careful bisecting issues on this commit, as it does break our build. That will be fixed in the next commit. This fixes the BT/BLE download for arm64! Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-03-21CMake: use builtin method to not use BZip2Gravatar Rolf Eike Beer
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-03-05Android: factor out duplicate version string searchGravatar Rolf Eike Beer
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-03-05CMake: just tell CMake to not find HTTP_ParserGravatar Rolf Eike Beer
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-03-05simplify sed hacking of Qt CMake filesGravatar Rolf Eike Beer
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-02-01facebook: remove the featute from the code baseGravatar Lubomir I. Ivanov
Remove from: - unit tests - desktop widgets - preferences - core intergration - cmakefiles - build scripts - icons - docs Also remove the plugins and social network integration. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2019-01-25Android: accept 'Release' argumentGravatar Dirk Hohndel
This is mostly an artifact of how I build release packages. Otherwise this likely isn't important. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-21Android: make sure we have the correct platforms installedGravatar Dirk Hohndel
This should fix the current Travis build failures for Android. It is odd how we have ANDROID_PLATFORM and ANDROID_PLATFORMS, buf for now all I care about is that the Travis build completes. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android build: always reconfigure libdivecomputerGravatar Jan Mulder
This fix makes no difference from usage of this script in Travis context, as every build starts from a clean VM, but the very few developers that build for Android locally, and that want to use the new style docker container builds as well, things are broken. libdivecomputer has build artifacts in its source tree (and that source tree is shared between local and docker run). So it happens that libdivecomputer is configured locally, and afterwards fails to build in docker build as its already configured, but not for the docker image its now running in. The fix is simple. Always reconfigure libdivecomputer when using this script. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android: build both 32 and 64 bit binariesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Travis: Android build wrapper now runs inside our containerGravatar Dirk Hohndel
So we don't need the pre-built binaries anymore, and we don't need the travis_wait hack anymore for potentially slow downloads as that is all installed in the container already. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android: update for Qt 5.12.0Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android build: add explanation for huge hackGravatar Jan Mulder
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>
2018-12-30Android build: always use -fPICGravatar Jan Mulder
make sure that all lib code is compiled with -fPIC as things will not link due to error "requires unsupported dynamic reloc R_ARM_REL32" (for arm build). Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: build openssl before libzipGravatar Jan Mulder
On very clean builds not using the wrapper script, the compile of libzip simply fails because it depend on openssl include files. Simply swap them around. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: fix openssl build, no_asmGravatar Jan Mulder
Mysteriously, openssl does not compile with clang with a sha256-armv4.S:2638:2: error: invalid instruction, did you mean: adr? The easiest way out is compiling without no_asm. This obviously lowers the bandwidth on the SSL link (as the asm code is there for performance reasons), but it has no visible performance loss in my tests. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: add arm64 target and compile with clangGravatar Jan Mulder
With a preparation done in the 4 commits before, now add the arm64 and use clang instead of gcc as compiler infrastructure. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: openssl, do not move source treeGravatar Jan Mulder
Very annoyingly, openssl is re-build and downloaded numerous times when doing partial builds. Reason for this, is that the original checked out git repo is moved away, and build in source (as openssl does ...). So, this simple change leaves the checked out repo in place, and copies the tree to build in. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: always install libzip.a in lib directoryGravatar Jan Mulder
A subtle one. When compiling for arm64, libzip is the only package we use in mobile that installs its product in lib64. There is no reason for this given the way our build process is. So, simply force the library to reside in lib, independent if we are building arm or arm64 architectures. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: do not hard code armv7Gravatar Jan Mulder
Simple cleanup. Do not hard code armv7 as we have QT_ARCH. This allows, in the future, for arm64 builds as well. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android build: set newer versions and parameterize ANDROID_PLATFORMGravatar Jan Mulder
Hard coding desired ANDROID_PLATFORM on multiple places is simply bad. Fix this. Further, set the variables to a much newer state. CAVEAT: this will likely break android build, so be careful on bisecting. All fixed in next, related commits. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30Android: cleanup build wrapper scriptGravatar Dirk Hohndel
This way it can be run both to create the docker container or independently for a full build. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30Android: allow running android-build-wrapper without buildingGravatar Dirk Hohndel
This way we can use it to fetch dependencies we need up front. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-06Android build: explicitly install using sdkmanagerGravatar Jan Mulder
Make sure all required Android SDK components are explicitly installed before starting the actual build. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-06Android build: buildtools version is automatically detectedGravatar Jan Mulder
With commit 0d8fc7ef970e of qt-android-cmake, the buildtools version is automatically detected. So do not try to pass it any more, as this breaks the build. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-11-13Android: pick the correct C++ runtimeGravatar Dirk Hohndel
Yet another fallout of the switch to the NDK toolchain. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-13Android: build for android-16Gravatar Dirk Hohndel
That's the minimum platform that we have used for a while now, corresponding to Android 4.1 and newer (i.e., quite ancient). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-13Android: explicitly build with gccGravatar Dirk Hohndel
Our Android build currently fails with clang. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-13Android: qt-android-cmake no longer ships a toolchain fileGravatar Dirk Hohndel
Instead use the one that comes as part of the NDK. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-27build-system: switch back to upstream qt-android-cmakeGravatar Dirk Hohndel
And in the process use our script to do the work. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-05Android: whitespace change to build.shGravatar Dirk Hohndel
This indents the code that is only executed when we aren't in 'quick' mode. git show -w will show that there is no code change in this commit. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-05Android: add -quick flag to build.shGravatar Dirk Hohndel
This allows us to skip all the checking / building of dependency libraries. This also allows us to pass extra arguments to the make command by separating them from the arguments to build.sh with '--'. This commit is easier to understand because it didn't increase the indent in the large block of code that is now only executed if we aren't in 'quick' mode. That will be fixed in the next commit that is whitespace only. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-05Android: use our fork of qt-android-cmakeGravatar Dirk Hohndel
This tells androiddeployqt to look at the qml modules to find all dependencies. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-05Android: build latest libzipGravatar Dirk Hohndel
Small hacks needed, but otherwise this seems to work. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-04Android: build libzip 1.1.3Gravatar Dirk Hohndel
Switching to GitHub as source for libzip means that we need to encode the version number differently. Newer versions of libzip don't compile cleanly on Android and this one seems new enough. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-12Match openssl versionsGravatar Jocke
The versions for openSSL in variables.sh and get-dep-lib.sh needs to match or we end up recloning the repo on every build. Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>