aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/build.sh87
-rwxr-xr-xscripts/run.sh2
2 files changed, 89 insertions, 0 deletions
diff --git a/scripts/build.sh b/scripts/build.sh
new file mode 100755
index 000000000..44cf5d52e
--- /dev/null
+++ b/scripts/build.sh
@@ -0,0 +1,87 @@
+#!/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
+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-qt5 LIBDCDEVEL=1 LIBMARBLEDEVEL=$SRC/install SPECIAL_MARBLE_PREFIX=1 LIBGIT2DEVEL=$SRC/libgit2 subsurface.pro
+make -j4
+
diff --git a/scripts/run.sh b/scripts/run.sh
new file mode 100755
index 000000000..6e0e0d1e9
--- /dev/null
+++ b/scripts/run.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+LD_LIBRARY_PATH=install/lib:$LD_LIBRARY_PATH ./subsurface/subsurface