3 version=`cat wscript | egrep ^VERSION | awk '{print $3}' | sed -e "s/'//g"`
5 # DMG size in megabytes
7 WORK=build/platform/osx
8 ENV=/Users/carl/Environments/osx
11 appdir="DCP-o-matic.app"
12 approot=$appdir/Contents
15 resources=$approot/Resources
20 mkdir -p $WORK/$resources
22 function universal_copy {
26 ln -s $(readlink $f) $3/`basename $f`
28 g=`echo $f | sed -e "s/\/32\//\/64\//g"`
30 lipo -create $f $g -output $3/`basename $f`
35 universal_copy $ROOT src/dvdomatic/build/src/tools/dcpomatic $WORK/$macos
36 universal_copy $ROOT src/dvdomatic/build/src/lib/libdcpomatic.dylib $WORK/$libs
37 universal_copy $ROOT src/dvdomatic/build/src/wx/libdcpomatic-wx.dylib $WORK/$libs
38 universal_copy $ROOT lib/libcxml.dylib $WORK/$libs
39 universal_copy $ROOT lib/libdcp.dylib $WORK/$libs
40 universal_copy $ROOT lib/libasdcp-libdcp.dylib $WORK/$libs
41 universal_copy $ROOT lib/libkumu-libdcp.dylib $WORK/$libs
42 universal_copy $ROOT lib/libopenjpeg*.dylib $WORK/$libs
43 universal_copy $ROOT lib/libavdevice*.dylib $WORK/$libs
44 universal_copy $ROOT lib/libavformat*.dylib $WORK/$libs
45 universal_copy $ROOT lib/libavfilter*.dylib $WORK/$libs
46 universal_copy $ROOT lib/libavutil*.dylib $WORK/$libs
47 universal_copy $ROOT lib/libavcodec*.dylib $WORK/$libs
48 universal_copy $ROOT lib/libswscale*.dylib $WORK/$libs
49 universal_copy $ROOT lib/libpostproc*.dylib $WORK/$libs
50 universal_copy $ROOT lib/libswresample*.dylib $WORK/$libs
51 universal_copy $ROOT bin/ffprobe $WORK/$macos
52 universal_copy $ENV lib/libboost_system.dylib $WORK/$libs
53 universal_copy $ENV lib/libboost_filesystem.dylib $WORK/$libs
54 universal_copy $ENV lib/libboost_thread.dylib $WORK/$libs
55 universal_copy $ENV lib/libboost_date_time.dylib $WORK/$libs
56 universal_copy $ENV lib/libxml++-2.6*.dylib $WORK/$libs
57 universal_copy $ENV lib/libxml2*.dylib $WORK/$libs
58 universal_copy $ENV lib/libglibmm-2.4*.dylib $WORK/$libs
59 universal_copy $ENV lib/libgobject*.dylib $WORK/$libs
60 universal_copy $ENV lib/libgthread*.dylib $WORK/$libs
61 universal_copy $ENV lib/libgmodule*.dylib $WORK/$libs
62 universal_copy $ENV lib/libsigc*.dylib $WORK/$libs
63 universal_copy $ENV lib/libglib-2*.dylib $WORK/$libs
64 universal_copy $ENV lib/libintl*.dylib $WORK/$libs
65 universal_copy $ENV lib/libsndfile*.dylib $WORK/$libs
66 universal_copy $ENV lib/libMagick++*.dylib $WORK/$libs
67 universal_copy $ENV lib/libMagickCore*.dylib $WORK/$libs
68 universal_copy $ENV lib/libMagickWand*.dylib $WORK/$libs
69 universal_copy $ENV lib/libssh*.dylib $WORK/$libs
70 universal_copy $ENV lib/libwx*.dylib $WORK/$libs
71 universal_copy $ENV lib/libfontconfig*.dylib $WORK/$libs
72 universal_copy $ENV lib/libfreetype*.dylib $WORK/$libs
73 universal_copy $ENV lib/libexpat*.dylib $WORK/$libs
74 universal_copy $ENV lib/libltdl*.dylib $WORK/$libs
75 universal_copy $ENV lib/libxmlsec1*.dylib $WORK/$libs
77 for obj in $WORK/$macos/dcpomatic $WORK/$libs/*.dylib; do
78 deps=`otool -L $obj | awk '{print $1}' | egrep "(/Users/carl|libboost|libssh)"`
82 changes="$changes -change $dep @executable_path/../lib/$base"
84 if test "x$changes" != "x"; then
85 install_name_tool $changes $obj
89 cp build/platform/osx/Info.plist $WORK/$approot
90 cp icons/dcpomatic.icns $WORK/$resources/DCP-o-matic.icns
92 tmp_dmg=$WORK/dcpomatic_tmp.dmg
93 dmg="$WORK/DCP-o-matic $version.dmg"
94 vol_name=DCP-o-matic-$version
96 mkdir -p $WORK/$vol_name
99 hdiutil create -megabytes $DMG_SIZE $tmp_dmg
100 device=$(hdid -nomount $tmp_dmg | grep Apple_HFS | cut -f 1 -d ' ')
101 newfs_hfs -v ${vol_name} $device
102 mount -t hfs "$device" $WORK/$vol_name
104 cp -r $WORK/$appdir $WORK/$vol_name
107 tell application "Finder"
108 tell disk "'$vol_name'"
110 set current view of container window to icon view
111 set toolbar visible of container window to false
112 set statusbar visible of container window to false
113 set the bounds of container window to {400, 200, 790, 410}
114 set theViewOptions to the icon view options of container window
115 set arrangement of theViewOptions to not arranged
116 set icon size of theViewOptions to 64
117 make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
118 set position of item "DCP-o-matic.app" of container window to {90, 80}
119 set position of item "Applications" of container window to {310, 80}
122 update without registering applications
129 chmod -Rf go-w $WORK/mnt
133 hdiutil eject $device
134 hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
135 sips -i $WORK/$resources/DCP-o-matic.icns
136 DeRez -only icns $WORK/$resources/DCP-o-matic.icns > $WORK/$resources/DCP-o-matic.rsrc
137 Rez -append $WORK/$resources/DCP-o-matic.rsrc -o "$dmg"