Commit graph

449 commits

Author SHA1 Message Date
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
Dirk Hohndel
131c5a2abe Fix building of Facebook support
No idea when this got broken. Fix seems like a hack as that variable
should get set in the plugin CMakeLists.txt. But it seems to work, so
"whatever".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-09-22 17:12:00 -07:00
Dirk Hohndel
78dc3a3efe Revert "Add a simple cp2130 libusb driver"
This reverts commit 93ef223a31.
2016-09-22 14:56:31 -07:00
Anton Lundin
93ef223a31 Add a simple cp2130 libusb driver
This adds a simple cp2130 userspace driver. Its probably unusable in the
real world but its a great base to build upon.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-09-18 07:12:16 -07:00
Dirk Hohndel
79ab41dfd8 Android build: don't try to bundle libssh2, either
Since we don't link against it, no need to bundle it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-08-28 19:20:18 -07:00
Dirk Hohndel
a5cf8aaa21 Android build: try to create APK that works on Android 7.0
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>
2016-08-24 13:36:32 -07:00
Dirk Hohndel
7dd8a62ced Don't build Kirigami as a library
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>
2016-08-18 21:38:13 -07:00
Dirk Hohndel
af282a6061 Don't build kirigami in the source tree
Instead build it in its own build tree, where it belongs.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-08-14 09:35:12 -07:00
Marco Martin
24718adfc3 Use kirigami built in static mode
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>
2016-08-14 07:56:05 -07:00
Guillaume GARDET
8b35defa48 Fix build (link) on openSUSE builds (maybe due to recent cmake version)
Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-07-23 10:54:36 +09:00
Anton Lundin
98b404237a Remove unused cmake flag
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-06-23 16:35:47 -07:00
Anton Lundin
4f850e2aa5 Build Subsurface c++ as c++11 code
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>
2016-06-23 16:32:10 -07:00
Dirk Hohndel
7be962bfc2 Move subsurface-core to core and qt-mobile to mobile-widgets
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>
2016-04-04 22:33:58 -07:00
Jeroen Massar
4a8619349a Debug reminder: how to get more verbose details out of cmake
Signed-off-by: Jeroen Massar <jeroen@massar.ch>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-16 08:59:37 -07:00
Dirk Hohndel
a64eef7f82 Android build: automate setting the right version number
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-03-05 17:14:33 -08:00
Tomaz Canabrava
219299dc01 Correctly handle SubsurfaceMobile
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 08:04:24 -08:00
Tomaz Canabrava
89eed5d36e Untangle Library Linkage
with the adittion of gpslistmodel/location, the libraries
qt-models had a direct dependency on subsurface-core, and
subsurface-core had a direct dependency on qt-models, this is
bad.

Moving a bit of code around I'v managed to clean this out, and
also to clear a bit of uneeded code (GpsTracker and gpsTracker where
basically the same thing.)

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-08 08:04:04 -08:00
Dirk Hohndel
a7f8a7574e Create GpsListModel in order to be able to display GPS fixes
This will allow us to visualize the GPS fixes that are currently stored in the
QML UI.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 21:29:05 -08:00
Dirk Hohndel
0f31102020 Don't try to install Grantlee files when building Subsurface-mobile on Mac
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-07 10:22:31 -08:00
Miika Turkia
164d2f8c07 Enable BT_SUPPORT compilation flag
We need to enable the BT_SUPPORT compilation flag to get the support
built in.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-01-04 10:00:44 -08:00
Dirk Hohndel
98fb625667 Cmake: only need Marble/Grantlee/Manual for desktop version
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-30 09:55:24 -08:00
Dirk Hohndel
b87df3ecaa Cmake: don't add the BT_SUPPORT define too early
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-21 10:53:55 -08:00
Dirk Hohndel
c819d40c19 Cmake: don't use wildcards when deleting debug components
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-19 22:09:31 -08:00
Dirk Hohndel
c7278cd9ed Cmake: adjust dlllist.cmake to no longer be created on the fly
Because of this a bunch of variables need to be passed in and the quoting
changes in rather subtle ways.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 15:59:15 -08:00
Dirk Hohndel
88d5fc0fbc Cmake: more use of SUBSURFACE_TARGET and more complete macdepoyqt args
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 11:50:41 -08:00
Dirk Hohndel
7c095419f7 Cmake: consistently use SUBSURFACE_TARGET and get the capitalization right
Also clean up a bit of the whitespace mess right where I'm making changes

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 11:49:58 -08:00
Tomaz Canabrava
13573915b6 Fix CMake to not add Facebook on Android
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 11:48:15 -08:00
Tomaz Canabrava
8abbcc5598 Add the correct target on the Android build
The android build could be the Desktop and the Mobile app,
we cannot force it to be the mobile.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 11:47:50 -08:00
Tomaz Canabrava
92d1dbe3fd Build on android is a shared library
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 10:17:51 -08:00
Tomaz Canabrava
9626b8ad84 Simplify IF for OSX handling
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-17 10:17:39 -08:00
Dirk Hohndel
d4184f852d Cmake: bring back the QtXml hack and other Mac changes
The hack in commit c8be04edad ("Mac build: move the QtXml hack into Cmake")
had been lost in the latest cmake rewrite.

