Since it's the SDK where things are failing, doing it this way makes the
turnaround time of my attempts to fix this faster. And in the larger
scheme of things, the order is irrelevant.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I clearly had forgotten to update the Android specific scripts when
adding the libdivecomputer submodule.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
If the submodule isn't initialized, run git submodule init before
running submodule update. Also, ensure that the autotools are set up.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way we can avoid having to use Qt Creator (in preparation for
eventually testing the iOS build in Travis CI).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The build process uses the dummy.qml file to determine which QML modules
to package. This ensures that Subsurface-mobile includes all its
dependencies.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This should help us to move parsing that is not XML related to other
files, hopefully making the code cleaner.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Back in 6451adfec1, the path to the qt
binaries was changed. The current binaries are back on the old urls, so
this reverts half of 6451adfec1.
The other half is still true.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
This increases BUILDNR in a way that keeps exit status as zero, so the
script doesn't abort due to set -e.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
The objcopy calls to strip the debug symbols out of
subsurface.exe need to happen before the installer is
created (staged).
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
In the process, simplify our dependency a bit by no longer building
against libssh2 (we don't support ssh based authentication for git
on Windows) and libcurl (since it's proxy implementation doesn't appear
to actually work on Windows, anyway).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I don't think we need all the versions, but it shouldn't hurt.
Now they are alphabetical, that should make it easier.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
On iOS we don't need to enable ssh-based git access - and we can
no longer build against OpenSSL (instead use the platform SSL libraries.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Meanwhile (after removing marble) it seems to be a good choice to use
latest MXE version with currently Qt 5.9.1.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
This would work only if the folder:
$BASEDIR/"$MXEDIR"/usr/i686-w64-mingw32.shared/qt5/plugins/geoservices
contains such a file.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Just to be sure. Use the same version on Android build of libgit2
as used in the scripts/build.sh script.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
In general this patch enables building of subsurface without being
forced to use the official Qt binary packages. This is particularly helpful
when having to debug Qt internals or having to deal with custom patches
on top of the official Qt releases.
The architecture dependent file path layout is only employed by official
Qt binary packages. They are the result of a reordering at package
generation time. If Qt was build for a single architecture, the standard
layout does not add the architecture specific top level patch for the resulting
binaries.
Signed-off-by: Alex Blasche <alexander.blasche@qt.io>
It seems that the Qt team deviated from their previous practice to keep
the Qt/x.y directory structure the same for all minor releases - so now
it is indeed Qt/5.9.1
Oh well.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way in the en_US locale we no longer get shown the odd "dive(s)"
and instead get correct singular and plural forms.
Most of the patch is just a reindentation as it removes the if clause
that used to do the special case of NOT loading a translation for the
en_US case.
Right now we start with a trivial en_US translation file. My guess is
that this will be overwritten once we do the next round of "new strings,
new translations".
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I don't quite understand why this isn't correctly substituted to lrand48()
by the header file, but patching it in the source is easy enough.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Previous script would fail on git folders that pull from more than one
repo. That's not a general case, but pretty usual for developers
pulling/pushing to github.
BTW in this cases, a lind git pull doesn't ensure we are pulling from
the right repo.
When run without flag, default to pull --rebase.
At the same time introduce a tiny func to return a message and bail out
after some command failures.
Needed to crossbuild to windows.
The cmake modules are just clones from those under
subsurface/cmake/Modules, tweaked to build smtk-import for windows.
The used cmake toolkit for building the Android Subsurface-mobile app
(qt-android-cmake) recently moved away from compiling with Ant in favor
of Gradle. The most recent Android SDK will not support Ant any more.
This calls for the addition of the Android SDK BUILDTOOLS_REVISION define
to the cmake of Subsurface-mobile. Without this, the build will fail.
The value has to be set to an existing directory in
.../android-sdk/build-tools/
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This should help us with better iOS apps as it allows Apple to run
llvm against our code to improve performance.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Our qmake based build for iOS still requires the dummy.qml to trigger
inclusion of the correct plugins in the iOS app.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Give a hint how to enable build of debug Qt5 DLLs when building MXE.
Take care about the "d"/"xxxd.dll" suffix for DLLs.
Copy libastro.dll from marble to correct loation as well (nevertheless we don't use it)
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
Just an update of comment. The stange issue with Qt5.7.1 is
still present in Qt5.8. Extend the comment accordingly.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Qt plugins and some other dependencies cannot be copied
by CMake install targets. They need to be manually deployed
to staging_tests directory too.
Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
Because `[ "$foo" != "" ] is equivalent to `[ "$foo" ]'
in all POSIX shells.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Don't quote if you don't have to. Spend those cpu cycles on doing
something more useful, instead.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The `which' command is a fork and possible not standard in various
distributions, or builtin in certain (odd)? shells, like `zsh'.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This reworks build.sh for proper argument parsing and variable quoting.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
In the Qt installer, there is a MaintenanceTool which can upgrade your
install, so don't install in a "versioned" directory, just install in a
plain Qt-directory.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Shellcheck wanted quotes around "$USE_X" - but that makes the script
fail if you run it without the '-x' argument.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Move it to packaging/android where it belongs
Use direct URLs to download Android components
Make sure required packages are installed (only tested on Ubuntu)
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Updates mainly in the comments of the MXE build script:
- File system layout: different proposal
- Hint to not use MXE current version from git
- MXE build JOBS setting to (very) safe value of 1
- export CXXFLAGS=-std=c++11 added for marble build
android-mobile nowadays hardcoded in CMakeLists.txt, so workaround it
here.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This one's weird. We actually don't access the Photo Library. But
maybe it's the access to the local files (in order to store the
dive data) that causes this?
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This still isn't quite straight forward, but at least now the README matches
the process that I use again.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We don't use ssh-based git in Subsurface-mobile, so there's no reason to
link against it.
This should hopefully fix the current issues with the Android APK on some
devices.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
It appears that instead of statically linking against ssl/crypto/ssh2, you
instead have to dynamically link against it and then bundle the library in
the APK. The documentation is not 100% clear and I don't have an Android
Nougat device to test this with, so for now this is an attempt.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Just link it directly into Subsurface-mobile. That's what we already do
with the qmake file for iOS, now the cmake based builds do the same. This
should remove a lot of issues.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Run all scripts with -e so they exit as soon as something breaks. That
way the build stops at the first error, not some other error.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Build kirkigami plugin out of source and make sure that we use the same QT
version for the plugin and the app.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Instead of building a library that we link against, let's just use the .pri
file and include Kirigami in the primary build.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Now kirigami needs to be built with a C++ plugin.
In cases of mobile operating systems such as iOS (and in a lesser measuse,
Android) having a proper plugin loaded at runtime may be difficult, so
statically link it together with all of its qml files compiled as a
qresource inside the static library.
Signed-off-by: Marco Martin <notmart@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This creates the possibility to pass configuration, where the ndk and
sdk is installed, to the build.sh script via environment variables.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Since c78e4f we build the mobile and desktop versions with different
package id's.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
With Qt 5.7, they started to require c++11 support, and in 5.6.1 some
nullptr's showed up in QtAndroidExtras/qandroidfunctions.h, so now we
need to compile our c++ code with c++11 support in our compiler.
As Thiago pointed out, this effectively "downgrades" GCC 6 from c++14
support to c++11.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Simply have the Qt link in packagin/ios point to whatever Qt version
you want to build against and the script picks the right one.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The iOS build process is rather stupid - it scans all .qml files
in the root directory of the project to determine which QML dependencies
are required.
This is why we had the weird leftover fake QML project in our sources.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Having build number as mandatory parameter seems unnecessary, thus
setting default value (used for andoird:versionCode) to 0.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Running subsurface/packaging/android/build.sh after deleting
subsurface-mobile-build-arm directory fails for me due to missing
ssrf-version.h file. Just ignore if it doesn't exist.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Having subsurface-core as a directory name really messes with
autocomplete and is obviously redundant. Simmilarly, qt-mobile caused an
autocomplete conflict and also was inconsistent with the desktop-widget
name for the directory containing the "other" UI.
And while cleaning up the resulting change in the path name for include
files, I decided to clean up those even more to make them consistent
overall.
This could have been handled in more commits, but since this requires a
make clean before the build, it seemed more sensible to do it all in one.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Can't believe I didn't notice them earlier... I must have stared at these
strings countless times.
Reported-by: Scott Ireland <scott@sdj.ca>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This reverts commit 78a8137963.
These keys don't enable access, they require the device to have GPS support.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This key is needed so that the iOS app asks the user for permission to use the
GPS position information.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>