Commit graph

493 commits

Author SHA1 Message Date
Dirk Hohndel
0f3d287200 Desktop: update to Grantlee 5.1
Also make sure Grantlee still compiles with Qt 5.13 by cherry picking a commit
that was added after the v5.1.0 release.

In order to identify this commit as comming from the build automation we
temporarily override the user name and email address. As a side effect this
also makes this work on Travis.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14 21:00:10 -07:00
Dirk Hohndel
85d810119b Mobile: pick icons depending on theme
QML has ways to style icons - and we use that for the main theme color,
but it doesn't seem to work (anymore?) for the edit and save icons.
Instead of tracking down what changed there, simply switch between icons
with different foreground color, depending on theme.

All the other icons seem to work well in all three themes.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14 13:39:45 -07:00
Dirk Hohndel
804a5be71f Travis: test mobile build under Linux-Trusty-Qt-5.12
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14 13:37:17 -07:00
Dirk Hohndel
cd8e1eb15a Revert "Windows build: Changesto build using mxebased hidapi,libusb and grantlee"
This reverts commit 60e63afb82.

I merged this to early without paying attention to the fact that this
needed an updated build container as well.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-14 07:31:56 -07:00
Dirk Hohndel
4fb2f89bb5 Mobile: another kirigami hack to make toolbar work
Without this the font size and positioning of the toolbar is broken.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
56713842b9 Mobile: ensure consistent path when accessing arrow icons
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
0d4acbd735 Mobile: add another Kirigami hack so we can fix the Back menu entry
Kirigami isn't picking up our font for the Back entry in sub menus.
Also, we still don't get a back button icon on Android. This will
allow us to work around that.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
e91a8ff7f9 Mobile: hack around missing icons in the toolbar
This looks extremely fishy to me, but it does seem sufficient to
get the forward and backward buttons to show up in the toolbar.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
26a7cf1698 Mobile: hack around toolbar theme issue
Whatever I try, the toolbar background is always based on the 'active'
color set in qtquickcontrols2.conf, not on anything that I can set in
QML code. So in an effort to brute-force the issue, this hardcodes the
subsurfaceTheme value in the toolbar UI code of Kirigami.

To make this easier, this (and one of the other hacks) is added to the
existing kirigami.diff.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
1e25c85dde build-system: update the mobile components script
The hack to remove the action button caused situations where the action
button didn't return. Let's skip that for now. All the other fixes
appear to still be needed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Dirk Hohndel
272cb43c4e Mobile: update Kirigami to v5.62
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:32:27 -07:00
Paul Buxton
60e63afb82 Windows build: Changesto build using mxebased hidapi,libusb and grantlee
Remove hidapi from manually built components and use the mxe based one instead.
Remove libzip as that is handled by mxe packages.
Update version of grantlee used to build with qt 5.13.1.
Also hide vscode files from git.

[Dirk Hohndel: combined two commits, cleaned up the commit message and removed
               one now incorrect comment line from mxe-based-build.sh]

Signed-off-by: Paul Buxton <paulbuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-13 11:31:38 -07:00
Dirk Hohndel
d82e008b4c Android: switch to latest OpenSSL
If we update all this, we might as well go to the latest.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05 08:19:31 -07:00
Dirk Hohndel
ea0e447e0d builld-system: switch Android to Qt 5.13.1
This fixes the SSL issue with Android 5.x/Lollipop.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-10-05 08:19:31 -07:00
Paul Buxton
c1aa686f9c AppImage: Fix path of machine-id in dbus library
When building dbus within the appimage, cmake picks up the installation
path of various files dbus uses through the GNUInstallDirs package,
however this doesn't work under the appimage build.
So we replace the variable with the normal location of this file.

Signed-off-by: Paul Buxton <paubuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-23 13:38:57 -07:00
Paul Buxton
4b391c448d AppImage: Fix missing libssl1.1
Add ssl to the AppImage build.
Add helper script to fetch required dependancies.
Update docker build container used.

Signed-off-by: Paul Buxton <paubuxton.mail@googlemail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-23 13:38:57 -07:00
Dirk Hohndel
a921acb3ce Travis: build Subsurface AppImage against Qt 5.12
For this we need our own hand crafted trusty container with Qt 5.12,
including QtWebKit and an updated cmake and libdbus, as well as already
build googlemaps plugin, grantlee and libgit2.

