libdivecomputer asks pkg-config for the include paths for libusb-1.0 and
hidapi, but then uses #include <libusb-1.0/libusb.h> and <hidapi/hidapi.h>
which fails as those directories are part of the include path. So we
manually add include paths without that last directory as well as a work
around.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I really want to build against 10.10 so as many people as
possible can use the binaries I create, but regular users
might not have the older SDKs installed.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Using the Homebrew dependencies is much easier and faster, but then
we run into the problem that Homebrew always builds against your current
OSX version. This instead allows us to build the dependencies ourselves
and set the SDK / minimum OSX version. This is mainly important for
binaries that we want to distribute.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
On Mac we want to make sure that we don't only run on the OS that
we were built on, but all the way back to 10.10 (that's the oldest
that Qt supports).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
If we already explicitly point at one Qt installation, don't override
with another one.
Also, support all the way up to Qt 5.9.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I can't believe this slipped through my review. How embarrassing.
Credit goes to Anton Lundin for spotting this.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
Some people (like me) have Qt elsewhere. So long as qmake is in PATH,
we should be able to support it.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The build script was cloning the Sursurface branch of libdivecomputer from the "old"
location. Use the new github based location from now on.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
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>
It appears that sometimes autoreconf will not install ltmain.sh and
subsequently fail; simply running autoreconf again appears to be a
workaround.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Just link it directly into Subsurface-mobile. That's what we already do
with the qmake file for iOS, now the cmake based builds do the same. This
should remove a lot of issues.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When only building the mobile version, we don't need to build marble.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Run all scripts with -e so they exit as soon as something breaks. That
way the build stops at the first error, not some other error.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
Otherwise /usr/include does not exist on a clean-ish install
Signed-off-by: Jeroen Massar <jeroen@massar.ch>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
And preserve that path in CMAKE_PREFIX_PATH and pass it along to cmake
Signed-off-by: Jeroen Massar <jeroen@massar.ch>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Somehow the file test with ~ interpolation does not work
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Currently, when running the packaging/android/build.sh from a source
tree that has been used for desktop builds, libdivecomputer wants a
make distclean. This is inconvinient, and is caused by building
libdivecomputer in source. Now, configure and build libdivecomputer
in a new subdirectory, allowing to run the android build script
from the same source tree as the desktop (both desktop and mobile)
builds.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Grmbl. SUBSURFACE_EXECUTABLE now doesn't get set until later in the
script. So let's just trigger this explicitly.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
In commit f28f03afe2 ("build.sh: make it easier to build
Subsurface-mobile") I mistakenly broke the logic that decides to run the
mobilecomponents.sh script.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The script now takes a -mobile argument, or -both and then builds the
mobile version or both versions. To make things more consistent across
different invocations the desktop version is built in the "build"
directory and the mobile version is built in "build-mobile".
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Make the default build a DesktopExecutable, with an option to set a variable for doing a mobile build.
Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This patch reworks the navigation of the dive details.
- The detailsview is now a list view with page-sized delegates. This
allows horizontal swiping to the next and previous dive.
- The central button now allows to open the edit mode for the dive.
Original patch was done by Marco Martin, but needed to be reapplied by
hand.
Signed-off-by: Sebastian Kügler <sebas@kde.org>
Since commit c496d5fa05 ("Add helper script to pull Plasma Mobile Components
and icons") we had three different spots where we retrieved the Plasma Mobile
Components. That's a wee bit of overkill. So instead have the other two scripts
just call this one.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
A git pull seems to cause things to go wrong. Just fetching the repository
and checking out the version that we want seems to work better.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Somehow libssh2 wasn't found on Mac builds - this makes sure we always add
the $INSTALL_ROOT/lib as library path.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
With this I can now successfully run this on Mac and Arch Linux, both running
"fresh" and running in an existing build directory (i.e., getting the updates
right).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The script didn't do the right thing if it had been run before and was
re-run to create the latest build. We need to actually pull the latest
versions of the different git repositories and make sure that the branches
and commits that we want exist.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The make install step otherwise will give some odd warnings as it tries to
adjust things from build to deploy.
Signed-off-by: Dirk Hohndel (Intel) <dhohndel@dhohndel-mac02.jf.intel.com>
While in a release we'd want to use the corresponding release branches, it
seems to make more sense to me to switch to the testing branches for Subsurface
master.
Signed-off-by: Dirk Hohndel (Intel) <dhohndel@dhohndel-mac02.jf.intel.com>
Turns out that as of a day ago or so tip of libgit2 master appears broken
(the in memory ssh key test in the cmake file fails). But the specific
commit that I'm picking here appears to work and is also new enough that
https and ssh based cloud storage works.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Here on my Mac I had an issue that took a long time to understand.
The build.sh script was correctly creating Marble but did not
correctly run otool on it. So I fixed this by fixing CMake for
the marble library which means we don't need to worry about it
in the build script anymore.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
After doing a make clean / make confclean the makefiles
were erased and running the configure script again didn't
created the makefile.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We are compilling those libraries and we know where they are, so
pass the directories and the libraries in a go directly. CMake was
a bit random when choosing the correct ones, this way we are sure
we got them.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Some install name magic on two of the libraries we build was necessary for
things to work out correctly.
And I added an install step to the default build that puts Subsurface in the
install_root on other OSs and creates the Subsurface.app under
subsurface/build/Subsurface.app on the Mac.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
These scripts should make it easier to build from source on platforms
where we don't supply binaries. They should ensure the correct libraries
are build and then used at run time
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>