Similarly, the modified BUNDLE info and the manual QML deployment.

Strangely this still doesn't correctly create a Subsurface-mobile.app on Mac.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 15:33:30 -08:00
Dirk Hohndel
5672d3f567 Cmake: indentation fix
I split this out as separate commit so that the previous commit becomes easier
to read.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 14:27:27 -08:00
Dirk Hohndel
060b5e2189 Cmake: fix install
This had not been updated since the change of direction that we would support
building Mobile and Desktop on all supported platforms.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 14:25:38 -08:00
Dirk Hohndel
44990671f1 Cmake: correctly read in the enabled translations
FILE READ doesn't do what we want. It's the STRINGS command that considers \n
as whitespace and gets the correct result.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 14:24:47 -08:00
Dirk Hohndel
ec48e9ce5a Cmake: fix QtQuick component designator
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 14:03:31 -08:00
Dirk Hohndel
607a601559 Cmake: fix another Mobile/Desktop confusion
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 10:41:28 -08:00
Dirk Hohndel
23265f31b5 Cmake: fix Application/Executable confusion
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-16 09:48:20 -08:00
Tomaz Canabrava
b8483a1e6c Fixed cached variable
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:23:15 -08:00
Tomaz Canabrava
5acfc8c632 Fix targets on mobile and desktop
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:23:02 -08:00
Tomaz Canabrava
c3493fa141 Fix some broken-by-design code
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:21:28 -08:00
Tomaz Canabrava
27bf6f68f6 Create targets MobileApplication and DesktopApplication
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:21:23 -08:00
Tomaz Canabrava
89658cc291 Remove checking the Platform and the App Type,
The check must be done, but not on the way I tried to do.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:21:14 -08:00
Tomaz Canabrava
85946700eb Complain if no Correct App version was passed to be build
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 09:21:07 -08:00
Tomaz Canabrava
3462da19fd Finish things
i hope

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:02:16 -08:00
Tomaz Canabrava
6087c246c4 Read the translations from the translations file
instead of hardcoding everything on the main cmake

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:01:48 -08:00
Tomaz Canabrava
30999a6898 Move run on build dir code out of the main cmake
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:01:48 -08:00
Tomaz Canabrava
cc6875d39e Rework the dependencies on the Android platform
We where able to build the android-mobile on desktop and the desktop on
android, now I allow only mobile on android and desktop on desktop.
this is to make the cmake clear, and we can also use the emulator on
the android platform, so nothing is really lost.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:01:46 -08:00
Tomaz Canabrava
9079701176 Move adding -lpthread
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:01:16 -08:00
Tomaz Canabrava
320cfccd71 Change the way we handle targets
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:57 -08:00
Tomaz Canabrava
47a985b0c7 correct android usage
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:57 -08:00
Tomaz Canabrava
b6eb865803 Issue an error when no platform is found
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:56 -08:00
Tomaz Canabrava
aaafaade5e Use a single variable to handle the extra Qt stuff
It's easier to debug what's wrong this way

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
24f0abe347 Remove commented out code
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
32714faf24 Remove the Dll finding code from within the Main CMake
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
c7a3cb68f5 We don't need the same test twice for the same thing.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
4ae0ce0c60 Code Cleanup
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
b33059e08b We don't support insource builds anymore
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
6948859678 Move include directories a bit down below
Better to follow the CMake logic and se those near the
sources

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:31 -08:00
Tomaz Canabrava
957f5532b8 Move OSX code to OSX IF
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:30 -08:00
Tomaz Canabrava
2637b5c3f1 Rework Options order, add SUBSURFACE_TARGET_PLATFORM flag.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 08:00:04 -08:00
Tomaz Canabrava
f26df4f80a Move Handling of user manual to Modules directory
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:37 -08:00
Tomaz Canabrava
268fbf3fb1 Handle VersionGeneration outside of the main CMakeFile
This is actually a good change: we used to write a new
CMake file in configure time just to move it outside of the
source to the build dir at compile time. Now this file is
pre-created and it's only moved.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:37 -08:00
Tomaz Canabrava
f60e86b19c Move FTDI and Grantlee configuration out of CMakeLists.txt
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:36 -08:00
Tomaz Canabrava
cef86356f5 Add HandleFindMarble.cmake
Marble stuff should be inside handleMarble file, this clears
the Main CMakelists.txt file.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:01 -08:00
Tomaz Canabrava
126d9a00e4 Added HandleFindLibDiveComputer.cmake
Anoter attempt to clear the Main CMakeLists.txt file

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:01 -08:00
Tomaz Canabrava
65cecad564 Add some commits to make cmake clear
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:01 -08:00
Tomaz Canabrava
c738dade47 Ensure Out of Source builds
In source builds creates a lot of noise on the source tree,
creating tons of temporaries that makes git status cry, and it also
creates dangerous files that have names similar to actual source
and could make a developer use them by mistake.

