Commit graph

7586 commits

Author SHA1 Message Date
Dirk Hohndel
7596db28b5 cmake: allow looking for optional libraries
And use this to look for libusb.
If it's there then libdivecomputer likely was linked against it. If it isn't
then we don't need it, either.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-10 12:08:26 -07:00
Dirk Hohndel
25467aa85a Update the INSTALL file to reflect the switch to cmake
The cross building instructions for Windows are still lacking.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 15:50:11 -07:00
Dirk Hohndel
93559e81e2 Update the mxe based sample script
Working on making the different ways we build things more consistent

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 15:36:20 -07:00
Dirk Hohndel
435ec2cbc2 build.sh: use "install-root" for our local install destination
This seems less confusing then calling it just "install".
Also adjust our cmake/Modules/Find... files accordingly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 15:30:48 -07:00
Joakim Bygdell
68ec73f1b0 Recmode: Fix ascent gas consumption.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 14:36:33 -07:00
Joakim Bygdell
afea30fd8a Recmode: Allow the user to specify gas reserve.
Since most regulators have an intermediate pressure of 10bar
the minimum value is 10 while the max is 99.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 14:36:17 -07:00
Joakim Bygdell
695637dcff Recmode: Take safety stop into account when calculating ascent gas consumption.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 14:35:46 -07:00
Tomaz Canabrava
a8d06b848e Move the translations to it's own subfolder
By adding a new CMakeLists.txt file and configuring
the translations inside of it's folder, the buildsystem
will compile everything on that folder.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 11:57:30 -07:00
Tomaz Canabrava
1a662df648 Use Qt5Translations to deal with translations
And remove the old code that did the same thing in
a very complex way.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 11:16:44 -07:00
Tomaz Canabrava
a56c0f227d We use static library if we find - option was not being used.
Currently we search for a static library and if we don't
find it, we search for a shared library. If one of them
is found, we return success but if none of them is found,
error. So - A static library for libgit and libdivecomputer
is preferred over the shared one.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-09 11:16:30 -07:00
Dirk Hohndel
3a06bb37d4 Update build script to cross build Windows using mxe
The MinGW based script is still there for reference, but that's no
longer how I build the Windows binaries.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 14:24:03 -07:00
Dirk Hohndel
5b1d7541dd Update the packaging script to my latest version
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 14:15:42 -07:00
Dirk Hohndel
20c1907adb When building from tar file, check .gitversion to get the correct version
Distribution builds on Linux tend to be made from tar files, not from git trees.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 14:15:42 -07:00
Dirk Hohndel
dc47003e5b Update the build rules for .deb based builds
With this we also give up on building daily builds on Ubuntu 12.04
The cmake based infrastructure very much assumes Qt5 at this point.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 14:15:42 -07:00
Dirk Hohndel
9f532edb67 Update OBS spec file to current version
The old one was
a) outdated and
b) didn't work with cmake so it was rather misleading to have here.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 13:34:27 -07:00
Dirk Hohndel
069b4b2b5e Remove the outdated and mislreading README
It's been a LONG time since this was correct

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-08 13:32:23 -07:00
Dirk Hohndel
d6dc1d01df cmake: fix typo
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 20:49:21 -07:00
Tomaz Canabrava
c4a352af1f There's no need to search for a qmake anymore
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:27:39 -07:00
Tomaz Canabrava
fe37ce02d1 Small changes to the build-script
- libgits version bump to 0.22 (0.21.5 didn't worked here)
- call cmake in build.sh instead of qmake.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:27:39 -07:00
Tomaz Canabrava
c2bdc58fb8 Make it compilant with the build script
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:27:39 -07:00
Tomaz Canabrava
6f93590705 Add FindLibdivecomputer.cmake
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:27:39 -07:00
Tomaz Canabrava
8b2ba50a62 Add a FindLIBGIT2 based on our FindMarble.
It currently searches for the .a (preferred) or the .so in the following
directories, in order: ${CMAKE_CURRENT_SOURCE_DIR}/../libgit2, /usr/local,
and /usr.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:27:34 -07:00
Tomaz Canabrava
46990f4ac8 Simplify libgit handling on main CMakeLists.txt
We will use the OPTIONS variable to decide to find the
.a or the .so, so there's no need to do checks here.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:09:35 -07:00
Tomaz Canabrava
5a9931f438 Add build options
- add an option to toogle between libgit2 from package vs built from source
- add two options that will be used in the future: use static/dynamic lib

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:08:55 -07:00
Tomaz Canabrava
2e05dbb791 No need to specify Marble dir anymore
We are already looking for the default directory.
*if* cmake doesn't find Marble automatically, the user needs
to specify -DMARBLE_INCLUDE_DIR and -DMARBLE_LIBRARIES

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:07:33 -07:00
Tomaz Canabrava
f13e72c306 Search for Marble in the default build folder
Now we search for Marble in the default build folder, too, which is
CMAKE_CURRENT_SOURCE_DIR/..
Also look for both regular Marble and for our Subsurface branch of Marble
(which uses a different library name).

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:07:14 -07:00
Tomaz Canabrava
057231701e Move the pkg_config_library macro to its own file
The pkg_config_library macro is a helper macro and was generating noise
on the main CMakeLists.txt file, so I moved it to another file.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:07:07 -07:00
Tomaz Canabrava
e56580229b FindMarble moved to cmake/Modules
This is the correct way to deal with CMake Modules (or at least, the
default way). All our custom CMakeFiles will be here.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:06:54 -07:00
Tomaz Canabrava
85fbd1737c Simplify finding Qt
Qt5 Supports Components, which means that we can list the
components we need to find, instead of specifying one for
each line.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-07 16:06:44 -07:00
Dirk Hohndel
06a841f512 Remove the subsurface manpage
Useless, completely out of date.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-06 12:26:14 -07:00
Dirk Hohndel
143ecbf7a2 cmake: second attempt to install our ssrfmarble lib
Sorry for the noise.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 21:10:40 -07:00
Dirk Hohndel
f8a01ee309 cmake: on Linux install our special marble library
If we build our own library, make sure it gets installed as well.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 20:19:02 -07:00
Dirk Hohndel
5722d5f0dc cmake: add libz to end of linker line on Linux
While I don't need this when building on Fedora 20, OBS builds for
openSUSE appear to fail without this. Strange.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 17:41:35 -07:00
Joakim Bygdell
352433723d Read stored planner prefs when starting.
Back in 5bf23381e we started storing planner settings in prefs.
We need to read those settings back when we start the planner.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 07:40:54 -07:00
Joakim Bygdell
f8a808bcaf Shorten the first leg of the planner.
With the addition of gas reserves in recreational mode
we need to make sure that the first leg is short enough
that we have more gas left than the specified reserve
even when using small cylinders like LP72.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 07:40:33 -07:00
Dirk Hohndel
f07ba421d1 cmake: the application name should be capitalized on Mac
We want Subsurface.app but subsurface and subsurface.exe

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-05 06:53:17 -07:00
Dirk Hohndel
ce3a169cf9 cmake: try to get the dependency on the .qm files right
This is still not something I'm 100% sure I got right. But at least now it
correctly rebuilds the .qm files...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 21:59:51 -07:00
Dirk Hohndel
1ed1e188fd Update Mac convenience shell script
This script likely is useless for anyone but me, but I like having it in the
source tree in case others can benefit from seeing how the packages are built.

This now is based on out-of-tree cmake builds.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 16:32:15 -07:00
Dirk Hohndel
e8955e5916 cmake: use the correct macdeployqt command name
Oops, that was silly.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 16:30:46 -07:00
Dirk Hohndel
115268c8fd cmake: correctly create a Mac bundle
Don't try to install the TARGET into the Subsurface.app or we get a neat
infinite recursion. As a bundle cmake does all these things automagically.
Right now the version is hard coded which is ugly but since it's determined in
a separate cmake file it seemed non-obvious how to do this right...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 16:29:01 -07:00
Dirk Hohndel
072422075e cmake: try to pick a useful default for the location of Qt translations
Not sure if this will work for most installations - it does work for mine.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 16:21:32 -07:00
Dirk Hohndel
b79c01ab7c cmake: don't always create .qm files
The cmake keywords still confuse me at times.
A custom target is always recreated. How silly. But the correct (I think)
implementation is actually easier...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 16:19:45 -07:00
Dirk Hohndel
41c5b95ee1 cmake: Mac install into Subsurface.app
I guess I should add the code to move that app to /Applications but I never use
it this way... not sure how many people really install from source on a Mac,
anyway.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 13:13:46 -07:00
Dirk Hohndel
09032a2761 cmake: make sure we have no emptry Qt translation names
When building on a Mac for some reason I was getting an empty translation file
name (and therefore and entry that was the whole directory and not a
translation file. This is a bit clumsy but it fixes the problem.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 13:12:20 -07:00
Dirk Hohndel
d8c44f3470 Fix build on older Macs
In commit 39ffb0fced ("Fix Subsurface build with Qt 5.4.1 and later") Thiago
was a bit too aggressive removing some of our ifdefs for building with older
versions of the SDK...

I need at least this patch to still build on the machine that I use to create
the official binaries.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 13:10:23 -07:00
Salvador Cuñat
a37abc4d49 OSTCTools-Add two sample dives
Adds two test dives for OSTCTools.
I've kept the original naming.
Num 173 selected because it implies using EAN32.
Num 80, provided in forum by Philippe Tescari, selected because involves
gas changes (although user don't seems to have set different gas mixes).
Sadly, both dives seems to be from 2N/C devices.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 12:25:52 -07:00
Dirk Hohndel
af9fb32fcd cmake: add ostctools.c
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 11:05:40 -07:00
Salvador Cuñat
13a0ad020a libdivecomputer.c: Remove unused parameter in parse_gasmixes
data pointer is not used, so it can be safely removed.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 10:35:03 -07:00
Salvador Cuñat
3ca4e14d5c OSTCTools-Add support to import .dive files
OSTCTools is a windows based software by Robert Angeymar which performs
configuration upgrade, memory analysis and download tasks for H&W OSTC
devices.

Downloaded dives are stored in files (one archive each) with the raw
binary data heavily padded at the begining of the file, and some other
data not included in H&W dive header protocol as the device's serial
number.

The import function simply takes the raw data part of the file and lets
libdivecomputer do the parseing.

Then adds some additional info as OSTC reported dive number and serial
device number.

Please note that OSTCTools is *not* a real logging software, it simply
gets the DC raw data, so there isn't any information about dive site,
equipment and so.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 10:33:49 -07:00
Salvador Cuñat
ed6ae14a9f Move extern declaration to header file
Move extern declaration of function datatrak_import() to file.h, where it
fits better than in file.c

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-04 10:33:11 -07:00