Merge.
[dcpomatic.git] / platform / osx / make_dmg.sh
1 #!/bin/bash
2
3 VERSION=$1
4 if [ "$VERSION" == "" ]; then
5   echo "Syntax: $0 <version>"
6   exit 1
7 fi
8
9 # DMG size in megabytes
10 DMG_SIZE=64
11 WORK=build/platform/osx
12 ENV=/Users/carl/Environments/osx/10.8
13 DEPS=/Users/carl/cdist
14
15 dmg_name="DVD-o-matic-$VERSION"
16 appdir="DVD-o-matic.app"
17 approot=$appdir/Contents
18 libs=$approot/lib
19 macos=$approot/MacOS
20 resources=$approot/Resources
21
22 rm -rf $WORK/$appdir
23 mkdir -p $WORK/$macos
24 mkdir -p $WORK/$libs
25 mkdir -p $WORK/$resources
26
27 cp build/src/tools/dvdomatic $WORK/$macos/
28 cp build/src/lib/libdvdomatic.dylib $WORK/$libs/
29 cp build/src/wx/libdvdomatic-wx.dylib $WORK/$libs/
30 cp $DEPS/lib/libdcp.dylib $WORK/$libs/
31 cp $DEPS/lib/libasdcp-libdcp.dylib $WORK/$libs/
32 cp $DEPS/lib/libkumu-libdcp.dylib $WORK/$libs/
33 cp $DEPS/lib/libopenjpeg*.dylib $WORK/$libs/
34 cp $DEPS/lib/libavformat*.dylib $WORK/$libs/
35 cp $DEPS/lib/libavfilter*.dylib $WORK/$libs/
36 cp $DEPS/lib/libavutil*.dylib $WORK/$libs/
37 cp $DEPS/lib/libavcodec*.dylib $WORK/$libs/
38 cp $DEPS/lib/libswscale*.dylib $WORK/$libs/
39 cp $DEPS/lib/libpostproc*.dylib $WORK/$libs/
40 cp $DEPS/lib/libswresample*.dylib $WORK/$libs/
41 cp $ENV/lib/libboost_system.dylib $WORK/$libs/
42 cp $ENV/lib/libboost_filesystem.dylib $WORK/$libs/
43 cp $ENV/lib/libboost_thread.dylib $WORK/$libs/
44 cp $ENV/lib/libboost_date_time.dylib $WORK/$libs/
45 cp $ENV/lib/libssl*.dylib $WORK/$libs/
46 cp $ENV/lib/libcrypto*.dylib $WORK/$libs/
47 cp $ENV/lib/libxml++-2.6*.dylib $WORK/$libs/
48 cp $ENV/lib/libxml2*.dylib $WORK/$libs/
49 cp $ENV/lib/libglibmm-2.4*.dylib $WORK/$libs/
50 cp $ENV/lib/libgobject*.dylib $WORK/$libs/
51 cp $ENV/lib/libgthread*.dylib $WORK/$libs/
52 cp $ENV/lib/libgmodule*.dylib $WORK/$libs/
53 cp $ENV/lib/libsigc*.dylib $WORK/$libs/
54 cp $ENV/lib/libglib-2*.dylib $WORK/$libs/
55 cp $ENV/lib/libintl*.dylib $WORK/$libs/
56 cp $ENV/lib/libsndfile*.dylib $WORK/$libs/
57 cp $ENV/lib/libMagick++*.dylib $WORK/$libs/
58 cp $ENV/lib/libMagickCore*.dylib $WORK/$libs/
59 cp $ENV/lib/libMagickWand*.dylib $WORK/$libs/
60 cp $ENV/lib/libssh*.dylib $WORK/$libs/
61 cp $ENV/lib/libwx*.dylib $WORK/$libs/
62 cp $ENV/lib/libfontconfig*.dylib $WORK/$libs/
63 cp $ENV/lib/libfreetype*.dylib $WORK/$libs/
64 cp $ENV/lib/libexpat*.dylib $WORK/$libs/
65
66 for obj in $WORK/$macos/dvdomatic $WORK/$libs/*.dylib; do
67   deps=`otool -L $obj | awk '{print $1}' | egrep "(/Users/carl|libboost|libssh)"`
68   changes=""
69   for dep in $deps; do
70     base=`basename $dep`
71     changes="$changes -change $dep @executable_path/../lib/$base"
72   done
73   if test "x$changes" != "x"; then
74     install_name_tool $changes $obj
75   fi  
76 done
77
78
79 cp build/platform/osx/Info.plist $WORK/$approot
80 cp icons/dvdomatic.icns $WORK/$resources/DVD-o-matic.icns
81
82 exit 0
83
84 mkdir -p $WORK/mnt
85
86 hdiutil create -megabytes $DMG_SIZE build/platform/osx/dvdomatic.dmg
87 device=$(hdid -nomount build/platform/osx/dvdomatic.dmg | grep Apple_HFS | cut -f 1 -d ' ')
88 newfs_hfs -v "$dmg_name" "$device"
89 mount -t hfs "$device" build/platform/osx/mnt