At the same time stop uploading the Subsurface AppImage in the
traditional trusty build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-05 17:54:09 -07:00
Dirk Hohndel
6670ea7bdb build-system: add -quick flag for build.sh
With this flag we assume that we don't need to rebuild grantlee and googlemaps.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-05 17:54:09 -07:00
Dirk Hohndel
373415bb52 build-system: add Dockerfile for Qt 5.12 on Trusty
We'll use this to create a better AppImage on Travis.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-09-05 17:54:09 -07:00
Jan Mulder
2f6ad092a5 Android: fix review comment
Fix review comment by Anton on GitHub.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-07-18 06:39:00 -07:00
Jan Mulder
29f4d35bc4 Android: fix location of the build apks
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-18 06:39:00 -07:00
Jan Mulder
7c722ea222 Android Docker: make a nice version tag file
Trivial. The final touch command was missing the proper quotes, so it
created a bunch of strangely names files from the date command. Just
good for the developers that like to peek into the docker image.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-07-18 06:39:00 -07:00
Dirk Hohndel
a236dd4fd2 Android: hack around the build issue with a custom container
Local testing seems to indicate that the build should work with this container.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18 06:39:00 -07:00
Dirk Hohndel
7dcfc9d96b Android: Switch to Qt 5.12.4 container
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-18 06:39:00 -07:00
Jan Mulder
bb895f1896 Android: Qt 5.12.4, OpenSSL 1.1.1c
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-07-18 06:39:00 -07:00
Dirk Hohndel
9b63b6d5e1 update parse-descriptor.pl
libdivecomputer is a submodule. Just hardcode the path to descriptor.c.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-07-15 11:22:10 -07:00
Dirk Hohndel
f0307abf50 Travis: move storage to a cheaper service
It's surprising how much money this ended up costing...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-19 14:14:37 -07:00
Dirk Hohndel
b68b42bd2f Travis: build macOS test against Qt 5.12.3
The .app.zip should once again run on any Mac (ignoring the security issue of
unsigned binaries). The Qt binaries in that archive include the jpeg and png
libraries that were missing in the Qt 5.11.1 binaries we used until now.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-19 14:14:37 -07:00
Salvador Cuñat
d0d599470a windows-container: remove useless tarball download
0.9 docker image includes static libraries to build mdbtools so there is
no need for an aditional tarball.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Salvador Cuñat
ec287d87f4 docker-mxe: Fix tee command line for static build
Add -a parameter to tee  to avoid overwriting build.log when building
static libraries for smtk2ssrf

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Salvador Cuñat
aab658fc9f docker-mxe: Make Dockerfile reusable
Passing an argument on the docker build command line avoids the need to
modify the Dockerfile for each image build.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Salvador Cuñat
967f9fb590 Build static glib under mxe
mdbtools only builds static under mxe.
This should add static build of glib to the container with the mxe
libraries.

[Dirk Hohndel: merged with latest version of Dockerfile]

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Dirk Hohndel
68592ebc62 Travis: use version 0.9 of the MXE build container
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Dirk Hohndel
d1750b3fb3 MXE Docker build: clean up Dockerfile
Instead of trying to do it all in one step rely on --squash to do its
job. Don't try to be so aggressive in removing things, it saves very
little space and caused builds to fail.

This results in version 0.9 of the MXE build container

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-05-18 14:43:16 -07:00
Dirk Hohndel
643f4a5726 Remove partial support for QWebEngine
Printing never worked, none of this was ever included in test builds. Also, now
that there are official releases of QtWebKit again, this just doesn't seem worth
carrying along anymore.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-03-20 08:45:02 -07:00
Dirk Hohndel
3d193c7fdb build-system: add script to build only libdivecomputer
This is used on LGTM (and initially got lost when I merged those changes).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-03-16 21:54:55 -07:00
Rolf Eike Beer
0fb66fc91f simplfy scripts
Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-03-16 10:06:26 -07:00
Rolf Eike Beer
17211acc53 remove obsolete workaround for libdivecomputer includes of libusb
This has been fixed in revision b1d434f0ea9a2958613da9bed32ff3ff3318065e there.

Signed-off-by: Rolf Eike Beer <eike@sf-mail.de>
2019-03-09 09:51:55 -08:00
Lubomir I. Ivanov
a1ffe115cf facebook: remove the featute from the code base
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-02-01 17:16:43 -08:00
Dirk Hohndel
f218768638 build system: Docker image creation
Just like Android, Windows binaries are best created in a container.
I still need to push the latest version to docker hub and use it on
Travis, but this way at least the Dockerfile is here.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-25 10:46:39 +13:00
Jan Mulder
9a26225558 Travis: OpenSUSE 42.3 / Qt5.6 build issue, use openssl and no libressl
... and remove install of the default (old) libgit2 from OS. That old
(0.24.0) libgit2 will be replaced by a newer anyway, so useless to
install.

