diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/build.sh | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 000000000..9ea0f4f76 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# +# this should be run from the src directory, the layout is supposed to +# look like this: +#.../src/subsurface +# /libgit2 +# /marble-source +# /libdivecomputer +# +# the script will build these three libraries from source, even if +# they are installed as part of the host OS since we have seen +# numerous cases where building with random versions (especially older, +# but sometimes also newer versions than recommended here) will lead +# to all kinds of unnecessary pain + +SRC=$(pwd) +if [[ ! -d "subsurface" ]] ; then + echo "please start this script from the directory containing the Subsurface source directory" + exit 1 +fi + +# qmake or qmake-qt5 ? +qmake -v | grep "version 5" > /dev/null 2>&1 +if [[ $? -eq 0 ]] ; then + QMAKE=qmake +else + qmake-qt5 -v | grep "version 5" > /dev/null 2>&1 + if [[ $? -eq 0 ]] ; then + QMAKE=qmake-qt5 + else + echo "can't find a working qmake for Qt5" + exit 1 + fi +fi + +mkdir -p install + +# build libgit2 + +if [ ! -d libgit2 ] ; then + if [[ $1 = local ]] ; then + git clone $SRC/../libgit2 libgit2 + else + git clone git://github.com/libgit2/libgit2 + fi +fi +cd libgit2 +git checkout v0.21.5 +mkdir -p build +cd build +cmake -DCMAKE_INSTALL_PREFIX=$SRC/install -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR=OFF .. +cmake --build . --target install + +cd $SRC + +# build libdivecomputer + +if [ ! -d libdivecomputer ] ; then + if [[ $1 = local ]] ; then + git clone $SRC/../libdivecomputer libdivecomputer + else + git clone -b Subsurface-4.4 git://subsurface-divelog.org/libdc libdivecomputer + fi +fi +cd libdivecomputer +git checkout Subsurface-4.4 +if [ ! -f configure ] ; then + autoreconf --install + ./configure --prefix=$SRC/install +fi +make -j4 +make install + +cd $SRC + +# build libssrfmarblewidget + +if [ ! -d marble-source ] ; then + if [[ $1 = local ]] ; then + git clone $SRC/../marble-source marble-source + else + git clone -b Subsurface-4.4 git://subsurface-divelog.org/marble marble-source + fi +fi +cd marble-source +git checkout Subsurface-4.4 +mkdir -p build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DQTONLY=TRUE -DQT5BUILD=ON \ + -DCMAKE_INSTALL_PREFIX=$SRC/install \ + -DBUILD_MARBLE_TESTS=NO \ + -DWITH_DESIGNER_PLUGIN=NO \ + -DBUILD_MARBLE_APPS=NO \ + $SRC/marble-source +cd src/lib/marble +make -j4 +make install + +cd $SRC/subsurface +$QMAKE CONFIG+=setRpath LIBDCDEVEL=1 LIBMARBLEDEVEL=$SRC/install SPECIAL_MARBLE_PREFIX=1 LIBGIT2DEVEL=$SRC/libgit2 subsurface.pro +make -j4 + |