diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-02-17 13:10:45 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-02-17 13:10:45 -0800 |
commit | 0d70a597cd0f1bbf673c6bbf7127b0dfdd1895e2 (patch) | |
tree | 946c139cd69b728b34a8d0ef7f15e00f2c11ab7a /scripts/build.sh | |
parent | 371feac82f5d8e29bb74d55c3187bd2a38a5e5e1 (diff) | |
download | subsurface-0d70a597cd0f1bbf673c6bbf7127b0dfdd1895e2.tar.gz |
Add build and run script for people wanting to build from source
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>
Diffstat (limited to 'scripts/build.sh')
-rwxr-xr-x | scripts/build.sh | 87 |
1 files changed, 87 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 + |