But the real change to get this Travis build running again is using
the well known openssl instead of libressl.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-10 08:19:07 -08:00
Dirk Hohndel
c7e3e4146e Travis: OpenSUSE 42.3 / Qt5.6, add missing curl
The install was missing curl.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl> Removed upgrade to newer libgit2.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-10 08:19:07 -08:00
Jan Mulder
cfc22d0702 Build: build libgit2 from source when less than 0.26.0
We currently require a minimal version of libgit2 of 0.24.0. From
issue #1926 it seems that this version is too old. So, a simple test on
Linux to see the behaviour with such an old libgit2, I tried that.
Interestingly, with the current version of openssl that old libgit2
version does not even compile from source (known error in libgit2).

So, bump our minimal version of libgit2 to 0.26.0. That is also the
version we currently use on the Travis and official builds, so well
tested.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-10 08:19:07 -08:00
Dirk Hohndel
7923507e76 build system: try harder to checkout the right version
And actually fail a build if that doesn't work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2019-01-09 20:53:26 -08:00
Jan Mulder
4b7b0f2dec Build: remove --skip-googlemaps build option
The scripts/build.sh script has an option --skip-googlemaps. Introduced
in 2017 at a moment the Travis Mac build failed on this. Interestingly,
when Mac building of the maps plugin was possible again (commit 79e3f69f48)
the --skip-googlemaps stayed. Obviously, this hack was never intended
to be used for anything else then getting it passed Travis on
some point in time for a specific Mac build.

So, remove this option.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2019-01-07 09:27:38 -08:00
Dirk Hohndel
bae683ad53 Travis: use 5.12.03 Docker image for Android
With this we have working arm and arm64 images (except that the arm64
image crashes when using Bluetooth).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
ad84a96fdb Android Dockerfile: add latest cmake 3.13.2
cmake 3.10 (which comes with Ubuntu 18.04) in combination with Qt 5.12
and the current qt-android-cmake causes an odd bug. Paths are set with a
double slash at the start '//' and later in the process this causes
garbled path names for some of the objects which in return causes the
APKs built in the container to fail.

Upgrading the cmake inside the container to 3.13.2 fixes that problem.

All the credit for identifying the problem and figuring out a solution
goes to Jan Mulder.

The resulting container was pushed to Docker hub as version to 5.12.03.

Reported-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Jan Mulder
63498df1bc Android Docker: give the docker build its own output tree
Again, this is relevant for developers that do local docker android
builds, and normal android builds. A normal build uses the directory
subsurface-mobile-build-arm(64), and when doing a docker android build
this directory is shared between host and container. That sharing is
good, as it nicely exposes the build tree to the host (for easy compare,
inspection, etc.). But reusing the same tree as the local one is
inconvenient (and possibly dangerous due to all kinds of caching
issues).

