summaryrefslogtreecommitdiffstats
path: root/release/makemacapp.in
blob: 66a7f66ea6d5a58616a1ab67a9cf0e7ea38065c6 (plain)
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
70
71
72
73
74
75
#!/bin/sh

set -u
set -e
trap onexit INT
trap onexit TERM
trap onexit EXIT

TMPDIR=

onexit()
{
	if [ ! "$TMPDIR" = "" ]; then
		rm -rf $TMPDIR
	fi
}

usage()
{
	echo "$0 [universal]"
	exit 1
}

UNIVERSAL=0

PACKAGE_NAME=TigerVNC
VERSION=@VERSION@
BUILD=@BUILD@
SRCDIR=@CMAKE_SOURCE_DIR@
BUILDDIR32=@OSX_X86_BUILD@
if [ $# -gt 0 ]; then
	if [ "$1" = "universal" ]; then
		UNIVERSAL=1
	fi
fi

if [ -f $PACKAGE_NAME.dmg ]; then
	rm -f $PACKAGE_NAME.dmg
fi

umask 022
TMPDIR=`mktemp -d /tmp/$PACKAGE_NAME-build.XXXXXX`
APPROOT="$TMPDIR/dmg/TigerVNC Viewer $VERSION.app"
mkdir -p "$APPROOT/Contents/MacOS"
mkdir -p "$APPROOT/Contents/Resources"

install -m 755 vncviewer/vncviewer "$APPROOT/Contents/MacOS/TigerVNC Viewer"
if [ $UNIVERSAL = 1 ]; then
	if [ ! -d $BUILDDIR32 ]; then
		echo ERROR: 32-bit build directory $BUILDDIR32 does not exist
		exit 1
	fi
	if [ ! -f $BUILDDIR32/Makefile ]; then
		echo ERROR: 32-bit build directory $BUILDDIR32 is not configured
		exit 1
	fi
	pushd $BUILDDIR32
	make
	popd
	lipo -create -arch i386 $BUILDDIR32/vncviewer/vncviewer -arch x86_64 \
		"$APPROOT/Contents/MacOS/TigerVNC Viewer" \
		-output "$APPROOT/Contents/MacOS/TigerVNC Viewer"
fi
install -m 644 $SRCDIR/release/tigervnc.icns "$APPROOT/Contents/Resources/"
install -m 644 release/Info.plist "$APPROOT/Contents/"

install -m 644 $SRCDIR/LICENCE.TXT $TMPDIR/dmg/
install -m 644 $SRCDIR/README.txt $TMPDIR/dmg/

hdiutil create -fs HFS+ -volname $PACKAGE_NAME-$VERSION \
	-srcfolder "$TMPDIR/dmg" \
	$TMPDIR/$PACKAGE_NAME-$VERSION.dmg 
cp $TMPDIR/$PACKAGE_NAME-$VERSION.dmg . 

exit