mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
41256531b8
This improves the Plist.info and automates the version data that it uses utilizing the same git magic that the Makefile uses. It also makes the complete DMG creation a matter of simply running packaging/macosx/make-package.sh Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
70 lines
2.4 KiB
Bash
Executable file
70 lines
2.4 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# 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
|
|
|
|
# adjust to your install location of gtk-mac-bundler. I appear to need at
|
|
# least 0.7.2
|
|
BUNDLER="../.local/bin/gtk-mac-bundler"
|
|
BUNDLER_SRC="${HOME}/gtk-mac-bundler"
|
|
|
|
# install location of yourway-create-dmg
|
|
DMGCREATE="../yoursway-create-dmg/create-dmg"
|
|
|
|
# This is the directory into which MacPorts, libdivecomputer and all the
|
|
# other components have been installed
|
|
PREFIX="/Applications/Subsurface.app/Contents/Resources"
|
|
|
|
INFOPLIST=./packaging/macosx/Info.plist
|
|
|
|
# same git version magic as in the Makefile
|
|
VERSION=`git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0/' || echo "git.missing.please.hardcode.version"`
|
|
|
|
# gtk-mac-bundler allegedly supports signing by setting this environment
|
|
# variable, but this fails as we change the shared objects below and all
|
|
# the signatures become invalid.
|
|
# export APPLICATION_CERT="Dirk"
|
|
|
|
# force rebuilding of Info.plist
|
|
rm ${INFOPLIST}
|
|
|
|
# first build and install Subsurface and then clean up the staging area
|
|
make
|
|
make install-macosx
|
|
rm -rf ./staging
|
|
|
|
# now populate it with the bundle
|
|
${BUNDLER} packaging/macosx/subsurface.bundle
|
|
|
|
# correct the paths and names
|
|
cd staging/Subsurface.app/Contents
|
|
for i in Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders/* ; do
|
|
${BUNDLER_SRC}/bundler/run-install-name-tool-change.sh $i ${PREFIX} Resources change ;
|
|
done
|
|
for i in Resources/lib/*.dylib;
|
|
do
|
|
install_name_tool -id "@executable_path/../$i" $i
|
|
done
|
|
|
|
cd ../../..
|
|
|
|
codesign -s Dirk ./staging/Subsurface.app/Contents/MacOS/subsurface \
|
|
./staging/Subsurface.app/Contents/MacOS/subsurface-bin
|
|
|
|
if [ -f ./Subsurface-${VERSION}.dmg ]; then
|
|
rm ./Subsurface-${VERSION}.dmg.bak
|
|
mv ./Subsurface-${VERSION}.dmg ./Subsurface-${VERSION}.dmg.bak
|
|
fi
|
|
|
|
${DMGCREATE} --background ./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 \
|
|
--icon "Subsurface" 110 205 ./Subsurface-${VERSION}.dmg ./staging
|
|
|