While this should be fixed in cmake, for now just manuallt get
libssrfmarblewidget.dll and QtXml.dll in place
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Instructions how to use it are in the script.
As of today this doesn't create working binaries - this worked perfectly
fine back when MXE was still based on Qt5.4
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is trying to clean things up quite a bit and make it less specific to
my directory layout.
It still calls the signing script that tries to sign things with my keys,
so it won't work for others without tuning, but this should get you
closer.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This connects the serial_ftdi implementation to subsurface, and builds
libftdi1 for the android builds.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This makes libusb to log straight to the android logging system. This
makes sure we can reach the logs and debug things.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This idea was inspired by:
https://github.com/PointCloudLibrary/mobile/blob/master/3rdparty/android/patches/libusb.patch
The whole thing is re-written from scratch but the idea came from there,
and its a way simpler way of getting a system-opened fd to the right
place than patching every call in the stack to pass a fd down.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This Changes the NDK, SDK, JAVA_HOME and ant to the appropriate versions
and locations when the script runs on a Mac.
Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Now when we build openssl for https support, its easy to add libssh2 to
get ssh support to, so this does that.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
SSL2 and SSL3 are deprecated, and we can gladly leave them out of our
build.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The openssl build step polluted the variable space, and overrode the CC
env, thus breaking the build if you did build openssl in the same
session.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When retrying a clean build several libraries failed to build and I
finally tracked this down to the cross build tools not finding their
sysroot.
Also, on my main build server I have an older cmake version and one of the
tools claims to require cmake 3 but I see no actual incompatibility, so
I'm patching out that check.
Hackish? Yes. But it seems to work.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This teaches android build.sh and cmake about how to build the qml ui of
subsurface-mobile as a apk.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This introduces code to use qt-android-cmake to produce a working apk.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Due to bugs in libgit2, we force linking with libssh2 to add
git-over-ssh support. On android we currency don't want libssh2 due to
its dependency chain, so this makes the libssh2 force linking opt-out.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This teaches the android build script how to do out of tree builds.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This updates the android build script to something that uses CMake.
This can't produce a working APK yet, but it at least builds the shared
object which should be wrapped into the APK.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Also remove some of the code for building on Ubuntu 12.04.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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>
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>
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>
Update the documentation with dependencies for cross-building on Linux
to Windows for OpenSuse platform and correct some building instructions.
Moreover fix the windows building script to use the architectural specific
binary.
Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Over one year ago i started with a crazy idea, "Wouldn't Subsurface on
android be nice?" when i read about Android support in Qt.
After playing around with it and doing some quite ugly hacks i got it to
build and run.
Now are all the patches upstream and this imports the quite crude build
script, for others to continue on.
This is a squash-import of what have have happened in
https://github.com/glance-/subsurface-android during 2014.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
CC: Joseph W. Joshua <joejoshw@gmail.com>
CC: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Dang. I didn't pay attention that commit 2677f3ca79 ("LIBMARBLEDEVEL
points to an install dir, not a build dir") broke the way I build the
Linux binaries.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We only use this for the Ubuntu 12.04 builds. The goal is to move away
from Qt4 support, so this is mainly an afterthought.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We now have perfectly fine 32bit binaries with Qt5 so no more reason to
steer people towards 64bit binaries. Actually, I don't plan to make 64bit
binaries for the next release.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This script is based on the mxe package and builds everything from source
instead of using the mingw packages from Fedora as I did in the past.
I'm keeping the old script around for now, but eventually I should remove it as
this is the current way to create a working installer that supports both 32 and
64 bit Windows and is Qt5 based.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is simply here for people to look at. It will age immediately and it makes
no sense to try to keep it current here as it is maintained in OBS. But I think
it might be a useful starting point for others who want to package daily builds
of Subsurface.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This reverts commit 7a7ce2c5e0.
Shouldn't have pushed that one :-)
The fix was to modify the spec file, not the name of the directory and tar
file.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is still quite fragile and isn't enough for anyone to run it, but it
captures where I am in the automation process.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
* only build a static libdivecomputer
* only build the libgit2 library, not the executable
* don't echo all the symlinks when fake-installing libmarblewidget
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This now assumes that a running changelog is maintained in
src/debian.changelog, i.e., at the same level as the subsurface tree; the
organization now should look like this:
src/debian.changelog
src/subsurface # subsurface git checkout
src/subsurface/libdivecomputer # libdivecomputer git Subsurface-xx branch
src/subsurface/marble-source # marble git Subsurface-xx branch
src/subsurface/libgit2 # libgit2 git checkout
Instead of running dh_make to create all new debian build files, we add the
necessary files in our script.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Since we strip the .git data from the source tree (to conserve space and not
violate the packaging guidelines - or at least not violate THAT packaging
guideline) we need to create the correct revision before the tar file of sources
is packaged.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Marble can't be static, so instead we build a shared library but give it a
different name so it can be installed in parallel with the "real"
libmarblewidget.so.
Also make sure that the correct libusb is installed so that Atomics Aquatics
dive computers are supported.
Fixes#782
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Oops, I thought I had done that but that was flat out wrong.
Now the source upload shrinks from over 70MB to around 26MB. Much better.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
These files knowingly (one might say, intentionally) violate the spirit
and letter of the Debian / Ubuntu packaging rules. They are intended to be
able to create our own packages that include their own libdivecomputer,
libgit2 and (later) libmarble. Especially for daily builds this is WAY
easier than fighting with whatever may be the current version of these
packages in Ubuntu (especially since this allows us to use our private
libdivecomputer branch).
This assumes that the user runs the make-package.sh script from a
directory below which we have
subsurface/ <- Subsurface checked out git tree
subsurface/libdivecomputer <- desired libdivecomputer sources
subsurface/libgit2 <- desired libgit2 source
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
It makes more sense to do this on init and not have the user go through
any other screens in case this is the wrong binary.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Checking this in to make sure I don't end up creating broken installers
again. I doubt that this is useful for anyone but me - but then, I don't
think anyone but me creates Windows installers.
Background - when Fedora 20 updated the cross-built version of Qt for
Win64 something broke. Subsurfae installed with those DLLs will crash.
Replacing the older 5.3.1 DLLs fixes this for now, so I have a directory
with just those DLLs and simply replace them in the staging directory
before calling makensis.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
With these changes we link statically against libusb and libdivecomputer
but don't add the .a files to our installers.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This also makes sure that we package the Qt5 translations, not the Qt4
translations.
There was an odd issue that somehow a 32bit search path ended up being
used by win-dll which resulted in the wrong DLLs being packaged.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I assume the theme directory should be deleted on uninstall the same way
e.g. Documentation directory is deleted.
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I was confused by the function name getSubsurfaceDataPath() - it does not
find paths relative to the "data" folder, if finds the path where we might
install folders like "data", "translations", or "theme".
"data" is for some reason where we install the "marbledata" files.
Therefore on both Mac and Windows we need to put the "theme" directory
next to the "data" directory, not below it.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Admittedly I believe I'm the only one using this script (and related .nsi
file), it still seems to make sense to keep it up to date in the
repository.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
When doing an out of tree build you don't want to stage the package with
the source but under your current directory. So let's make sure we
distinguish between source and target here... and instead of putting
things into packaging/windows they now end up in staging which is much
more consistent. And to make my life even easier, the installer .exe ends
up in the base dir in which you build the package.
Also, we link statically against libdivecomputer, so don't pack the dll.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is all mostly to make my life easier.
I'm not thrilled with the marble changes - as Linus pointed out before the
way we do these "LIBxxxDEVEL" changes is broken as it will still first
link against any library installed in the system. But since I have removed
any globally installed copies of these libraries this actually works for
me and it does help when experimenting with different build options for
the main libraries that we depend on.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This way I can have a different directory from where I build Windows
binary without interfering with my native build in the source directory.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The bundle signature is not a necessary property in any of the OS X
versions we support. And the current bundle version identifier is 6.0,
not 1.0.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This is required to enable HiDPI support for the Retina displays. The
Info.plist that comes with Qt had this, but the one we supply with
Subsurface didn't.
Done-with: Jake Petroules <jake.petroules@petroules.com>
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
On one of my machines codesign doesn't find my signing key by hash, but
does find it by name. Go figure.
Also on that same system (32bit Mac Mini with running Snow Leopard / 10.6)
gcc 4.2 doesn't support the -unused-result warning. So let's only turn
that on for more modern versions of gcc
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This means we no longer need to keep them on disk and worry about
installing / uninstalling them. They will always be kept in-memory
(compressed).
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
We appear to be missing the correct dll. I'm out of time trying to track
this down, so I just switched Subsurface to access divelogs.de via http on
Windwos.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>