Make out of source buiild mandatory to remove that, it also makes
CMake code easier to read.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:59:01 -08:00
Tomaz Canabrava
24f3743fc1 Start to clean the Main CMakeLists.txt filel
CMake is a strange and complex language for buildsystems,
and as such we need to let the main CMakeLists.txt be as
clear as possible.

Moving a bunch of code that deals with finding git via
default CMake way or pkg_cofig to a file named 'HandleFindGit'
on our cmake/Modules folder.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
2015-12-16 07:58:56 -08:00
Dirk Hohndel
b5905f3ab7 Cmake: remove debug code that accidentially slipped in
And try to fix the upper case / mixed case confusion that we apparently
have with libssh2 - oh how I hate this stuff.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-15 17:47:15 -08:00
Dirk Hohndel
7aab635585 Remove support for older libgit2 - we now require 0.23 or later
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>
2015-12-15 13:33:00 -08:00
Dirk Hohndel
c8be04edad Mac build: move the QtXml hack into Cmake
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>
2015-12-09 15:24:25 -08:00
Dirk Hohndel
b928dff3ce Only install QML Framework files for Subsurface-mobile
The workaround to building Subsurface-mobile on Mac messes with the ability to
sign the bundle, so only do this when building Subsurface-mobile which we don't
bundle, anyway.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-06 13:44:32 -08:00
Anton Lundin
59042b2ed0 Fix disabling of facebook integration
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-02 09:21:04 -08:00
Anton Lundin
58901690dd Remove defaults for Android from cmake
Some of the flags needed to build for android was set in cmake. There
are many more that needs to be set correctly for things to work, so
having some in cmake and some in the Android build.sh is just confusing.

This removes the bits from cmake and moves everything into build.sh.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-12-02 09:20:50 -08:00
Dirk Hohndel
05bf480e2e CMake hack to build Subsurface-mobile on Mac
With this running

	make && make install

should give you a Subsurface-mobile.app that you can execute (either with
double click or using "open Subsurface-mobile.app" from the command line).

