summaryrefslogtreecommitdiff
path: root/platform/osx
diff options
context:
space:
mode:
Diffstat (limited to 'platform/osx')
-rw-r--r--platform/osx/Info.plist.in35
-rw-r--r--platform/osx/make_dmg.sh124
-rwxr-xr-xplatform/osx/waf13
-rw-r--r--platform/osx/wscript2
4 files changed, 174 insertions, 0 deletions
diff --git a/platform/osx/Info.plist.in b/platform/osx/Info.plist.in
new file mode 100644
index 000000000..c904d91dd
--- /dev/null
+++ b/platform/osx/Info.plist.in
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>dvdomatic</string>
+ <key>CFBundleGetInfoString</key>
+ <string>DCP generator</string>
+ <key>CFBundleIconFile</key>
+ <string>DVD-o-matic.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>net.carlh.dvdomatic</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>DVD-o-matic</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersions</key>
+ <string>@VERSION@</string>
+ <key>CFBundleSignature</key>
+ <string>DOMC</string>
+ <key>CFBundleVersion</key>
+ <string>@VERSION@</string>
+ <key>LSUIElement</key>
+ <string>0</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ @ENV@
+</dict>
+</plist>
diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh
new file mode 100644
index 000000000..d9e36c390
--- /dev/null
+++ b/platform/osx/make_dmg.sh
@@ -0,0 +1,124 @@
+#!/bin/bash
+
+version=`cat wscript | egrep ^VERSION | awk '{print $3}' | sed -e "s/'//g"`
+
+# DMG size in megabytes
+DMG_SIZE=256
+WORK=build/platform/osx
+ENV=/Users/carl/Environments/osx/10.8
+DEPS=/Users/carl/cdist
+
+appdir="DVD-o-matic.app"
+approot=$appdir/Contents
+libs=$approot/lib
+macos=$approot/MacOS
+resources=$approot/Resources
+
+rm -rf $WORK/$appdir
+mkdir -p $WORK/$macos
+mkdir -p $WORK/$libs
+mkdir -p $WORK/$resources
+
+cp build/src/tools/dvdomatic $WORK/$macos/
+cp build/src/lib/libdvdomatic.dylib $WORK/$libs/
+cp build/src/wx/libdvdomatic-wx.dylib $WORK/$libs/
+cp $DEPS/lib/libdcp.dylib $WORK/$libs/
+cp $DEPS/lib/libasdcp-libdcp.dylib $WORK/$libs/
+cp $DEPS/lib/libkumu-libdcp.dylib $WORK/$libs/
+cp $DEPS/lib/libopenjpeg*.dylib $WORK/$libs/
+cp $DEPS/lib/libavformat*.dylib $WORK/$libs/
+cp $DEPS/lib/libavfilter*.dylib $WORK/$libs/
+cp $DEPS/lib/libavutil*.dylib $WORK/$libs/
+cp $DEPS/lib/libavcodec*.dylib $WORK/$libs/
+cp $DEPS/lib/libswscale*.dylib $WORK/$libs/
+cp $DEPS/lib/libpostproc*.dylib $WORK/$libs/
+cp $DEPS/lib/libswresample*.dylib $WORK/$libs/
+cp $ENV/lib/libboost_system.dylib $WORK/$libs/
+cp $ENV/lib/libboost_filesystem.dylib $WORK/$libs/
+cp $ENV/lib/libboost_thread.dylib $WORK/$libs/
+cp $ENV/lib/libboost_date_time.dylib $WORK/$libs/
+cp $ENV/lib/libssl*.dylib $WORK/$libs/
+cp $ENV/lib/libcrypto*.dylib $WORK/$libs/
+cp $ENV/lib/libxml++-2.6*.dylib $WORK/$libs/
+cp $ENV/lib/libxml2*.dylib $WORK/$libs/
+cp $ENV/lib/libglibmm-2.4*.dylib $WORK/$libs/
+cp $ENV/lib/libgobject*.dylib $WORK/$libs/
+cp $ENV/lib/libgthread*.dylib $WORK/$libs/
+cp $ENV/lib/libgmodule*.dylib $WORK/$libs/
+cp $ENV/lib/libsigc*.dylib $WORK/$libs/
+cp $ENV/lib/libglib-2*.dylib $WORK/$libs/
+cp $ENV/lib/libintl*.dylib $WORK/$libs/
+cp $ENV/lib/libsndfile*.dylib $WORK/$libs/
+cp $ENV/lib/libMagick++*.dylib $WORK/$libs/
+cp $ENV/lib/libMagickCore*.dylib $WORK/$libs/
+cp $ENV/lib/libMagickWand*.dylib $WORK/$libs/
+cp $ENV/lib/libssh*.dylib $WORK/$libs/
+cp $ENV/lib/libwx*.dylib $WORK/$libs/
+cp $ENV/lib/libfontconfig*.dylib $WORK/$libs/
+cp $ENV/lib/libfreetype*.dylib $WORK/$libs/
+cp $ENV/lib/libexpat*.dylib $WORK/$libs/
+
+for obj in $WORK/$macos/dvdomatic $WORK/$libs/*.dylib; do
+ deps=`otool -L $obj | awk '{print $1}' | egrep "(/Users/carl|libboost|libssh)"`
+ changes=""
+ for dep in $deps; do
+ base=`basename $dep`
+ changes="$changes -change $dep @executable_path/../lib/$base"
+ done
+ if test "x$changes" != "x"; then
+ install_name_tool $changes $obj
+ fi
+done
+
+
+cp build/platform/osx/Info.plist $WORK/$approot
+cp icons/dvdomatic.icns $WORK/$resources/DVD-o-matic.icns
+
+tmp_dmg=$WORK/dvdomatic_tmp.dmg
+dmg="$WORK/DVD-o-matic $version.dmg"
+vol_name=DVD-o-matic-$version
+
+mkdir -p $WORK/$vol_name
+
+rm -f $tmp_dmg "$dmg"
+hdiutil create -megabytes $DMG_SIZE $tmp_dmg
+device=$(hdid -nomount $tmp_dmg | grep Apple_HFS | cut -f 1 -d ' ')
+newfs_hfs -v ${vol_name} $device
+mount -t hfs "$device" $WORK/$vol_name
+
+cp -r $WORK/$appdir $WORK/$vol_name
+
+echo '
+ tell application "Finder"
+ tell disk "'$vol_name'"
+ open
+ set current view of container window to icon view
+ set toolbar visible of container window to false
+ set statusbar visible of container window to false
+ set the bounds of container window to {400, 200, 800, 440}
+ set theViewOptions to the icon view options of container window
+ set arrangement of theViewOptions to not arranged
+ set icon size of theViewOptions to 64
+ make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
+ set position of item "DVD-o-matic.app" of container window to {90, 100}
+ set position of item "Applications" of container window to {310, 100}
+ close
+ open
+ update without registering applications
+ delay 5
+ eject
+ end tell
+ end tell
+' | osascript
+
+chmod -Rf go-w $WORK/mnt
+sync
+
+umount $device
+hdiutil eject $device
+hdiutil convert -format UDZO $tmp_dmg -imagekey zlib-level=9 -o "$dmg"
+sips -i $WORK/$resources/DVD-o-matic.icns
+DeRez -only icns $WORK/$resources/DVD-o-matic.icns > $WORK/$resources/DVD-o-matic.rsrc
+Rez -append $WORK/$resources/DVD-o-matic.rsrc -o "$dmg"
+SetFile -a C "$dmg"
+
diff --git a/platform/osx/waf b/platform/osx/waf
new file mode 100755
index 000000000..7423eb973
--- /dev/null
+++ b/platform/osx/waf
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+set -e
+
+ENV=/Users/carl/Environments/osx/10.8
+DEPS=/Users/carl/cdist
+
+export PKG_CONFIG_PATH=$DEPS/lib/pkgconfig:$ENV/lib/pkgconfig
+export LINKFLAGS="-L$ENV/lib"
+export CXXFLAGS="-I$ENV/include"
+export PATH=$PATH:$ENV/bin
+./waf $*
+
diff --git a/platform/osx/wscript b/platform/osx/wscript
new file mode 100644
index 000000000..d79c95bb5
--- /dev/null
+++ b/platform/osx/wscript
@@ -0,0 +1,2 @@
+def build(bld):
+ bld.new_task_gen(features='subst', source='Info.plist.in', target='Info.plist', version=bld.env.VERSION)