diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-09-04 12:13:52 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-09-08 11:42:14 -0700 |
commit | cb1aac0c4d9c08f21c97698ce833af00f325f4a8 (patch) | |
tree | d7376d694ffaa474fe01ceec9bcbd1ad004e9fed /packaging/macosx | |
parent | a0e33bec7116f6848c8fdc618ee1ef1e2641ecd9 (diff) | |
download | subsurface-cb1aac0c4d9c08f21c97698ce833af00f325f4a8.tar.gz |
Update the script to build Mac Bundle
This is trying to clean things up quite a bit and make it less specific to
my directory layout.
It still calls the signing script that tries to sign things with my keys,
so it won't work for others without tuning, but this should get you
closer.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'packaging/macosx')
-rwxr-xr-x | packaging/macosx/make-package.sh | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/packaging/macosx/make-package.sh b/packaging/macosx/make-package.sh index c4dc71b2e..2587ab052 100755 --- a/packaging/macosx/make-package.sh +++ b/packaging/macosx/make-package.sh @@ -2,44 +2,60 @@ # # this simply automates the steps to create a DMG we can ship # -# for this to work you need to have a custom build of MacPorts / gtk / etc -# with prefix=/Applications/Subsurface.app/Contents/Resources -# yes, that's a major hack, but otherwise gettext cannot seem to find -# the gtk related .mo files and localization is only partial -# # run this from the top subsurface directory +# find the directory above the sources - typically ~/src +DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd ../../.. && pwd ) + # install location of yourway-create-dmg -DMGCREATE=../yoursway-create-dmg/create-dmg +# by default we assume it's next to subsurface in ~/src/yoursway-create-dmg +DMGCREATE=${DIR}/yoursway-create-dmg/create-dmg # same git version magic as in the Makefile -# for the naming of volume and dmg we don't need the "always 3 digits" -# darwin version - the 'regular' version that has 2 digits for releases -# is better -VERSION=$(cd ../subsurface; ./scripts/get-version linux) - +# for the naming of volume and dmg we want the 3 digits of the full version number +VERSION=$(cd ${DIR}/subsurface; ./scripts/get-version linux) # first build and install Subsurface and then clean up the staging area rm -rf ./Subsurface.app -make -j8 -make install -install_name_tool -change /Users/hohndel/src/marble/install/libssrfmarblewidget.0.19.2.dylib @executable_path/../Frameworks/libssrfmarblewidget.0.19.2.dylib Subsurface.app/Contents/MacOS/Subsurface -install_name_tool -change /Users/hohndel/src/libgit2/build/libgit2.22.dylib @executable_path/../Frameworks/libgit2.22.dylib Subsurface.app/Contents/MacOS/Subsurface +LIBRARY_PATH=${DIR}/install-root/lib make -j8 +LIBRARY_PATH=${DIR}/install-root/lib make install + +# now adjust a few references that macdeployqt appears to miss +EXECUTABLE=Subsurface.app/Contents/MacOS/Subsurface +for i in libssrfmarblewidget libgit2; do + OLD=$(otool -L ${EXECUTABLE} | grep $i | cut -d\ -f1 | tr -d "\t") + SONAME=$(basename $OLD) + install_name_tool -change ${OLD} @executable_path/../Frameworks/${SONAME} ${EXECUTABLE} +done + +# it seems the compiler in XCode 4.6 doesn't build Grantlee5 correctly, +# so cheat and copy over pre-compiled binaries created with a newer compiler +# and adjust their references to the Grantlee template library +# +# -disabled for now as this is still under more investigation- +# cp -a /Users/hohndel/src/tmp/Subsurface.app/Contents Subsurface.app/ + +# clean up shared library dependency in the Grantlee plugins +for i in Subsurface.app/Contents/PlugIns/grantlee/5.0/*.so; do + OLD=$(otool -L $i | grep libGrantlee_Templates | cut -d\ -f1 | tr -d "\t") + SONAME=$(basename $OLD ) + install_name_tool -change ${OLD} @executable_path/../Frameworks/${SONAME} $i; +done # copy things into staging so we can create a nice DMG rm -rf ./staging mkdir ./staging cp -a ./Subsurface.app ./staging -sh ../subsurface/packaging/macosx/sign +sh ${DIR}/subsurface/packaging/macosx/sign if [ -f ./Subsurface-$VERSION.dmg ]; then rm ./Subsurface-$VERSION.dmg.bak mv ./Subsurface-$VERSION.dmg ./Subsurface-$VERSION.dmg.bak fi -$DMGCREATE --background ../subsurface/packaging/macosx/DMG-Background.png \ +$DMGCREATE --background ${DIR}/subsurface/packaging/macosx/DMG-Background.png \ --window-size 500 300 --icon-size 96 --volname Subsurface-$VERSION \ --app-drop-link 380 205 \ - --volicon ../subsurface/packaging/macosx/Subsurface.icns \ + --volicon ${DIR}/subsurface/packaging/macosx/Subsurface.icns \ --icon "Subsurface" 110 205 ./Subsurface-$VERSION.dmg ./staging |