This contains a couple of hacks but I didn't try too hard to make this clean
since Tomaz is redoing the CMake build system, anyway and I'll need to make
sure this still works once he's done.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-30 15:06:18 -08:00
Dirk Hohndel
2c77aa5519 Cmake: fix building of Subsurface-mobile on Mac
The error message was completely useless, but it turned out to be an issue of
the order of arguments to add_executable().

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-24 09:38:51 -08:00
Dirk Hohndel
456cc3955a Location service: move into subsurface-core
While this is primarily something targeted at a mobile device, with many
of the 2 in 1 devices it is possible that the user might be running the
desktop version of Subsurface on a mobile device.

As a first step to make it possible to collect GPS fixes on such a device
we need to make the infrastructure to do so available in the desktop
application as well.

This still needs to be hooked up in the desktop UI.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 18:34:49 -08:00
Dirk Hohndel
4cf20c3448 Cmake: add SUBSURFACE_MOBILE definition earlier
This way it is set when subsurface-core is built.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-18 14:41:47 -08:00
Salvador Cuñat
427c696c70 SmartTrak import - Add build capability to cmake
This enables posibility of building standalone import tool via cmake.
Adds an option SMARTRAK_IMPORT (defaults to OFF) which, if turned ON,
will require glib-2.0 and libmdb libraries to be installed, and, calling
will produce an executable with the highly original name of smtk2ssrf.

I have no capability to cross-compile to windows, so I haven't even
tried to put this in Win, less say in Mac. I expect linux users which
may be actual users of SmartTrak, to test this before trying to build on
windows, although the target public will probably be the windows users (or
at least, ex windows user).

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-12 07:39:18 -08:00
Dirk Hohndel
9195f247c4 Location service: move files around to fit new directory layout
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-11 12:37:57 -08:00
Dirk Hohndel
136b87e7c0 Location service: Add GPS location infrastructure for Subsurface-mobile
This doesn't do a thing - just adds the empty class and sets up the Cmake
file so it finds the required Qt components for Subsurface-mobile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-11 12:36:49 -08:00
Miika Turkia
77d7e773b9 Enable BT compilation earlier
Commit ba55c60395 broke Bluetooth
support for me. This patch moves the setting of BT_SUPPORT earlier,
re-enabling BT download option on the download dialog.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-10 09:10:04 -08:00
Tomaz Canabrava
c71df5baa5 Don't rely on CMAKE_AUTOUIC
Some old CMakes that we use had problems with it, change to use
the qt5_wrap_ui macro that's bundled with Qt.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 18:00:56 -08:00
Tomaz Canabrava
66091ff853 Remove Facebook from Plugins
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-09 18:00:56 -08:00
Tomaz Canabrava
4ddf4f6d83 Removed C++11 from the code.
Make Dirk ungrumpy

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-08 16:33:34 -08:00
Dirk Hohndel
761c3e4718 Revert "Mac: don't use C++11 on older clang versions"
This reverts commit acb74f25f7.

Better not enable it anywhere
2015-11-08 16:33:19 -08:00
Dirk Hohndel
871f585f42 Make building plugins optional
This currently fails at least on my old Mac that I use to create binaries
that work on 10.7 and newer.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-08 16:31:38 -08:00
Dirk Hohndel
acb74f25f7 Mac: don't use C++11 on older clang versions
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-08 15:34:15 -08:00
Sebastian Kügler
aae4a326f4 organize qml files in subdirectories
This makes the organization of the qml files a bit more fine-grained, it
prevents mixing of .cpp and QML files, and also of what's compiled, and
what's included in the app as qrc data.

In particular:
- subsurface specific QML items go into the qml/ subdirectory
- theme and unit definitions to into qml/theme subdirectory (they
  already were located in a theme directory)
- generic components, such as our Label goes into qml/components

This facilitates sharing of functionality and identifying common stuff
better. Ideally, we can pull qml/theme and qml/components from a
standardized set at some point, so we don't have to maintain that code.

