summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-07-23 00:42:41 +0100
committerCarl Hetherington <cth@carlh.net>2012-07-23 00:42:41 +0100
commit650d80e5daf50330ec449ea22a51c3dffa684598 (patch)
treeae9d120b92d32aaaa7f67de315bd4b6b0eb2dc6e
parenta7bc9d57f6a5c7c13400e700db50f21c283766f4 (diff)
parent7f90438d5578ef354a26adbf04641dc10a434eee (diff)
Merge branch 'master' of ssh://houllier/home/carl/git/dvdomatic
-rwxr-xr-xmake-installer9
-rw-r--r--src/tools/wscript2
-rw-r--r--windows/dvdomatic.bmpbin0 -> 343254 bytes
-rw-r--r--windows/dvdomatic.icobin0 -> 9662 bytes
-rw-r--r--windows/icon.rc2
-rw-r--r--windows/installer.nsi.in110
-rw-r--r--windows/wscript3
-rw-r--r--wscript9
8 files changed, 134 insertions, 1 deletions
diff --git a/make-installer b/make-installer
new file mode 100755
index 000000000..b783b29a2
--- /dev/null
+++ b/make-installer
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+OUT=../out
+
+cp -r $OUT/* build/windows
+cp windows/dvdomatic.ico build/windows
+cp windows/dvdomatic.bmp build/windows
+cp windows/.gtkrc-2.0 build/windows
+makensis build/windows/installer.nsi
diff --git a/src/tools/wscript b/src/tools/wscript
index 7e2891237..b3e523ba5 100644
--- a/src/tools/wscript
+++ b/src/tools/wscript
@@ -17,4 +17,6 @@ def build(bld):
obj.includes = ['..']
obj.use = ['libdvdomatic', 'libdvdomatic-gtk']
obj.source = '%s.cc' % t
+ if bld.env.TARGET_WINDOWS:
+ obj.source += ' ../../windows/icon.rc'
obj.target = t
diff --git a/windows/dvdomatic.bmp b/windows/dvdomatic.bmp
new file mode 100644
index 000000000..0a196f7a0
--- /dev/null
+++ b/windows/dvdomatic.bmp
Binary files differ
diff --git a/windows/dvdomatic.ico b/windows/dvdomatic.ico
new file mode 100644
index 000000000..225008cfe
--- /dev/null
+++ b/windows/dvdomatic.ico
Binary files differ
diff --git a/windows/icon.rc b/windows/icon.rc
new file mode 100644
index 000000000..a4f862b3c
--- /dev/null
+++ b/windows/icon.rc
@@ -0,0 +1,2 @@
+id ICON "dvdomatic.ico"
+ \ No newline at end of file
diff --git a/windows/installer.nsi.in b/windows/installer.nsi.in
new file mode 100644
index 000000000..4f8a53abe
--- /dev/null
+++ b/windows/installer.nsi.in
@@ -0,0 +1,110 @@
+!include "MUI2.nsh"
+Name "DVD-o-matic"
+
+RequestExecutionLevel user
+
+outFile "DVD-o-matic @version@.exe"
+!define MUI_ICON "dvdomatic.ico"
+!define MUI_UNICON "dvdomatic.ico"
+!define MUI_SPECIALBITMAP "dvdomatic.bmp"
+
+InstallDir "$PROGRAMFILES\DVD-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 "bin/asdcp-libdcp.dll"
+File "bin/avcodec-54.dll"
+File "bin/avfilter-3.dll"
+File "bin/avformat-54.dll"
+File "bin/avutil-51.dll"
+File "bin/dcp.dll"
+File "bin/dvdomatic-gtk.dll"
+File "bin/dvdomatic.dll"
+File "bin/dvdomatic.exe"
+File "bin/intl.dll"
+File "bin/kumu-libdcp.dll"
+File "bin/libatkmm-1.6-1.dll"
+File "bin/libboost_chrono-mt.dll"
+File "bin/libboost_filesystem-mt.dll"
+File "bin/libboost_system-mt.dll"
+File "bin/libboost_thread_win32-mt.dll"
+File "bin/libcairomm-1.0-1.dll"
+File "bin/libeay32.dll"
+File "bin/libgcc_s_sjlj-1.dll"
+File "bin/libgdk-win32-2.0-0.dll"
+File "bin/libgdkmm-2.4-1.dll"
+File "bin/libgdk_pixbuf-2.0-0.dll"
+File "bin/libgio-2.0-0.dll"
+File "bin/libgiomm-2.4-1.dll"
+File "bin/libglib-2.0-0.dll"
+File "bin/libglibmm-2.4-1.dll"
+File "bin/libgobject-2.0-0.dll"
+File "bin/libgtk-win32-2.0-0.dll"
+File "bin/libgtkmm-2.4-1.dll"
+File "bin/libjpeg-7.dll"
+File "bin/libMagick++-5.dll"
+File "bin/libMagickCore-5.dll"
+File "bin/libMagickWand-5.dll"
+File "bin/libopenjpeg-1.dll"
+File "bin/libpangomm-1.4-1.dll"
+File "bin/libpng14-14.dll"
+File "bin/libsigc-2.0-0.dll"
+File "bin/libsndfile-1.dll"
+File "bin/libssh.dll"
+File "bin/libstdc++-6.dll"
+File "bin/postproc-52.dll"
+File "bin/swresample-0.dll"
+File "bin/swscale-2.dll"
+File "bin/zlib1.dll"
+
+CreateDirectory "$INSTDIR\etc\gtk-2.0"
+SetOutPath "$INSTDIR\etc\gtk-2.0"
+File "etc/gtk-2.0/im-multipress.conf"
+File "etc/gtk-2.0/gtkrc"
+File "etc/gtk-2.0/gtk.immodules"
+
+CreateDirectory "$INSTDIR\etc\pango"
+SetOutPath "$INSTDIR\etc\pango"
+File "etc/pango/pango.modules"
+
+CreateShortCut "$DESKTOP\DVD-o-matic.lnk" "$INSTDIR\bin\dvdomatic.exe" ""
+
+CreateDirectory "$SMPROGRAMS\DVD-o-matic"
+CreateShortCut "$SMPROGRAMS\DVD-o-matic\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
+CreateShortCut "$SMPROGRAMS\DVD-o-matic\DVD-o-matic.lnk" "$INSTDIR\dvdomatic.exe" "" "$INSTDIR\dvdomatic.exe" 0
+
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic" "DisplayName" "DVD-o-matic (remove only)"
+WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic" "UninstallString" "$INSTDIR\Uninstall.exe"
+
+WriteUninstaller "$INSTDIR\Uninstall.exe"
+
+SectionEnd
+
+
+Section "Uninstall"
+
+RMDir /r "$INSTDIR\*.*"
+RMDir "$INSTDIR"
+Delete "$DESKTOP\DVD-o-matic.lnk"
+Delete "$SMPROGRAMS\DVD-o-matic\*.*"
+RmDir "$SMPROGRAMS\DVD-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\DVD-o-matic"
+DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DVD-o-matic"
+
+SectionEnd
+ \ No newline at end of file
diff --git a/windows/wscript b/windows/wscript
new file mode 100644
index 000000000..b9d1f3c9e
--- /dev/null
+++ b/windows/wscript
@@ -0,0 +1,3 @@
+def build(bld):
+ bld.new_task_gen(features = 'subst', source = 'installer.nsi.in', target = 'installer.nsi', version = bld.env.VERSION)
+
diff --git a/wscript b/wscript
index 60b167ff8..290f00188 100644
--- a/wscript
+++ b/wscript
@@ -6,6 +6,7 @@ VERSION = '0.30pre'
def options(opt):
opt.load('compiler_cxx')
+ opt.load('winres')
opt.add_option('--debug-hash', action='store_true', default = False, help = 'print hashes of data at various points')
opt.add_option('--enable-debug', action='store_true', default = False, help = 'build with debugging information and without optimisation')
opt.add_option('--disable-gui', action='store_true', default = False, help = 'disable building of GUI tools')
@@ -15,12 +16,14 @@ def options(opt):
def configure(conf):
conf.load('compiler_cxx')
+ conf.load('winres')
conf.env.append_value('CXXFLAGS', ['-D__STDC_CONSTANT_MACROS', '-msse', '-mfpmath=sse', '-ffast-math', '-fno-strict-aliasing', '-Wall', '-Wno-attributes'])
conf.env.append_value('CXXFLAGS', ['-DDVDOMATIC_VERSION="%s"' % VERSION])
if conf.options.target_windows:
- conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_WINDOWS')
+ conf.env.append_value('CXXFLAGS', ['-DDVDOMATIC_WINDOWS'])
+ conf.env.append_value('LINKFLAGS', '-mwindows')
conf.options.disable_player = True
conf.check(lib = 'ws2_32', uselib_store = 'WINSOCK2', msg = "Checking for library winsock2")
boost_lib_suffix = '-mt'
@@ -34,6 +37,7 @@ def configure(conf):
conf.env.TARGET_WINDOWS = conf.options.target_windows
conf.env.DISABLE_GUI = conf.options.disable_gui
conf.env.DISABLE_PLAYER = conf.options.disable_player
+ conf.env.VERSION = VERSION
if conf.options.disable_player:
conf.env.append_value('CXXFLAGS', '-DDVDOMATIC_DISABLE_PLAYER')
@@ -106,6 +110,8 @@ def build(bld):
bld.recurse('src')
bld.recurse('test')
+ if bld.env.TARGET_WINDOWS:
+ bld.recurse('windows')
d = { 'PREFIX' : '${PREFIX' }
@@ -141,3 +147,4 @@ def create_version_cc(version):
except IOError:
print('Could not open src/lib/version.cc for writing\n')
sys.exit(-1)
+