So, give the docker build its own output tree for the shared
subsurface-mobile-build-arm(64) build output.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30 11:20:34 -08:00
Jan Mulder
1e1457318c Android Docker: give the android builder its own name
Users that use docker locally for Windows style build and Android style
builds will (probably) not like that we use the same name for both
docker containers. So, give the android builder its own name.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
6fb135eb46 Android: build both 32 and 64 bit binaries
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
ed32331640 Travis: find the Android apk in the right spot
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
bc23e37f01 Android Dockerfile: ugly hack to deal with current NDK compile problems
As explained in commit 449d4ee33d ("Android build: add explanation for
huge hack").

It seems reasonable to add this to our Travis image as that is custom
made just to build our Android binaries.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
7eaffcf6fe Android Dockerfile: add comments and try to shrink the image more
This image is downloaded on every Travis run. Making it smaller is important.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
40ff86ab75 Travis: build against the Qt 5.12 Android image
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
2d7ffd4eff Android: update for Qt 5.12.0
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
f11f4dc139 Travis: use Android docker image for build
This should make it easier to make changes to our build environment.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
b0e81ff978 Android: create docker container
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
54549b8a9b Android: add Dockerfile for build environment
We'll use that on Travis, but anyone can use that on their system.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-30 11:20:34 -08:00
Dirk Hohndel
7a0e26609b Travis: use homebrew addon instead of doing it manually
This should make our mac builds on Travis faster.

This also switches to the latest xcode / VM image which helps speed things up
(less to update for Homebrew). It turned out that that app directories that we
were creating here didn't run for people, anyway, so why even bother with an
old image.

We still create / upload that image (simply in order to be able to peek into it
in case something goes wrong).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-22 23:13:44 -08:00
Dirk Hohndel
094ab67d23 Travis: fix the windows-container build
Call apt update before trying to install things.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-12-11 19:06:20 -08:00
Miika Turkia
76a68f71a4 Support for copy-pasting specific fields on mobile
Initial implementation/prototype of copy-paste support for
Subsurface-mobile. The UI part is really lacking; right now the copy
button is initially visible and paste is achieved by long press on a
dive and clicking the paste button when it appears. Delete is currently
not possible at all, as I just failed to layout the buttons properly
using QML. It just sounds so simple, to put all the copy-paste-delete
buttons next to each other...

The data to be copied is currently hard-coded. A dialog to choose
inteded fields would be nice, but it'll take quite a bit effort to get
used to QML enough to be able to hack something together.

Anyway, this seems to work, even though the UI is not always reflecting
the paste without switching dives (when testing on laptop).

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-11-18 06:31:44 +08:00
Dirk Hohndel
15c7ee5db0 MXE: respect an MXE build type already defined
And use that to have our Travis build still work with the existing MXE
build container as well as the even older, pre-compiled MXE binaries
used in the windows build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-11-14 17:06:10 +08:00
Dirk Hohndel
651f63282f build-system: switch back to upstream qt-android-cmake
And in the process use our script to do the work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-27 10:38:39 -04:00
Salvador Cuñat
604d563a87 Fix after_success.sh for windows container build
Ooops. Forgot to fix this before sent the patches, as this part doesn't
works on my travis builds.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2018-10-15 06:35:14 -04:00
Salvador Cuñat
faca48f2b6 windows-container: enable smtk2ssrf building
Enable building of SmartTrak divelogs importer.
A new, lighter, tarball for mxe static libraries has been built, as it
seems impossible to build mdbtools with shared libraries (see mxe's
build matrix). The tarball doesn't include prebuilt mdbtools and we
build from source via build script.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2018-10-15 06:35:14 -04:00
Dirk Hohndel
7a1ceee4e7 Travis: build Subsurface-mobile against Qt57 as well
Simply adding another OS / environment on which we test building of
Subsurface-mobile

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-09 10:03:38 -07:00
Dirk Hohndel
4a0beab2a4 Travis: build Subsurface-mobile on macOS
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-09 10:03:38 -07:00
Murillo Bernardes
2b3dc46c86 macOS: check for system headers in SDK
Starting with Xcode 10, system headers are located inside the
macOS SDK.

Add this location to the check for command line tools.

Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-10-08 15:34:16 -07:00
Dirk Hohndel
9dac90c6bf Travis: don't upload the MXE Subsurface binaries
More specifically, don't upload them from the old Windows build - we
just keep that one around for the smtk2ssrf binaries. The Subsurface
binaries are now created in the container based Windows build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
c330659df6 Travis: build old style Windows without FTDI support
This way we can still get an smtk2ssrf build until that is added to the
windows-container target.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
450f654063 Travis: add Windows build in a container
I expect this to become the default way to test Windows builds and
create installers on Travis. The idea is that instead of downloading the
pre-built MXE binaries we might as well use a container that has all
this installed and can be used locally to test if things fail on Travis;
which will allow us to have the exact same environment for testing
locally as runs on Travis.

At this point the container used is way too big - more effort needs to
be spent on shrinking it.

Right now this only deals with Subsurface and not with smtk2ssrf.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
6b9e77ba01 build-system: minor cleanup of build.sh
That qmake -query was added for debugging a long time ago.

Since the comment clearly indicate that the edit of the Makefile is only
for Travis, let's only do it when running on Travis.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
5c2181daa7 build-system: remove support for local cloning in build.sh
It wasn't documented in the first place (magic first argument, anyone?).

This used to be available for quite a few of the dependency and had
somehow kept around only for Grantlee and Googlemaps. Let's just kill
this and be consistent for all dependencies.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
a83a2d8b1f build-system: add Grantlee to our get dependency script
I actually don't know why this was missing...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-07 14:00:45 -07:00
Dirk Hohndel
1ac90199e5 build-system: fix libdivecomputer build on macOS
In some Mac environments autotools somehow think that we have clock_gettime(),
even though it isn't supported. Somehow the previous workaround stopped working
as make ended up re-running ../configure and overwriting our change. This tries
to work around that problem.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-10-03 16:35:25 +02:00
Jan Mulder
5681f686ba Revert "Revert "QML UI: newer Kirigami and fallout""
This reverts commit a5db03c2b3.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-10-01 05:29:46 -07:00
Dirk Hohndel
b80fd26e81 build-system: fix appdata creation
The pipe in the  execution apparently didn't fail, so the date wasn't set
when building from a tar file.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-29 12:09:11 -07:00
Dirk Hohndel
a5db03c2b3 Revert "QML UI: newer Kirigami and fallout"
Turns out that Jan found an issue with the latest Kirigami, so let's go back to
the known good one.

This reverts commit 17ec95e70c.

Suggested-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-28 14:53:22 -07:00
Dirk Hohndel
e99df4af2c Revert "build-system: fix kirigami.pri for iOS build"
Turns out that Jan found an issue with the latest Kirigami, so let's go back to
the known good one.

This reverts commit 40766db459.

Suggested-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-28 14:51:54 -07:00
Dirk Hohndel
40766db459 build-system: fix kirigami.pri for iOS build
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-27 10:44:37 -07:00
Jan Mulder
17ec95e70c QML UI: newer Kirigami and fallout
Update to the master of today, and no issues detected on mobile-on-desktop
and Android.

Only, the ugly border is back as the magic hack of 0b16b547ae failed
due to the patch file that errored. So that is fixed too.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-09-27 08:42:47 -07:00
Dirk Hohndel
83079c92df build-system: fix appdata creation on OBS
Build systems that run from tar balls and not git fail to create valid
.appdata.xml This solves the problem for tar balls that we create for
OBS via our own make-package script. It doesn't solve the problem for
Arch or Gentoo who I believe take our tar files created via git archive.
One way to fix this would be to change the process by which I create
those tar files, I guess.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-20 10:02:54 -07:00
Dirk Hohndel
26d8beb766 build-system: don't modify a file under git control
Instead of editing appdata/subsurface.appdata.xml in place, switch to our usual
pattern of modifying a .in file and add the resulting file to .gitignore.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-15 15:51:47 -07:00
Dirk Hohndel
d94f813623 Mac: hard code macosx-version-min as 10.11, regardless of available SDKs
This should never be wrong, and should avoid the warnings on Travis.

Fixes #1654

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-13 09:26:44 -07:00
Dirk Hohndel
dc68c3e7bd Travis: build export-html on Mac and Linux
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-09 19:52:14 -07:00
Alexander Wilms
bcf568586d Fix appdata
Use correct format, create script to update the version and release date in the
appdata.

[Dirk Hohndel: call said script during the build process]

Signed-off-by: Alexander Wilms <f.alexander.wilms@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-09 18:43:30 -07:00
Dirk Hohndel
dd633119bb Travis: use system libgit2 on OpenSUSE for Qt56 build
This is libgit2 0.24 which is new enough for our purposes.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-05 21:43:58 -07:00
Dirk Hohndel
11993b59ca build-system: don't show spurious errors looking for qmake
And improve the message if we do indeed not find it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-05 21:43:58 -07:00
Dirk Hohndel
fde266860e Travis: fix qt56 builds
This seems very strange - but it appears that we are missing the 'which'
command.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-09-05 21:43:58 -07:00
Dirk Hohndel
4e1f806d02 Travis: show performance test results
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-31 06:33:46 -07:00
Dirk Hohndel
9083404981 Travis: put large test data in place for TestParsePerformance
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-31 06:33:46 -07:00
Dirk Hohndel
32a630ece3 Android: build latest libzip
Small hacks needed, but otherwise this seems to work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-05 15:08:19 -07:00
Dirk Hohndel
93983b7e4c Android: build libzip 1.1.3
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-08-04 14:32:16 -07:00
Dirk Hohndel
8df6789a9d build-system: update libzip to 1.5.1
This also switches us to libzip's new official home on GitHub, and takes into
account that libzip no longer supports autotools and instead now is cmake
based.

Building against that, on my Mac build system, Subsurface once again correctly
opens DLD files downloaded from divelogs.de.

Fixes #1534

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-08-04 12:23:47 -07:00
Dirk Hohndel
68b5fe9ccb Small edit of whitespace script
This makes sure we don't end up indenting macro invocations.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-26 16:32:51 +03:00
Berthold Stoeger
6b9380efb0 Fetch sqlite from https:// site
The http:// version is down an makes Travis fail.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-07-21 00:14:49 +03:00
Jocke
a56a7c51f6 Add comment to get-dep-lib.sh
Add a comment so we remember to change the version number in versions.sh also.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
2018-07-12 07:58:08 -07:00
Dirk Hohndel
45c19fd11e Travis: add Qt 5.9 testing
This is done via Fedora 27 which seemed the easiest way to get a 5.9 based
distro.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-11 13:49:25 -07:00
Dirk Hohndel
8fa9eabb47 Travis: add Qt 5.7 testing
This is done via Fedora 26 which seemed the easiest way to get a 5.7 based
distro.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-11 13:49:25 -07:00
Dirk Hohndel
0a4dcd59b0 Travis: add Qt 5.6 testing
This is done via OpenSUSE Leap/42.3 which seemed the easiest way to
get a 5.6 based distro.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-10 19:41:43 -07:00
Dirk Hohndel
7ab9bf3ad7 Travis: build iOS against Qt 5.11.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-09 15:23:49 -07:00
Dirk Hohndel
066e01f66d Travis: build macOS against Qt 5.11.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-09 15:23:49 -07:00
Dirk Hohndel
e928c829d3 Travis: install from Homebrew instead of using a cache
Clearly something has changed here. When I first tried to use Homebrew on
Travis the update would take often so long that the build would time out. Now
it is nice and fast. So instead of wasting time with the cache let's just use
Homebrew directly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-09 15:23:49 -07:00
Dirk Hohndel
25b78d7379 build.sh: provide usage message and exit on unknown arg
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-09 15:23:49 -07:00
Dirk Hohndel
e15b41827c build-system: allow selection of Debug or Release build
So far we did a rather odd mix by default.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-09 15:23:49 -07:00
Dirk Hohndel
2de5b95acf build-system/macOS: don't get libgit2 from pkgconfig when building it ourselves
Doing that confuses the build setup and as a result the library isn't found at
runtime without some fixups.

Fixes #1469

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-07 11:32:43 -07:00
Dirk Hohndel
5c403edf79 build-system/macOS: fix up the id of libssh2 as well
For some reason we only tried to fix libgit2 but not the libssh2 that it depend
on. Weird.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-07 11:32:14 -07:00
Dirk Hohndel
c0a08b889e build-system/macOS: correctly test if we need to adjust the id of libgit2
The existing test was backwards and never worked.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-07 10:59:53 -07:00
Dirk Hohndel
d6b043cd37 build-system: tell Travis to wait longer for downloads
But simply ignore when building outside of Travis.
Of course since we are building Android in a container, we need to first pass
the environment variable to the container...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-03 14:24:18 -07:00
Dirk Hohndel
0661c74880 build-system: add travis_wait shell functions
These come originally from https://github.com/travis-ci/travis-build and are
available when running on Travis, but not when running inside a Docker
container on Travis as we do in order to build for Android.

The goal is to provide a quasi heart-beat on STDOUT during very long running
commands - without this the wget to download Qt often times out, so that's
where we are going to use this.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-07-03 14:24:18 -07:00
Dirk Hohndel
f61ac686fd tools: keep the log of translation extraction
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:21:13 +08:00
Anton Lundin
207c752396 build-system: Use the correct library name, libftdi1
The library name is actually libftdi1 , not libftdi.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
1157ad3faf build-system: Use a list instead of string + regexp
There are actually more datatypes in bash than just strings. One can for
example hold a list of strings in a list, and use that to keep track of
what we're expected to do.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
c4bf9e6d6e build-system: Don't fail if tarball is there but no dir
The previous code assumed everything was good to go if just the tar ball
was there, but if it wasn't unpacked, it all went sideways.

This makes it more robust and to actually handle that the tarball might
just be there.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
5f4006ae4f build-system: Cleanup script with shellcheck
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Dirk Hohndel
fca06fd865 Travis: build mobile on Linux with newer gcc
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-18 06:32:23 +09:00
Dirk Hohndel
0b16b547ae build-system: add another Kirigami hack
We want to be able to roll our own banner image, logo, title, and other
information in the GlobalDrawer - but Kirigami adds an ugly margin
around that. This attempts to remove that margin (but for some reason
there is still a margin on the left side).

This requires the patch command to be installed, but because of the
context sensitivity of the changes, I couldn't figure out how to do
this with sed or perl (which we already require).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-18 06:32:23 +09:00
Dirk Hohndel
1501c8fbc7 QML UI: update to newer Kirigami
This seems equally stable to what we have and doesn't appear to
introduce any new breakage.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-18 06:32:23 +09:00
Murillo Bernardes
c64f421006 build-system: use common code to download tarballs
Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-06-17 20:41:38 +09:00
Murillo Bernardes
7d92f5f811 build-system: avoid checkout when unneeded
Checkout only if current checked out version differs from
expected.

Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-06-17 08:25:59 +09:00
Murillo Bernardes
550b6f179f build-system: add function to checkout from git
git clone/checkout code was mostly the same copied over and over.

Move code to a single common function

Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-06-17 08:25:59 +09:00
Dirk Hohndel
085774d10c build-system: download libzip from our own server
The libzip.org server often times out and causes build failures.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-09 19:47:34 +02:00
jan Iversen
b18b10b467 build-system: added missing .git in get-dep-lib.sh
For unknown reasons cloning from github is slower to start if .git
is omitted.

Add .git to all "git clone" statements

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-25 07:39:08 -07:00
jan Iversen
b1b5028917 build-system: update get-dep-lib to not check double on iOS
Only mobilecomponents.sh download breeze-icons and kirigami.
This patch is merely to avoid confusion.

Before get-dep-lib in ios/download would download those, and
mobilecomponents would see that they were already downloaded.

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-25 07:39:08 -07:00
jan Iversen
ee86fecbbf build-system: integrate get-dep-lib in mobilecomponents
use get-dep-lib in mobilecomponents to do git clone of
kirigami and breeze-icons.

Remove -no-pull option

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-24 08:24:53 -07:00
jan Iversen
d18ede2cff build-system: get-dep-lib add support for kirigami and breeze-icons
mobilecomponents.sh do git clone of kirigami and breeze-icons.
should be centralized with get-dep-lib

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-24 08:24:53 -07:00
Dirk Hohndel
d8fa24dcd8 Travis: don't fail Linux build when .zsync is missing
It seems that sometimes the AppImage tooling gets confused and doesn't
create a .zsync file. That should cause Travis to fail.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-20 11:35:28 -07:00
jan Iversen
96079d7e6a build-system: libgit2 depends on libcurl and libssh2
When building with -builddeps on a "virgin" mac, configure
of libgit2 could not find libcurl and libssh2

moved building of libcurl and libssh2 in front of libgit2

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-20 08:12:10 -07:00
jan Iversen
aab33694f2 build-system: corrected -build-deps problem
Missed a "cd $SRC" so when building with
-build-deps the script broke

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-20 08:12:10 -07:00
Dirk Hohndel
dce7e46766 Mac: don't try to copy libraries we got from Homebrew
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-19 21:22:31 -07:00
Dirk Hohndel
d417d717b9 build-system: change the logic when to build what
Specifically, don't conflate needing libgit2 with the Mac -builddep
argument, and when determining if we need to build libgit2 on Linux,
make sure to also check for a version that we may have built in a
previous run of the build.sh script.

This commit is much easier to understand with
  git show -w
as it contains quite a bit of simple indentation change.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-19 21:22:31 -07:00
Dirk Hohndel
14d18276e4 Travis: add secondary Linux build target
The goal is to reduce the overall wall clock time of our test builds.

This secondary Linux target uses the no-sudo container setup with a Qt
5.10.1 backport and tests the build without BT support as well as the
mobile build (but not the full desktop build and doesn't create an
AppImage as the pre-built Qt5.10.1 is missing QtWebKit).

In exchange we remove the no-bt and mobile build from the existing linux
target.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-19 21:21:46 -07:00
Dirk Hohndel
6a91611e90 build-system: updated OpenSSL and libusb for Android
These are the latest, supported versions for OpenSSL. I have not tested
if Android would work with OpenSSL 1.1.

The lower versio for libzip is still required as libzip 1.2.0 doesn't
compile for Android.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-19 14:15:11 -07:00
jan Iversen
8e2aaa4242 build-system: update get-dep-lib with Android fix.
Android build uses wget and not curl.

Currently android uses older versions of some libs, due to that
a new switch is added temporary.

Old version tested for curl and if not found set the different versions,
however this is not a stable method for obvious reasons

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-18 16:58:16 -07:00
jan Iversen
1a86c17e28 build-system: changed build.sh to use get-dep-lib
get-dep-lib has been integrated into build.sh, which
ensures different platforms use the same versions etc.

travis is a frequent user of build.sh, but on a mac it runs
without -build-deps and instead used cached versions of the
library. This setup is alo supported

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-17 11:16:50 -07:00
jan Iversen
1ed8c87d63 build-system: enhanced get-dep-lib with "single"
Added the posibility to fetch a single third lib.

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-17 11:16:50 -07:00
jan Iversen
6d3637fce0 build-system: made get-dep-lib faster and more robust.
Secured git work only happens when cloning a dir.

There is a version for hidapi, but scripts/build.sh
(which are the source for that part of depend) has a
line:
	# there is no good tag, so just build master
and then continues with master, so it should be good
enough for get-dep-lib as well.

Signed-off-by: Jan Iversen <jani@apache.org>
2018-05-17 11:16:50 -07:00
Anton Lundin
b55c5d55e6 android-build: Build on ubuntu bionic on travis
This way we ensure we can build on the latest LTS, and not just a old
lts.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-05-17 07:36:44 -07:00
Anton Lundin
75205240df android-build: Stop installing ant, we're using grade
Since about a year ago qt-android-cmake shifted to using gradle instead
of ant, and the android sdk's stopped supporting ant to.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-05-17 07:36:44 -07:00
Murillo Bernardes
d2d2e3af3d mobile: prevent Action buttons hijack after delete
This gets delete dive working properly.

Kirigami passive notification ends up hijacking area where the
"Add dive" or "Delete" or "Discard" buttons are shown. So after
deleting a dive the "Undo" button from the notification
keeps handling the touch events even when not visible.

Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-05-13 07:03:15 -07:00
Cristian Ionescu-Idbohrn
aa96aa3ac3 Simplier way to get QT_VERSION
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-05-12 19:45:28 +03:00
Dirk Hohndel
387aee4cdf Mac: update build.sh to hack around autotools problem
For reasons I cannot explain, running configure for libdivecomputer claims that
certain feature tests pass, even though those features demonstrably aren't
there. This is happening for two compiler warning flags (-Wrestrict &
-Wno-unused-but-set-variable) as well as the test for clock_gettime.

To work around this, we manually edit the config.h file and the created
Makefile before building libdivecomputer.

This happened on macOS 10.11.6 with clang-800.0.42.1 (part of Xcode 8.2.1).

Tangentially related to:
See #1263

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-11 21:08:41 -07:00
jan Iversen
2408134014 Add script to download/clone 3rd party libs
Using one script instead of having the downloads in all build.sh ensures
consistency and lowers maintenance.

Note: this script is not intented to be run directly, it is intented to be
integrated in the various build.sh

Signed-off-by: Jan Iversen <jani@apache.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-11 10:44:55 -07:00
Dirk Hohndel
c67fe97ba1 Travis: remove flag for iOS that is no longer necessary
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-10 20:41:58 -07:00
Murillo Bernardes
7d6a48b59f iOS: use recommended variable for bundle ID
We used to hard-code the bundle ID which meant that developers always had to
manually override the bundle ID in order to be able to sign the iOS app for
local testing.  With this change, the official builds will continue to work
without manually opening the project in Xcode, yet other developers will use
the Apple-recommended format in order to set their own bundle ID.

This is based on a suggestion by Murillo Bernardes.

See #1246

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-10 08:19:33 -07:00
Robert C. Helling
3198b2e3ca Add a comment on building option -mobile
...to explain the difference between building the mobile
version to run on desktop and crossbuild for a mobile OS.

This should address #1247

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-05-08 12:02:17 +02:00
Dirk Hohndel
450f0992a0 Travis: fix Android build by forcing Ubuntu:xenial for container
The build fails with newer versions and Ubuntu:latest switched to bionic
a few weeks ago.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-07 00:39:39 +02:00
Dirk Hohndel
2137b21e1b iOS: allow building for the simulator & switch debug/release builds
It makes sense to be able to control this with command line options.
On Travis this avoids the signing problem and makes the build much faster.
Still should be enough to catch iOS breakage.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24 15:47:25 -07:00
Dirk Hohndel
c145911767 Travis: add iOS build
Disable most warnings for iOS test build as otherwise the Travis log file will
exceed 4MB and the build will fail.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24 15:45:44 -07:00
Dirk Hohndel
96611c630f Travis: make qt55 build report build failures correctly
The proxy for this is a check to see if the Subsurface binary was
created (in which case we assume that the build succeeded).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-15 16:05:50 -07:00