Signed-off-by: Sebastian Kügler <sebas@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-07 09:00:59 -08:00
Dirk Hohndel
b76d3fa25f Better file names for Subsurface-mobile related sources
They aren't Android specific - they are for the QML UI mobile app which
should run on iOS as well.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-06 13:44:13 -08:00
Dirk Hohndel
06e65e4c02 Cmake: untangle subsurface and subsurface-mobile
In the cmake restructuring it seems that subsurface-mobile building got
completely messed up. With this subsurface-mobile still doesn't actually
build (still too many unfulfilled dependencies, but we're getting closer).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 15:06:10 -08:00
Rex Dieter
fcf47552c6 Use target_link_libraries for Grantlee
This allows for finding headers when not in /usr/include (like
parallel-installable distribution-packaged grantlee5)

Signed-off-by: Rex Dieter <rdieter@fedoraproject.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-05 13:45:50 -08:00
Dirk Hohndel
ba55c60395 Cmake: fix BT definition
This was set twice, the first time before we checked that we have a new
enough Qt version installed.

Also fixed a typo.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-11-03 09:20:47 -08:00
Tomaz Canabrava
53a5f6d7a4 Make code compile in gnu11 and c++11
This is to make it possible to use some nice to have features of
c11 and c++11 like range based loops, delete default functions,
auto variable assignment. Talked to Dirk about this and he is ok
with the change, but he also states that he will not accept lambdas

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:51 -07:00
Tomaz Canabrava
7cd9e2b7bb Make icons work again
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:50 -07:00
Tomaz Canabrava
225ac07005 Clear the main CMake file
A bit of dust was setting here, when I moved tons of things around
I forgot to remove some bits.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
044e593957 CMake for tests in its own folder
Besides making it more simple to add a new test now since
you don't need to play hide and seek with the main cmake
this has another good thing: on IDE's that scan the cmake
to create targets on the project tree, the main project
was being popullated with test-targets on the main tree
and not inside the tests directory.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
1d6683f3e0 Move Profile widget out of desktop-widgets
The reason for that is, even if profile widget is made with qpainter
and for that reason it should be a desktop widget, it's being used
on the mobile version because of a lack of QML plotting library that
is fast and reliable.

We discovered that it was faster just to encapsulate our Profile in
a QML class and call it directly.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
50ec7200e6 Single CMake to handle the models
This one was pretty easy because of the work I did a few months
ago to separate the models from the UI.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
45c9764073 main.cpp -> {android-main, desktop-main}
This is needed to compile both in a single call to make. Also it will
help removing some of the mistakes in the current android version:
it always created the mainwindow, even without using it for anything,
so tons of memory will be freed now for the android version, making it
snappier and smoother.

This is a necessary move so we don't need to #ifdef all over the place
for the two different versions, and imo the changes needed to keep both
versions will not be that huge if we keep things in subsurface-core
sane.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
e49d6213ad Move qt-ui to desktop-widgets
Since we have now destkop and mobile versions, 'qt-ui' was a very
poor name choice for a folder that contains only destkop-enabled
widgets.

Also, move the graphicsview-common.h/cpp to subsurface-core because
it doesn't depend on qgraphicsview, it merely implements all the
colors that we use throughout Subsurface, and we will use colors on both
desktop and mobile versions

Same thing applies for metrics.h/cpp

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:49 -07:00
Tomaz Canabrava
588abd019f Move the icons to the icons folder
There was no reason at all to keep those icons on the root
folder.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:48 -07:00
Tomaz Canabrava
6cd711a11b Modify code to make it compile after rebase
Did a git rebase and some stuff changed in the meantime;
This is a compatibility commit: Add a few include directories
on the cmake to quiet some ui_headers.h not being found (the
ones that are created automatically by uic) and a few noiseances
like models requiring interface functionality.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:48 -07:00
Tomaz Canabrava
4c0156e3d5 Move all core-functionality to subsurface-core
And adapt a new CMakeLists.txt file for it. On the way I've also
found out that we where double-compilling a few files. I've also
set the subsurface-core as a include_path but that was just to
reduce the noise on this commit, since I plan to remove it from
the include path to make it obligatory to specify something like

 include "subsurface-core/dive.h"

for the header files. Since the app is growing quite a bit we ended
up having a few different files with almost same name that did
similar things, I want to kill that (for instance Dive.h, dive.h,
PrintDive.h and such).

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-30 10:36:48 -07:00