mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
build.sh: successfully build an App bundle on the Mac
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 commit is contained in:
parent
193edd9f13
commit
1f0bf92a34
1 changed files with 29 additions and 0 deletions
|
@ -12,8 +12,14 @@
|
|||
# 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
|
||||
#
|
||||
# it installs the libraries and subsurface in the install-root subdirectory
|
||||
# of the current directory (except on Mac where the Subsurface.app ends up
|
||||
# in subsurface/build
|
||||
|
||||
SRC=$(pwd)
|
||||
PLATFORM=$(uname)
|
||||
|
||||
if [[ ! -d "subsurface" ]] ; then
|
||||
echo "please start this script from the directory containing the Subsurface source directory"
|
||||
exit 1
|
||||
|
@ -22,6 +28,8 @@ fi
|
|||
mkdir -p install-root
|
||||
INSTALL_ROOT=$SRC/install-root
|
||||
|
||||
echo Building in $SRC, installing in $INSTALL_ROOT
|
||||
|
||||
# build libgit2
|
||||
|
||||
if [ ! -d libgit2 ] ; then
|
||||
|
@ -38,6 +46,16 @@ cd build
|
|||
cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR=OFF ..
|
||||
cmake --build . --target install
|
||||
|
||||
if [ $PLATFORM = Darwin ] ; then
|
||||
# in order for macdeployqt to do its job correctly, we need the full path in the dylib ID
|
||||
cd $INSTALL_ROOT/lib
|
||||
NAME=$(otool -L libgit2.dylib | grep -v : | head -1 | cut -f1 -d\ | tr -d '\t')
|
||||
echo $NAME | grep / > /dev/null 2>&1
|
||||
if [ $? -eq 1 ] ; then
|
||||
install_name_tool -id "$INSTALL_ROOT/lib/$NAME" "$INSTALL_ROOT/lib/$NAME"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd $SRC
|
||||
|
||||
# build libdivecomputer
|
||||
|
@ -83,8 +101,19 @@ cd src/lib/marble
|
|||
make -j4
|
||||
make install
|
||||
|
||||
if [ $PLATFORM = Darwin ] ; then
|
||||
# in order for macdeployqt to do its job correctly, we need the full path in the dylib ID
|
||||
cd $INSTALL_ROOT/lib
|
||||
NAME=$(otool -L libssrfmarblewidget.dylib | grep -v : | head -1 | cut -f1 -d\ | tr -d '\t')
|
||||
echo $NAME | grep / > /dev/null 2>&1
|
||||
if [ $? -eq 1 ] ; then
|
||||
install_name_tool -id "$INSTALL_ROOT/lib/$NAME" "$INSTALL_ROOT/lib/$NAME"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd $SRC/subsurface
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$INSTALL_ROOT ..
|
||||
make -j4
|
||||
make install
|
||||
|
|
Loading…
Add table
Reference in a new issue