Commit graph

352 commits

Author SHA1 Message Date
Jan Mulder
c8e9b93404 build system: split qt-models into parts
For a long time, I did not realize that a lot of qt-models are only
used in the mobile app, or only used in the desktop application.

This commit splits the qt-models in 3 parts. Used in both mobile and
desktop, used in desktop only, used in mobile only.

There is no other code change in here, other than cmake changes.

To me, this gives at least developers more insight where code is
actually used, and there is a small benefit in footpoint.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10 16:44:15 +01:00
Jan Mulder
a5b44362c6 mobile: newer Kirigami SHA
This commit consists of the following 3 parts:
1. There are 2 source files added, adapt our build process
accordingly.
2. Due to a change in icon and kirigami QML prefixes, we need to
adapt for this as well. Changed mobile-resources.qrc for that.
When this would not be changed, the icons will not be found.
3. To further prepare for the future, abandon the iconName
property in favour of the new icon grouped property, which
can have more attributes than only the name. But currently
it is only a syntactic change.

Tested on Android device, and no visible changes.

Signedoff-by: Jan Mulder <jlmulder@xs4all.nl
2018-01-03 14:04:08 +01:00
Dirk Hohndel
f067d3b5d6 Fix build for cmake before 3.10
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-12-24 13:50:59 -08:00
Dirk Hohndel
795f6e24ea Silence cmake 3.10 warnings
Explicitly turning of automoc and friends for every single auto
generated file seems a rather dumb approach...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-12-24 11:34:49 -08:00
Berthold Stoeger
0f3bda4c44 Compile with -O2 optimization even in debug mode
The -O0 default is useless owing to extremely convoluted assembly.
Moreover, many warnings depending on data analysis are ineffective
with -O0.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2017-12-18 08:17:35 -08:00
Dirk Hohndel
bd66ab15da Turn on -Wall
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-12-17 09:08:21 -08:00
Dirk Hohndel
5be38b2b14 cmake: building Subsurface-mobile without BT is no longer supported
It just doesn't seem to make sense. Why would you do that.
Allowing this options makes things more complicated as we need to
test for that in various places.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-12-05 19:29:59 -08:00
Lubomir I. Ivanov
249b758b0d cmake: make sure to only handle objcopy from MXE
The native Windows build does not use the MXE tools
and call such as `i686-w64-mingw32.shared-objcopy`
can fail.

