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>
This script should go to the cgi-bin directory of the webserver to proivide
conversion of SmarTrack files as a web service. Paths need to be adopted
and more html to make it more beautiful should be added.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
whitespace.pl can now do a better job (although surely
still not 100% perfect job) of formatting constructor
member initialization lists according to the rules
described in the current CodingStyle file.
Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This script can be called on translations files, e.g.
> scripts/checktranslation.pl translations/*ts
and will report if the number of % signs in source and translation
differ.
It finds quite a few issues that need to be investigated.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
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>
The manuals all will need a careful read.
The changes to use lsb-release and the PCLinuxOS specific files got lost
because I didn't want to try to rewite this in the middle of a merge.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Conflicts:
Documentation/50-pot/subsurface-manual.pot
Documentation/fr/po/subsurface-manual.fr.po
Documentation/user-manual.txt
Documentation/user-manual_es.txt
Documentation/user-manual_fr.html.git
Documentation/user-manual_fr.txt
Documentation/user-manual_ru.html.git
Documentation/user-manual_ru.txt
file.c
qthelper.cpp
subsurface.pro
subsurfacesysinfo.cpp
xslt/DiveLog.xslt
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>
- added ./scripts/write-version
- subsurface-gen-version.pri is much simpler now
- .git/HEAD is no longer used explicitly in .pro/.pri files
- the version_h rule is called on each 'make' invocation
but recompilation will occur only if ssrf-version.h
is updated by ./scripts/write-version
- qmake now depends on the existence of ssrf-version.h
so it creates an empty one on Makefile generation so
that a warning is not shown
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
I don't think this will be a problem for the other OSs, but it needs a bit
more testing, especially on the Mac.
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>
This is still not (and likely will never be) intended to just be blindly
run and mechanically applied to all files. It tries to implement our rules
but it is not perfect and more importantly, we have parts of the code
where we intentionally break our rules for various reasons of readability
in that particular situation.
But running this against the sources files you touch often will point out
things that are wrong and should be fixed.
This fixes the indentation for continuation lines and the handling of the
for each style loops (clang 3.5 should have this built in - I'll play with
the current development version of this later).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
clang-format doesn't appear to reindent multi line #define statements
correctly - so this hopefully will clean those up.
The included whitespace corrections to the code should stay in place when
using the updated tool.
This includes cleaning up some multi-line comments that were messed up the
last time around as well as a few other minor changes.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Minor change to the perl postprocessing script and resulting changes to
the affected source files.
This deals with two issues:
- "foreach"-like structures were not always treated correctly
- some longer calculations that ended on "+ constant" were reformatted in
a rather unatractive manner
In one source file (divelist.c) I ended up adding braces to the sources...
trying to cascade the indentation further down without having the block
there seemed a lot more trouble than it's worth.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The struct / class regex was way too relaxed.
Having the parent class on the same line usually looks better.
clang-format appears to do something odd with continuation strings - even
with UseTab: Always it indents those with four spaces.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This hasn't been tested enought, but it seems to get really close.
It assumes that clang-format is in your patch.
Run
perl scripys/whitespace.pl FILENAME
and you'll get a diff of what it things is wrong with that file.
If you like what you see, simply pipe the output into patch -p0
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This adds a silly perl script to create either a txt or html file from the
structured descriptor3.tsv file. This way we can maintain the structured
file and easily create both text and html output from it.
Instead of somehow adding this to qmake I decided to simply add the two
output files so that they are included in the source tar file.
Recreate them by running
perl scripts/parse-descriptor.pl descriptor3.tsv SupportedDivecomputers.html
perl scripts/parse-descriptor.pl descriptor3.tsv SupportedDivecomputers.txt
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
First, make sure we actually match /c/windows from the beginning, not
if it occurs in the middle of the path.
Second, make sure that directories containing the binaries are
searched first. Do that by using unshift (prepend) instead of push
(append).
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The correct order on Windows is:
1. Local directory (relative to the binary)
2. $PATH
3. System dirs
We insert our -L flags between 1 and 2 above.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The environment variable is to be used if the caller knows that the
default objdump can't parse Windows DLL files (COFF-PE). On Fedora,
Debian, and OpenSUSE, the default objdump can, and obviously the
native one on Windows can too.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Unix developers, look away... this is how it's done on Windows: the
binary loader searches $PATH for the DLLs, so let's reuse the same
variable. This simplifies the command-line a little.
Signed-off-by: Thiago Macieira <thiago@macieira.org>
Still, some false positives show up ('Veo 3.0' is one of them).
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
The quotes are not needed either (nothing to expand there).
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Someone who is better at shell script writing needs to review this.
Here's what it's supposed to do. Create version strings with three or four
values for darwin or win, respectively, that we can use as the versions of
the bundle or installer. The version that Subsurface reports isn't
affected by this. So in a way this is automating something that's mostly
cosmetic.
If we have a 2 digit version number (like 3.0), do the same the old script
did - add just zeroes if we are on a tag, otherwise add the number of
commits since the tag (and a last 0 if on win).
If we have a 3 digit version numner (like 3.0.1), leave it alone on mac
and add either the number of commits since the tag or a zero if we are on
the tag on win.
Now this can create the same version number for two different versions on
darwin: the first commit after 3.0 and the version tagged as 3.0.1 will
both get the same number. That's kinda silly but remember - the non-tagged
versions aren't supposed to be widely distributed (and the third digit in
them should be much larger than anything we'd ever release; we are
already on commit 16 since the last tag and hopefully will never release a
3.0.16 as tagged release). And of course the full version as displayed in
the About box is always able to tell things apart because of the SHA added
at the end if it's a non-tagged version.
So why all this magic? The reason we do this is so that during development
we are able to create Mac and Windows installers and they get reasonable
version numbers, based on the versioning that these vendors suppose. And
without manual intervention.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Removed oddly named and ridiculously outdated documentation text (scripts).
Created new directory 'scripts'.
Added unified version extraction script (scripts/get-version). Yes, it's
more shell script code but faster and more maintainable than the sed commands
and the swearwords/regexps repeated over and over again.
Makefile and packaging/macosx/make-package.sh modified accordingly.
I don't do windos neither macos but, AFAICS my tests show, it should be safe.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
(and add a reminder of how they came to be)
Gaah. XML is *stupid*. It's not easy to parse for humans or for
computers, and some of these XML files are just disgusting. But maybe
they can be turned into something usable with libxml.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>