For some reason it suddenly cannot figure out which build program
to use. This seems like a weird hack, but works.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
A lot of this is still black magic, but at least this now documents what I
understand about the process.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The name subsurface-ios was used in many places and that was just not helpful
to fight against. This should work much better.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
And make sure the version displayed for Android includes both that version
and the build version, which is our regular canonical 4 part version
number - so this release will be something like "1.0.0 (4.5.2.1047)"
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This now can create all the support libraries in armv7, but that isn't
sufficient for QtCreator which wants fat libraries with both armv7 and arm64 in
them.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This reverts commit 7fac2a38b2.
Oops, that should have been dropped in the rebase before pushing the
changes. I did this instead in commit 99d1d8876e ("iOS build: create
ssrf-version.h by hand")
It's unclear why the build fails if we don't add the sample app files as
well.
[Dirk Hohndel: refactored the patches]
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This now only builds all the prerequisits but not the actual Subsurface
binaries - that will be done with qmake (oh the irony) in a later commit.
[Dirk Hohndel: refactored the patches]
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
No reasons not to upgrade to the latest OpenSSL lib. The currently used
1.0.1 branch is ending end of 2016, so a switch to 1.0.2 is useful
anyway.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Since commit c496d5fa05 ("Add helper script to pull Plasma Mobile Components
and icons") we had three different spots where we retrieved the Plasma Mobile
Components. That's a wee bit of overkill. So instead have the other two scripts
just call this one.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Don't ever link against a shared libcrypt. One of the recent changes to
make things build on the various Linux build systems apparently broke the
Android build as it now adds an extra -lcrypt right after the correct
static link to libcrypt.a. Instead of fiddling even more with this and
re-breaking all the other builds I just hack around it here and remove any
calls to a simply -lcrypt as that won't work on Android.
This also passes through the remaining options on the command line to make
so we can do things like VERBOSE=1 or -j12
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
It compiles but the link stage fails because of a missing -LSystem
but its a baby step.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Building the iOS command line utility fails. But frankly, we don't need that,
anyway. I cannot figure out how to tell sqlite that all I want is the library,
so I'm working around that by first building the library, then pretending that
sqlite3 was indeed built in order to be able to run make install. Horrible,
ugly, stupid. But it seems to work.
Also cleaned up the whitespace.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The cross compile script kind of works right now, it's missing
something that I'm really not sure where or what it is.
currently sqlite will not build because:
error: gethostuuid is not defined in iOS
This bug was already opened on sqlite bugtracker for about a year, the
workaround is to pass -DDSQLITE_ENABLE_LOCKING_STYLE=0 to the compilation
flags, which I did but did not work for some reason.
Which is a good error - it shows us that we are actually trying to compile
for iOS.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The build.sh and readme files are the same as the Android ones
and I'll be changing them over time.
The configure-for-ios.sh script is a file that manages to set
everything, compilers frameworks and such, for iOS compilation.
I'll probably dissecate the configure-for-ios.sh file and put it
back on the build.sh, but not now.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
this was requiring libconfuse and we don't need it.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The MXE script still tried to run things using the qmake project
file and we removed that ages ago.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Also fixes a capitalization error that prevented finding libssh2 in some
circumstances. And adds a missing include when building with libzip on Mac.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way build.sh can build a Subsurface.app that the user can use via
open subsurface/build/Subsurface.app
after running build.sh.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
It still is rather specific to my system layout, but at least removes a
reference to my home directory path...
It also removes @rpath references from the executable. This should in theory
work, but it failed for me on one machine that I tested on and doing things
this way doesn't appear to cause problems.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>