summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-06-02 23:03:08 +0100
committerCarl Hetherington <cth@carlh.net>2013-06-02 23:03:08 +0100
commita0856e3fbef17f24073b01cb96be6bbcb229ecbc (patch)
tree13fd6191f2c4d82943cbcfa1f34688552cfc1f8e /platform
parente6d086fff404d9fe5ac080f9e75334eeb315c1da (diff)
parent42866530db49e0faf367ad28a55c658be60951bf (diff)
Merge master.
Diffstat (limited to 'platform')
-rw-r--r--platform/linux/control-12.04-3224
-rw-r--r--platform/linux/control-12.04-6424
-rw-r--r--platform/linux/control-12.10-3223
-rw-r--r--platform/linux/control-12.10-6424
-rw-r--r--platform/linux/dvdomatic.desktop.in10
-rw-r--r--platform/linux/dvdomatic_batch.desktop.in10
-rw-r--r--platform/linux/servomatic.desktop.in10
-rw-r--r--platform/linux/wscript19
-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
-rwxr-xr-xplatform/windows/.gtkrc-2.06
-rw-r--r--platform/windows/installer.nsi.32.in145
-rw-r--r--platform/windows/installer.nsi.64.in155
-rw-r--r--platform/windows/wscript4
16 files changed, 628 insertions, 0 deletions
diff --git a/platform/linux/control-12.04-32 b/platform/linux/control-12.04-32
new file mode 100644
index 000000000..dc104958a
--- /dev/null
+++ b/platform/linux/control-12.04-32
@@ -0,0 +1,24 @@
+Source: dcpomatic
+Section: video
+Priority: extra
+Maintainer: Carl Hetherington <cth@carlh.net>
+Build-Depends: debhelper (>= 8.0.0), python (>= 2.7.3), g++ (>= 4:4.6.3), pkg-config (>= 0.26), libwxgtk2.8-dev (>= 2.8.12.1), libssh-dev (>= 0.5.2), libboost-filesystem-dev (>= 1.46.0), libboost-thread-dev (>= 1.46.0), libsndfile1-dev (>= 1.0.25), libmagick++-dev (>= 8:6.6.9.7)
+Standards-Version: 3.9.3
+Homepage: http://carlh.net/software/dcpomatic
+
+Package: dcpomatic
+Architecture: i386
+Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1)
+Description: Generator of Digital Cinema Packages (DCPs)
+ DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio
+ files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant
+ digital projectors.
+
+Package: dcpomatic-dbg
+Architecture: i386
+Section: debug
+Priority: extra
+Depends: ${dcpomatic:Depends}, ${misc:Depends}
+Description: debugging symbols for dcpomatic
+ This package contains the debugging symbols for dcpomatic.
+
diff --git a/platform/linux/control-12.04-64 b/platform/linux/control-12.04-64
new file mode 100644
index 000000000..09c636e4a
--- /dev/null
+++ b/platform/linux/control-12.04-64
@@ -0,0 +1,24 @@
+Source: dcpomatic
+Section: video
+Priority: extra
+Maintainer: Carl Hetherington <cth@carlh.net>
+Build-Depends: debhelper (>= 8.0.0), python (>= 2.7.3), g++ (>= 4:4.6.3), pkg-config (>= 0.26), libwxgtk2.8-dev (>= 2.8.12.1), libssh-dev (>= 0.5.2), libboost-filesystem-dev (>= 1.46.0), libboost-thread-dev (>= 1.46.0), libsndfile1-dev (>= 1.0.25), libmagick++-dev (>= 8:6.6.9.7)
+Standards-Version: 3.9.3
+Homepage: http://carlh.net/software/dcpomatic
+
+Package: dcpomatic
+Architecture: amd64
+Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.46.1 (>= 1.46.1), libboost-thread1.46.1 (>= 1.46.1), libsndfile1 (>= 1.0.25), libmagick++4 (>= 8:6.6.9.7), libxml++2.6-2 (>= 2.34.1)
+Description: Generator of Digital Cinema Packages (DCPs)
+ DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio
+ files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant
+ digital projectors.
+
+Package: dcpomatic-dbg
+Architecture: amd64
+Section: debug
+Priority: extra
+Depends: ${dcpomatic:Depends}, ${misc:Depends}
+Description: debugging symbols for dcpomatic
+ This package contains the debugging symbols for dcpomatic.
+
diff --git a/platform/linux/control-12.10-32 b/platform/linux/control-12.10-32
new file mode 100644
index 000000000..1330b3e5f
--- /dev/null
+++ b/platform/linux/control-12.10-32
@@ -0,0 +1,23 @@
+Source: dcpomatic
+Section: video
+Priority: extra
+Maintainer: Carl Hetherington <cth@carlh.net>
+Build-Depends: debhelper (>= 8.0.0), python (>= 2.7.3), g++ (>= 4:4.6.3), pkg-config (>= 0.26), libwxgtk2.8-dev (>= 2.8.12.1), libssh-dev (>= 0.5.2), libboost-filesystem-dev (>= 1.46.0), libboost-thread-dev (>= 1.46.0), libsndfile1-dev (>= 1.0.25), libmagick++-dev (>= 8:6.6.9.7)
+Standards-Version: 3.9.3
+Homepage: http://carlh.net/software/dcpomatic
+
+Package: dcpomatic
+Architecture: i386
+Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2)
+Description: Generator of Digital Cinema Packages (DCPs)
+ DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio
+ files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant
+ digital projectors.
+
+Package: dcpomatic-dbg
+Architecture: i386
+Section: debug
+Priority: extra
+Depends: ${dcpomatic:Depends}, ${misc:Depends}
+Description: debugging symbols for dcpomatic
+ This package contains the debugging symbols for dcpomatic.
diff --git a/platform/linux/control-12.10-64 b/platform/linux/control-12.10-64
new file mode 100644
index 000000000..ea1c491ed
--- /dev/null
+++ b/platform/linux/control-12.10-64
@@ -0,0 +1,24 @@
+Source: dcpomatic
+Section: video
+Priority: extra
+Maintainer: Carl Hetherington <cth@carlh.net>
+Build-Depends: debhelper (>= 8.0.0), python (>= 2.7.3), g++ (>= 4:4.6.3), pkg-config (>= 0.26), libwxgtk2.8-dev (>= 2.8.12.1), libssh-dev (>= 0.5.2), libboost-filesystem-dev (>= 1.46.0), libboost-thread-dev (>= 1.46.0), libsndfile1-dev (>= 1.0.25), libmagick++-dev (>= 8:6.6.9.7)
+Standards-Version: 3.9.3
+Homepage: http://carlh.net/software/dcpomatic
+
+Package: dcpomatic
+Architecture: amd64
+Depends: libc6 (>= 2.15), libwxgtk2.8-0 (>= 2.8.12.1), libssh-4 (>= 0.5.2), libboost-filesystem1.49.0 (>= 1.49.0), libboost-thread1.49.0 (>= 1.49.0), libsndfile1 (>= 1.0.25), libmagick++5 (>= 8:6.7.7.10), libxml++2.6-2 (>= 2.34.2)
+Description: Generator of Digital Cinema Packages (DCPs)
+ DCP-o-matic generates Digital Cinema Packages (DCPs) from video and audio
+ files (such as those from DVDs or Blu-Rays) for presentation on DCI-compliant
+ digital projectors.
+
+Package: dcpomatic-dbg
+Architecture: amd64
+Section: debug
+Priority: extra
+Depends: ${dcpomatic:Depends}, ${misc:Depends}
+Description: debugging symbols for dcpomatic
+ This package contains the debugging symbols for dcpomatic.
+
diff --git a/platform/linux/dvdomatic.desktop.in b/platform/linux/dvdomatic.desktop.in
new file mode 100644
index 000000000..65067eb3b
--- /dev/null
+++ b/platform/linux/dvdomatic.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Exec=@PREFIX@/bin/dvdomatic
+Name=DVD-o-matic
+Icon=dvdomatic
+Comment=DCP generator
+Categories=AudioVideo;Video
diff --git a/platform/linux/dvdomatic_batch.desktop.in b/platform/linux/dvdomatic_batch.desktop.in
new file mode 100644
index 000000000..8150fe849
--- /dev/null
+++ b/platform/linux/dvdomatic_batch.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Exec=@PREFIX@/bin/dvdomatic_batch
+Name=DVD-o-matic Batch Converter
+Icon=dvdomatic
+Comment=Batch DCP generator
+Categories=AudioVideo;Video
diff --git a/platform/linux/servomatic.desktop.in b/platform/linux/servomatic.desktop.in
new file mode 100644
index 000000000..572b4c64c
--- /dev/null
+++ b/platform/linux/servomatic.desktop.in
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Exec=@PREFIX@/bin/servomatic_gui
+Name=DVD-o-matic Encode Server
+Icon=dvdomatic
+Comment=DCP generator
+Categories=AudioVideo;Video
diff --git a/platform/linux/wscript b/platform/linux/wscript
new file mode 100644
index 000000000..1d9054b32
--- /dev/null
+++ b/platform/linux/wscript
@@ -0,0 +1,19 @@
+def build(bld):
+ d = { 'PREFIX' : '${PREFIX' }
+
+ obj = bld(features = 'subst')
+ obj.source = 'dvdomatic.desktop.in'
+ obj.target = 'dvdomatic.desktop'
+ obj.dict = d
+
+ obj = bld(features = 'subst')
+ obj.source = 'dvdomatic_batch.desktop.in'
+ obj.target = 'dvdomatic_batch.desktop'
+ obj.dict = d
+
+ obj = bld(features = 'subst')
+ obj.source = 'servomatic.desktop.in'
+ obj.target = 'servomatic.desktop'
+ obj.dict = d
+
+ bld.install_files('${PREFIX}/share/applications', ['dvdomatic.desktop', 'dvdomatic_batch.desktop', 'servomatic.desktop'])
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)
diff --git a/platform/windows/.gtkrc-2.0 b/platform/windows/.gtkrc-2.0
new file mode 100755
index 000000000..0ea1d69c9
--- /dev/null
+++ b/platform/windows/.gtkrc-2.0
@@ -0,0 +1,6 @@
+gtk-theme-name = "MS-Windows"
+style "user-font"
+{
+ font_name="Tahoma 8"
+}
+widget_class "*" style "user-font"
diff --git a/platform/windows/installer.nsi.32.in b/platform/windows/installer.nsi.32.in
new file mode 100644
index 000000000..664904767
--- /dev/null
+++ b/platform/windows/installer.nsi.32.in
@@ -0,0 +1,145 @@
+!include "MUI2.nsh"
+Name "DCP-o-matic"
+
+RequestExecutionLevel admin
+
+outFile "DCP-o-matic @version@ 32-bit Installer.exe"
+!define MUI_ICON "%resources%/dcpomatic.ico"
+!define MUI_UNICON "%resources%/dcpomatic.ico"
+!define MUI_SPECIALBITMAP "%resources%/dcpomatic.bmp"
+
+InstallDir "$PROGRAMFILES\DCP-o-matic"
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "../../../COPYING"
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+!insertmacro MUI_UNPAGE_FINISH
+
+!insertmacro MUI_LANGUAGE "English"
+
+Section "install" "Installation info"
+
+SetOutPath "$INSTDIR\bin"
+
+File "%deps%/bin/asdcp-libdcp.dll"
+File "%deps%/bin/avcodec-55.dll"
+File "%deps%/bin/avfilter-3.dll"
+File "%deps%/bin/avformat-55.dll"
+File "%deps%/bin/avutil-52.dll"
+File "%deps%/bin/dcp.dll"
+File "%deps%/bin/libintl-8.dll"
+File "%deps%/bin/kumu-libdcp.dll"
+File "%deps%/bin/libboost_chrono-mt.dll"
+File "%deps%/bin/libboost_filesystem-mt.dll"
+File "%deps%/bin/libboost_system-mt.dll"
+File "%deps%/bin/libboost_thread_win32-mt.dll"
+File "%deps%/bin/libboost_date_time-mt.dll"
+File "%deps%/bin/libeay32.dll"
+File "%deps%/bin/libgcc_s_sjlj-1.dll"
+File "%deps%/bin/libgio-2.0-0.dll"
+File "%deps%/bin/libglib-2.0-0.dll"
+File "%deps%/bin/libgobject-2.0-0.dll"
+File "%deps%/bin/libiconv-2.dll"
+File "%deps%/bin/libjpeg-8.dll"
+File "%deps%/bin/libMagick++-5.dll"
+File "%deps%/bin/libMagickCore-5.dll"
+File "%deps%/bin/libMagickWand-5.dll"
+File "%deps%/bin/libopenjpeg-1.dll"
+File "%deps%/bin/libpng15-15.dll"
+File "%deps%/bin/libsigc-2.0-0.dll"
+File "%deps%/bin/libsndfile-1.dll"
+File "%deps%/bin/libssh.dll"
+File "%deps%/bin/libstdc++-6.dll"
+File "%deps%/bin/postproc-52.dll"
+File "%deps%/bin/swresample-0.dll"
+File "%deps%/bin/swscale-2.dll"
+File "%deps%/bin/zlib1.dll"
+File "%deps%/bin/libjpeg-8.dll"
+File "%deps%/bin/wxbase294u_gcc_custom.dll"
+File "%deps%/bin/wxmsw294u_core_gcc_custom.dll"
+File "%deps%/bin/wxmsw294u_adv_gcc_custom.dll"
+File "%deps%/bin/libcairo-2.dll"
+File "%deps%/bin/libfreetype-6.dll"
+File "%deps%/bin/libgthread-2.0-0.dll"
+File "%deps%/bin/libpango-1.0-0.dll"
+File "%deps%/bin/libgmodule-2.0-0.dll"
+File "%deps%/bin/libpangocairo-1.0-0.dll"
+File "%deps%/bin/libpangowin32-1.0-0.dll"
+File "%deps%/bin/libtiff-5.dll"
+File "%deps%/bin/libglibmm-2.4-1.dll"
+File "%deps%/bin/libxml++-2.6-2.dll"
+File "%deps%/bin/libxml2-2.dll"
+File "%deps%/bin/libpixman-1-0.dll"
+File "%deps%/bin/libfontconfig-1.dll"
+File "%deps%/bin/libexpat-1.dll"
+File "%deps%/bin/libbz2.dll"
+File "%deps%/bin/cxml.dll"
+
+File "%binaries%/src/wx/dcpomatic-wx.dll"
+File "%binaries%/src/lib/dcpomatic.dll"
+File "%binaries%/src/tools/dcpomatic.exe"
+File "%binaries%/src/tools/dcpomatic_batch.exe"
+File "%binaries%/src/tools/dcpomatic_server_cli.exe"
+File "%binaries%/src/tools/dcpomatic_server.exe"
+
+# I don't know why, but sometimes it seems that
+# delegates.xml must be in with the binaries, and
+# sometimes in the $PROFILE. Meh.
+File "%deps%/etc/ImageMagick/delegates.xml"
+SetOutPath "$PROFILE\.magick"
+File "%deps%/etc/ImageMagick/delegates.xml"
+
+SetOutPath "$INSTDIR\locale\fr\LC_MESSAGES"
+File "%binaries%/src/lib/mo/fr_FR/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/fr_FR/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/fr_FR/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\it\LC_MESSAGES"
+File "%binaries%/src/lib/mo/it_IT/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/it_IT/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/it_IT/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\es\LC_MESSAGES"
+File "%binaries%/src/lib/mo/es_ES/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/es_ES/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/es_ES/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\sv\LC_MESSAGES"
+File "%binaries%/src/lib/mo/sv_SE/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/sv_SE/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/sv_SE/dcpomatic.mo"
+
+CreateShortCut "$DESKTOP\DCP-o-matic.lnk" "$INSTDIR\bin\dcpomatic.exe" ""
+CreateShortCut "$DESKTOP\DCP-o-matic batch converter.lnk" "$INSTDIR\bin\dcpomatic_batch.exe" ""
+CreateShortCut "$DESKTOP\DCP-o-matic encode server.lnk" "$INSTDIR\bin\dcpomatic_server.exe" ""
+
+CreateDirectory "$SMPROGRAMS\DCP-o-matic"
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\Uninstall DCP-o-matic.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic.lnk" "$INSTDIR\bin\dcpomatic.exe" "" "$INSTDIR\bin\dcpomatic.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic batch converter.lnk" "$INSTDIR\bin\dcpomatic.exe" "" "$INSTDIR\bin\dcpomatic_batch.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic encode server.lnk" "$INSTDIR\bin\dcpomatic_server.exe" "" "$INSTDIR\bin\dcpomatic_server.exe" 0
+
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic" "DisplayName" "DCP-o-matic (remove only)"
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic" "UninstallString" "$INSTDIR\Uninstall.exe"
+
+WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd
+
+
+Section "Uninstall"
+
+RMDir /r "$INSTDIR\*.*"
+RMDir "$INSTDIR"
+Delete "$DESKTOP\DCP-o-matic.lnk"
+Delete "$DESKTOP\DCP-o-matic batch converter.lnk"
+Delete "$DESKTOP\DCP-o-matic encode server.lnk"
+Delete "$SMPROGRAMS\DCP-o-matic\*.*"
+RmDir "$SMPROGRAMS\DCP-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DCP-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic"
+
+SectionEnd
diff --git a/platform/windows/installer.nsi.64.in b/platform/windows/installer.nsi.64.in
new file mode 100644
index 000000000..fd1237727
--- /dev/null
+++ b/platform/windows/installer.nsi.64.in
@@ -0,0 +1,155 @@
+!include "MUI2.nsh"
+!include "x64.nsh"
+
+Name "DCP-o-matic"
+
+RequestExecutionLevel admin
+
+outFile "DCP-o-matic @version@ 64-bit Installer.exe"
+!define MUI_ICON "%resources%/dcpomatic.ico"
+!define MUI_UNICON "%resources%/dcpomatic.ico"
+!define MUI_SPECIALBITMAP "%resources%/dcpomatic.bmp"
+
+InstallDir "$PROGRAMFILES\DCP-o-matic"
+
+!insertmacro MUI_PAGE_WELCOME
+!insertmacro MUI_PAGE_LICENSE "../../../COPYING"
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_PAGE_FINISH
+
+!insertmacro MUI_UNPAGE_WELCOME
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+!insertmacro MUI_UNPAGE_FINISH
+
+!insertmacro MUI_LANGUAGE "English"
+
+Section "install" "Installation info"
+
+${If} ${RunningX64}
+ DetailPrint "Installer running on 64-bit host"
+ ; disable registry redirection (enable access to 64-bit portion of registry)
+ SetRegView 64
+ ; change install dir
+ StrCpy $INSTDIR "$PROGRAMFILES64\DCP-o-matic"
+${EndIf}
+
+SetOutPath "$INSTDIR\bin"
+
+File "%deps%/bin/asdcp-libdcp.dll"
+File "%deps%/bin/avcodec-55.dll"
+File "%deps%/bin/avfilter-3.dll"
+File "%deps%/bin/avformat-55.dll"
+File "%deps%/bin/avutil-52.dll"
+File "%deps%/bin/dcp.dll"
+File "%deps%/bin/libintl-8.dll"
+File "%deps%/bin/kumu-libdcp.dll"
+File "%deps%/bin/libboost_chrono-mt.dll"
+File "%deps%/bin/libboost_filesystem-mt.dll"
+File "%deps%/bin/libboost_system-mt.dll"
+File "%deps%/bin/libboost_thread_win32-mt.dll"
+File "%deps%/bin/libboost_date_time-mt.dll"
+File "%deps%/bin/libeay32.dll"
+File "%deps%/bin/libgcc_s_sjlj-1.dll"
+File "%deps%/bin/libgio-2.0-0.dll"
+File "%deps%/bin/libglib-2.0-0.dll"
+File "%deps%/bin/libgobject-2.0-0.dll"
+File "%deps%/bin/libiconv-2.dll"
+File "%deps%/bin/libjpeg-8.dll"
+File "%deps%/bin/libMagick++-5.dll"
+File "%deps%/bin/libMagickCore-5.dll"
+File "%deps%/bin/libMagickWand-5.dll"
+File "%deps%/bin/libopenjpeg-1.dll"
+File "%deps%/bin/libpng15-15.dll"
+File "%deps%/bin/libsigc-2.0-0.dll"
+File "%deps%/bin/libsndfile-1.dll"
+File "%deps%/bin/libssh.dll"
+File "%deps%/bin/libstdc++-6.dll"
+File "%deps%/bin/postproc-52.dll"
+File "%deps%/bin/swresample-0.dll"
+File "%deps%/bin/swscale-2.dll"
+File "%deps%/bin/zlib1.dll"
+File "%deps%/bin/libjpeg-8.dll"
+File "%deps%/bin/wxbase294u_gcc_custom.dll"
+File "%deps%/bin/wxmsw294u_core_gcc_custom.dll"
+File "%deps%/bin/wxmsw294u_adv_gcc_custom.dll"
+File "%deps%/bin/libcairo-2.dll"
+File "%deps%/bin/libfreetype-6.dll"
+File "%deps%/bin/libgthread-2.0-0.dll"
+File "%deps%/bin/libpango-1.0-0.dll"
+File "%deps%/bin/libgmodule-2.0-0.dll"
+File "%deps%/bin/libpangocairo-1.0-0.dll"
+File "%deps%/bin/libpangowin32-1.0-0.dll"
+File "%deps%/bin/libtiff-5.dll"
+File "%deps%/bin/libglibmm-2.4-1.dll"
+File "%deps%/bin/libxml++-2.6-2.dll"
+File "%deps%/bin/libxml2-2.dll"
+File "%deps%/bin/libpixman-1-0.dll"
+File "%deps%/bin/libfontconfig-1.dll"
+File "%deps%/bin/libexpat-1.dll"
+File "%deps%/bin/libbz2.dll"
+File "%deps%/bin/cxml.dll"
+
+File "%binaries%/src/wx/dcpomatic-wx.dll"
+File "%binaries%/src/lib/dcpomatic.dll"
+File "%binaries%/src/tools/dcpomatic.exe"
+File "%binaries%/src/tools/dcpomatic_batch.exe"
+File "%binaries%/src/tools/dcpomatic_server_cli.exe"
+File "%binaries%/src/tools/dcpomatic_server.exe"
+
+# I don't know why, but sometimes it seems that
+# delegates.xml must be in with the binaries, and
+# sometimes in the $PROFILE. Meh.
+File "%deps%/etc/ImageMagick/delegates.xml"
+SetOutPath "$PROFILE\.magick"
+File "%deps%/etc/ImageMagick/delegates.xml"
+
+SetOutPath "$INSTDIR\locale\fr\LC_MESSAGES"
+File "%binaries%/src/lib/mo/fr_FR/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/fr_FR/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/fr_FR/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\it\LC_MESSAGES"
+File "%binaries%/src/lib/mo/it_IT/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/it_IT/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/it_IT/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\es\LC_MESSAGES"
+File "%binaries%/src/lib/mo/es_ES/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/es_ES/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/es_ES/dcpomatic.mo"
+SetOutPath "$INSTDIR\locale\sv\LC_MESSAGES"
+File "%binaries%/src/lib/mo/sv_SE/libdcpomatic.mo"
+File "%binaries%/src/wx/mo/sv_SE/libdcpomatic-wx.mo"
+File "%binaries%/src/tools/mo/sv_SE/dcpomatic.mo"
+
+CreateShortCut "$DESKTOP\DCP-o-matic.lnk" "$INSTDIR\bin\dcpomatic.exe" ""
+CreateShortCut "$DESKTOP\DCP-o-matic batch converter.lnk" "$INSTDIR\bin\dcpomatic_batch.exe" ""
+CreateShortCut "$DESKTOP\DCP-o-matic encode server.lnk" "$INSTDIR\bin\dcpomatic_server.exe" ""
+
+CreateDirectory "$SMPROGRAMS\DCP-o-matic"
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\Uninstall DCP-o-matic.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic.lnk" "$INSTDIR\bin\dcpomatic.exe" "" "$INSTDIR\bin\dcpomatic.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic batch converter.lnk" "$INSTDIR\bin\dcpomatic.exe" "" "$INSTDIR\bin\dcpomatic_batch.exe" 0
+CreateShortCut "$SMPROGRAMS\DCP-o-matic\DCP-o-matic encode server.lnk" "$INSTDIR\bin\dcpomatic_server.exe" "" "$INSTDIR\bin\dcpomatic_server.exe" 0
+
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic" "DisplayName" "DCP-o-matic (remove only)"
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic" "UninstallString" "$INSTDIR\Uninstall.exe"
+
+WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd
+
+
+Section "Uninstall"
+
+RMDir /r "$INSTDIR\*.*"
+RMDir "$INSTDIR"
+Delete "$DESKTOP\DCP-o-matic.lnk"
+Delete "$DESKTOP\DCP-o-matic batch converter.lnk"
+Delete "$DESKTOP\DCP-o-matic encode server.lnk"
+Delete "$SMPROGRAMS\DCP-o-matic\*.*"
+RmDir "$SMPROGRAMS\DCP-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DCP-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DCP-o-matic"
+
+SectionEnd
diff --git a/platform/windows/wscript b/platform/windows/wscript
new file mode 100644
index 000000000..585cebef1
--- /dev/null
+++ b/platform/windows/wscript
@@ -0,0 +1,4 @@
+def build(bld):
+ bld.new_task_gen(features = 'subst', source = 'installer.nsi.32.in', target = 'installer.32.nsi', version = bld.env.VERSION)
+ bld.new_task_gen(features = 'subst', source = 'installer.nsi.64.in', target = 'installer.64.nsi', version = bld.env.VERSION)
+