Attempt to first find if the program exists using
`find_program()` and only then call it.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-15 23:13:17 +01:00
Lubomir I. Ivanov
bd9dad7371 MXE: move the objcopy calls to cmakelists.txt
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>
2017-11-15 12:28:51 +01:00
Stefan Fuchs
76286c4ece Rename README to README.md in some scripts, makefiles,...
Was needed after the file itself was renamed.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-11-04 10:55:11 -07:00
Dirk Hohndel
ccfdd6deec Mac build: use more system libraries
libxml2, libxslt, and libsqlite3 are new enough on macOS to no longer
require our own versions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-23 11:51:21 -04:00
Dirk Hohndel
12dac214aa cmake: deal with occasional build order issue
I only ran into this a couple of times and can't figure out why it
picked the order in which it tried to build things - but hard coding the
dependency seems to have fixed it (then again, since I didn't always run
into this, I'm not sure).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-20 17:23:00 -04:00
Darexon
53c503dc35 Typo fix remoev -> remove
Signed-off-by: Cameron Phillips <darexon331@gmail.com>
2017-10-07 16:58:05 -07:00
Dirk Hohndel
8e295db70e Revert "QML UIL: go back to older Kirigami"
This reverts commit 893ff019dbabf356a477da0bdf7d954123759018.

Thanks to the amazing support from Marco Martin the theming issue in
Kirigami master has been fixed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-06 23:22:12 -07:00
Dirk Hohndel
49101b9f04 QML UIL: go back to older Kirigami
This brings back correct theming.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-05 22:25:42 -07:00
Dirk Hohndel
d774b6cc49 Switch back to latest Kirigami
And fix the build issue.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-04 09:05:27 -07:00
Dirk Hohndel
08e4d2dc5e cmake: enable BLE on Macs
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-17 09:54:04 -07:00
Lubomir I. Ivanov
2b40e15713 remove Marble from packaging and build scripts
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>

---
please note, that i have no way to test most of the scripts ATM.
2017-09-04 07:46:35 -07:00
Dirk Hohndel
8fdddf371b cmake: try to find the Googlemaps plugin on Linux
Different flavors of Linux put this in different subdirectories. Just
have cmake find the plugin for us.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-26 11:52:58 -07:00
Dirk Hohndel
2acdb32e83 Enable googlemaps plugin from build directory on Linux
With this change, when running Subsurface from the build directory, it
should find a googlemaps plugin that was installed into the
install_root.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-25 09:02:55 -07:00
Dirk Hohndel
37b4522438 Mac build: install googlemaps plugin
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-08-02 23:07:47 -07:00
Dirk Hohndel
c7cd76bae3 Mac install: add missing esri plugin
Thanks to Lubomir for figuring what was missing!

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-29 07:20:35 -07:00
Dirk Hohndel
e04a81bcc0 cmake: install QML components for Subsurface as well
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-28 22:03:22 -07:00
Dirk Hohndel
939d7ee804 cmake: only install Marble files when we use Marble
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-28 22:03:22 -07:00
Lubomir I. Ivanov
762a9d2ec2 cmake: add the Quick, Location, QuickWidgets dependencies
Applies only to DesktopExecutable for now.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-07-28 07:31:11 -07:00
Dirk Hohndel
20f5609a6c Mac build: correctly deal with no printing
Including working around a weird hack to install the Grantlee
plugins.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-15 21:51:42 -07:00
Dirk Hohndel
4604b6a8de BLE: require Qt 5.6 and suggest Qt 5.9.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-30 16:55:53 -07:00
Dirk Hohndel
d67421c9e6 Enable BLE on Android
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24 22:32:56 -07:00
Linus Torvalds
196adb591b Very early and likely quite broken BLE GATT code
This is some very early and hacky code to be able to access BLE-enabled
dive computers that use the GATT protocol to send packets back and forth
(which seems to be pretty much all of them: a vendor-specific GATT
service with a write characteristic and a notification characteristic
for reading).

For testing only.  But it does successfully let me download dives from
my EON Steel and my Scubapro G2.

NOTE! There are several very hacky pieces in here, including just
"knowing" that the write characteristic is the first one, and the
notification characteristic is second.  The code should actually check
the properties rather than have those kinds of hardcoded assumptions.

It also checks "vendor specific" by looking at the UUID string
representation, and knowing that the standard ones start with zero.
Crazily, there doesn't seem to be any normal way to test for this,
although I guess that maybe the uuid.minimumSize() function could be
used.

There are other nasty corners. Don't complain, send me patches.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24 21:58:01 -07:00
Salvador Cuñat
3775f459b5 CMakeLists.txt: Remove SmartTrak import options
Remove SmartTrak import options from Subsurface's CMakeLists,txt, as a
first step to keep the importer apart from the main application.
2017-06-11 13:50:30 -07:00
Dirk Hohndel
b400a5a855 Android build: rely on KEYSTORE environment for release build
With the gradle build it seems we automatically get a Debug build unless
the keystore is defined.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-27 18:54:03 -07:00
Thiago Macieira
91d384d988 Don't use the deprecated CMake variable
The *_VERSION_STRING variable has been deprecated in Qt since 5.1.0. Use
the non-deprecated variable instead (which is not a string).

Qt 5.9.0 has a bug in the deprecated variable. Since it's deprecated,
it's probably not going to be fixed until 5.9.1. See
 https://bugreports.qt.io/browse/QTBUG-60936

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-27 07:34:17 -07:00
Jan Mulder
1df4b6c11b Android build: Add BUILDTOOLS_REVISION
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>
2017-05-27 07:09:27 -07:00
Dirk Hohndel
3a003f4c10 QML UI: we now depend on QuckControls2
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-01 09:37:15 +02:00
Marco Martin
751626eec5 QML UI: Fully port dive edit to Kirigami2
Completely adapt to the api changes of OverlaySheet in Kirigami2
in order to achieve the same look and behavior for the dive
edits that had with kirigami1

Port most components to QtQuickContrls2, except comboboxes
in the dive edit sheet that will need a new control type

Signed-off-by: Marco Martin <notmart@gmail.com>
2017-04-01 09:35:51 +02:00
Jeremie Guichard
597539ce39 Fix double to int truncation in C++ code
Wfloat-conversion enabled for C++ part of the code
Fix warnings raised by the flag using lrint

Original issue reported on the mailing list:
The ascent/descent rates are sometimes not what is expected.
E.g. setting the ascent rate to 10m/min results in an actual
ascent rate of 9m/min.
This is due to truncating the ascent rate preference,
then effectively rounding up the time to reach each stop to 2s intervals.
The result being that setting the ascent rate to 10m/min
results in 20s to ascend 3m (9m/min), when it should be exactly 18s.

Reported-by: John Smith <noseygit@hotmail.com>
Reported-by: Rick Walsh <rickmwalsh@gmail.com>
Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
2017-03-24 09:39:25 -07:00
Jeremie Guichard
2b06a0b223 Fix potential double/float to int rounding errors
Not using lrint(f) when converting double/float to int
creates rounding errors.
This error was detected by TestParse::testParseDM4 failure
on Windows. It was creating rounding inconsistencies
on Linux too, see change in TestDiveDM4.xml.

Enable -Wfloat-conversion for gcc version greater than 4.9.0

Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
2017-03-09 23:07:30 +07:00
Jeremie Guichard
7b08f8d23c Move CMake variables printing into a utility macro
Added cmake_variables_helper.cmake providing 2 helpers
 - print_variable
 - print_all_variables

Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
2017-02-25 09:24:23 -08:00
Jeremie Guichard
1e2580c3fd Use SUBSURFACE_TEST_DATA definition to point to test data dir
Update tests with a (compile time) option SUBSURFACE_TEST_DATA,
pointing to test data base path. It is needed for cross compilation cases.
SUBSURFACE_TEST_DATA is set to SUBSURFACE_SOURCE by default,
or configurable via cmake option -DSUBSURFACE_TEST_DATA="...".

Signed-off-by: Jeremie Guichard <djebrest@gmail.com>
2017-02-24 01:10:22 -08:00
Dirk Hohndel
f563f73607 Fix build breakage with earlier Qt versions
In order to get the translations right for Windows we now explicitly
pull in a lot more translation files - some of which don't exist in
earlier Qt versions.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-02-03 10:58:00 -08:00
Dirk Hohndel
d62e46134d QML UI: allow building Subsurface-mobile on desktop
Since we manually track Kirigami we need to compile the desktopicon.cpp
file when not building on Android or iOS.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-22 16:59:23 -08:00
Dirk Hohndel
14b4c94ded Revert "QML UI: build against latest Kirigami"
This reverts commit a842e44b68.
2017-01-21 14:42:10 -08:00
Dirk Hohndel
73641c4e73 build.sh: if new enough libgit2 is installed, use it
Right now this is only designed for Linux where current distros all should have
a new enough libgit2 (and our instructions tell people to install this with
system tools, so we should also use it).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-16 17:00:55 -08:00
Dirk Hohndel
72bcb6481f CMake dependency fix
With this the auto generated headers should be ready before filtermodels.cpp
needs them

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-03 07:06:33 -08:00
Dirk Hohndel
7312cfc2d0 CMake: more changes to a simple conditional
It seems the CMake versions on Linux and Mac disagree about what might
be the correct way to use parenthesis in a mixed AND/OR conditional.
This may seem overkill, but it made both CMake versions happy.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-01 10:31:47 -08:00
Dirk Hohndel
3657cbe021 Mac build: make std C++ lib hack catch more situations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-01 14:23:49 +02:00
Dirk Hohndel
e89c205990 Mac build: hack to get the correct std C++ lib on Lion
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-01-01 14:23:49 +02:00
Robert C. Helling
529a4d499b Start transition from QWebKit to QWebEngine
This removes all references to WebKit if cmake option USE_WEBKIT is enabled.
For the user manual it changes it to WebEngine (seems to work for me).

Similar for the Facebook connection (minus a reference to a cookie jar).
This I could not test at the moment, as I wrote this on a train.

Printing does not work, it is a null operation at the moment. Currently,
large parts of of the printing code are commented out as there is no direct
way to access page elements in WebEngine. It seems this needs to be done
via Javascript (with a callback invoked). There is new functionality in
WebEngine to render a view to a PDF file but this needs more work (and
probably some thoughts towards page breaks).

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2016-12-30 19:43:00 +01:00
Dirk Hohndel
a842e44b68 QML UI: build against latest Kirigami
But of course this doesn't work, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-12-27 01:47:01 -08:00
Dirk Hohndel
8cc7e63309 Add commented out hack to dump all CMake variables
I use this all the time when debugging CMake issues.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-09-22 17:12:49 -07:00