mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
371feac82f
commit
0d70a597cd
2 changed files with 89 additions and 0 deletions
87
scripts/build.sh
Executable file
87
scripts/build.sh
Executable file
|
@ -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
|
||||
|
2
scripts/run.sh
Executable file
2
scripts/run.sh
Executable file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
LD_LIBRARY_PATH=install/lib:$LD_LIBRARY_PATH ./subsurface/subsurface
|
Loading…
Add table
Reference in a new issue