summaryrefslogtreecommitdiffstats
path: root/packaging/macosx/make-package.sh
blob: 991a18405923a4b74d13797473f256afec342f5d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
#
# 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=$(./scripts/get-version darwin)

# 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