5 version=`cat wscript | egrep ^VERSION | awk '{print $3}' | sed -e "s/'//g"`
7 # DMG size in megabytes
9 WORK=build/platform/osx
10 ENV=/Users/carl/Environments/osx
11 ROOT=/Users/carl/cdist
13 appdir="DCP-o-matic.app"
14 approot=$appdir/Contents
17 resources=$approot/Resources
22 mkdir -p $WORK/$resources
24 function universal_copy {
28 ln -s $(readlink $f) $3/`basename $f`
30 g=`echo $f | sed -e "s/\/32\//\/64\//g"`
32 lipo -create $f $g -output $3/`basename $f`
37 universal_copy $ROOT src/dvdomatic/build/src/tools/dcpomatic $WORK/$macos
38 universal_copy $ROOT src/dvdomatic/build/src/tools/dcpomatic_cli $WORK/$macos
39 universal_copy $ROOT src/dvdomatic/build/src/tools/dcpomatic_server_cli $WORK/$macos
40 universal_copy $ROOT src/dvdomatic/build/src/lib/libdcpomatic.dylib $WORK/$libs
41 universal_copy $ROOT src/dvdomatic/build/src/wx/libdcpomatic-wx.dylib $WORK/$libs
42 universal_copy $ROOT lib/libcxml.dylib $WORK/$libs
43 universal_copy $ROOT lib/libdcp.dylib $WORK/$libs
44 universal_copy $ROOT lib/libasdcp-libdcp.dylib $WORK/$libs
45 universal_copy $ROOT lib/libkumu-libdcp.dylib $WORK/$libs
46 universal_copy $ROOT lib/libopenjpeg*.dylib $WORK/$libs
47 universal_copy $ROOT lib/libavdevice*.dylib $WORK/$libs
48 universal_copy $ROOT lib/libavformat*.dylib $WORK/$libs
49 universal_copy $ROOT lib/libavfilter*.dylib $WORK/$libs
50 universal_copy $ROOT lib/libavutil*.dylib $WORK/$libs
51 universal_copy $ROOT lib/libavcodec*.dylib $WORK/$libs
52 universal_copy $ROOT lib/libswscale*.dylib $WORK/$libs
53 universal_copy $ROOT lib/libpostproc*.dylib $WORK/$libs
54 universal_copy $ROOT lib/libswresample*.dylib $WORK/$libs
55 universal_copy $ROOT bin/ffprobe $WORK/$macos
56 universal_copy $ENV lib/libboost_system.dylib $WORK/$libs
57 universal_copy $ENV lib/libboost_filesystem.dylib $WORK/$libs
58 universal_copy $ENV lib/libboost_thread.dylib $WORK/$libs
59 universal_copy $ENV lib/libboost_date_time.dylib $WORK/$libs
60 universal_copy $ENV lib/libxml++-2.6*.dylib $WORK/$libs
61 universal_copy $ENV lib/libxml2*.dylib $WORK/$libs
62 universal_copy $ENV lib/libglibmm-2.4*.dylib $WORK/$libs
63 universal_copy $ENV lib/libgobject*.dylib $WORK/$libs
64 universal_copy $ENV lib/libgthread*.dylib $WORK/$libs
65 universal_copy $ENV lib/libgmodule*.dylib $WORK/$libs
66 universal_copy $ENV lib/libsigc*.dylib $WORK/$libs
67 universal_copy $ENV lib/libglib-2*.dylib $WORK/$libs
68 universal_copy $ENV lib/libintl*.dylib $WORK/$libs
69 universal_copy $ENV lib/libsndfile*.dylib $WORK/$libs
70 universal_copy $ENV lib/libMagick++*.dylib $WORK/$libs
71 universal_copy $ENV lib/libMagickCore*.dylib $WORK/$libs
72 universal_copy $ENV lib/libMagickWand*.dylib $WORK/$libs
73 universal_copy $ENV lib/libssh*.dylib $WORK/$libs
74 universal_copy $ENV lib/libwx*.dylib $WORK/$libs
75 universal_copy $ENV lib/libfontconfig*.dylib $WORK/$libs
76 universal_copy $ENV lib/libfreetype*.dylib $WORK/$libs
77 universal_copy $ENV lib/libexpat*.dylib $WORK/$libs
78 universal_copy $ENV lib/libltdl*.dylib $WORK/$libs
79 universal_copy $ENV lib/libxmlsec1*.dylib $WORK/$libs
80 universal_copy $ENV lib/libzip*.dylib $WORK/$libs
81 universal_copy $ENV lib/libquickmail*.dylib $WORK/$libs
83 for obj in $WORK/$macos/dcpomatic $WORK/$macos/ffprobe $WORK/$libs/*.dylib; do
84 deps=`otool -L $obj | awk '{print $1}' | egrep "(/Users/carl|libboost|libssh|libltdl)"`
88 changes="$changes -change $dep @executable_path/../lib/$base"
90 if test "x$changes" != "x"; then
91 install_name_tool $changes $obj
95 cp build/platform/osx/Info.plist $WORK/$approot
96 cp icons/dcpomatic.icns $WORK/$resources/DCP-o-matic.icns
98 tmp_dmg=$WORK/dcpomatic_tmp.dmg
99 dmg="$WORK/DCP-o-matic $version.dmg"
100 vol_name=DCP-o-matic-$version
102 mkdir -p $WORK/$vol_name
103 cp -r $WORK/$appdir $WORK/$vol_name
104 ln -s /Applications $WORK/$vol_name/Applications
106 rm -f $tmp_dmg "$dmg"
107 hdiutil create -srcfolder $WORK/$vol_name -volname $vol_name -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size $DMG_SIZE $tmp_dmg
108 attach=$(hdiutil attach -readwrite -noverify -noautoopen $tmp_dmg)
109 device=`echo $attach | egrep '^/dev/' | sed 1q | awk '{print $5}'`
113 tell application "Finder"
114 tell disk "'$vol_name'"
116 set current view of container window to icon view
117 set toolbar visible of container window to false
118 set statusbar visible of container window to false
119 set the bounds of container window to {400, 200, 790, 410}
120 set theViewOptions to the icon view options of container window
121 set arrangement of theViewOptions to not arranged
122 set icon size of theViewOptions to 64
123 set position of item "DCP-o-matic.app" of container window to {90, 80}
124 set position of item "Applications" of container window to {310, 80}
127 update without registering applications
133 chmod -Rf go-w /Volumes/"$vol_name"/$appdir
137 hdiutil eject $device
138 hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
139 sips -i $WORK/$resources/DCP-o-matic.icns
140 DeRez -only icns $WORK/$resources/DCP-o-matic.icns > $WORK/$resources/DCP-o-matic.rsrc
141 Rez -append $WORK/$resources/DCP-o-matic.rsrc -o "$dmg"