aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/android
AgeCommit message (Collapse)Author
2020-11-19android: ensure that gradle can handle UTF8 filesGravatar Dirk Hohndel
This should be the case automatically, but appears to fail when run as part of the GitHub Action. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19build-system: update Android builder docker containerGravatar Dirk Hohndel
This adjusts the docker setup to create a container with the correct NDK, SDK, tools, Qt version, etc, and updates the helper scripts that are needed in order to do that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19android: ensure all required pieces are in place for the buildGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19android: move the build of googleaps pluginGravatar Dirk Hohndel
We want to build the googlemaps plugin once we know with architectures we are building for. So let's do that right before we build Subsurface-mobile. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19build-system: combine iOS and Android Subsurface-mobile.proGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19android: add qmake based build for Subsurface-mobileGravatar Dirk Hohndel
Several features that are needed to create Android bundles with the current NDK and QT 5.15 aren't easily available when using cmake. Given that we already do a qmake based build for iOS, I decided to simply switch Android to that as well. An added complication is that some of the magic that qmake uses to do the right things fails if the .pro file isn't in the root directory of your project. So this is right now somewhat inconsistent with the way we build for iOS. Something that should get cleaned up in the near future as it makes no sense to maintain two separate .pro files. This commits also adds a new build shell script to drive the assembly of all the dependencies. Once again this is a new file with the old one left in place for now (but to be removed fairly soon). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-11-19android: add new build setup scriptGravatar Dirk Hohndel
This installs the required versions for most components, switches us to Qt 5.15, current SDK, NDK, and the current OpenSSL version. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-05-27Android: install translations into the right placeGravatar Dirk Hohndel
When updating the NDK I forgot to adjust the install destination for the translations. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-27build-system/Android: add missing install-qt.shGravatar Dirk Hohndel
This file is copied from the QBS project. It's under LGPL and therefore compatible with our licensing. While it would be possible to retrieve this file at build time from the original project, for now it seemed easier to include it in our repo. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25GitHub Actions: use the Qt 5.13.2 based Android build containerGravatar Dirk Hohndel
This is no longer created using GitHub actions (but all the necessary information is still included in this repo). We need to be able to shrink this container so our GitHub Action runs don't run out of disk space. Adjust the path where the resulting binaries are found with this build. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/android: remove libusb at QTestGravatar Dirk Hohndel
We no longer use libusb to access USB devices on Android, therefore there's no point including libusb in our build. Also, we have never even attempted to run the tests on Android, so let's not even pretend to support building them. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: use PREFIX outside of NDKGravatar Dirk Hohndel
If we install our support libraries into the NDK we later run into include path order issues that result in strange errors around the inclusion of math.h (because we find the C version of that include file that ships with the NDK before we find the libstdc++ version of math.h (because the include path for our support libraries is listed before the libstdc++ include search path). By having a distinct install-root for our libraries we can avoid this problem. Remove the previous hack that tried to work around the symptoms of this issue. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: use install-qt.sh to install QtGravatar Dirk Hohndel
The official installer now requires the user to log in which we can't really do in a scripted manner. Let's see how long this way of installing things will be available. While doing this remove an ancient hack of some Qt settings that we no longer need. This also tries to prune some things that we don't need in the Docker image to reduce image size. The mapbox plugin is removed as it would add a dependency to QtSql which we otherwise don't need. And since the plugin isn't used, no point in installing it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: create standalone toolchain in wrapper scriptGravatar Dirk Hohndel
This way when we build the android build container, the correct toolchain is already in place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: update some dependency versionsGravatar Dirk Hohndel
Qt 5.13.2 fixes a few bugs. We are NOT switching to Qt 5.14 as that breaks a ton of things with Android support. At this point even with qmake it near impossible to get working Android binaries, no one appears to have a solution for cmake. With qt-android-cmake current master fixes the problem that held us back at the earlier commit, so let's go back to using master. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: remove no longer supported Qt versionsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18cleanup: fix image reference in Android READMEGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-03-16Android: remove legacy FTDI supportGravatar Dirk Hohndel
This works on almost no devices anymore and has been replaced by the USB serial support for Android. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>