from __future__ import print_function
import os
-def write_installer(bits, dcpomatic_version, debug, variant, disk):
+def write_installer(bits, dcpomatic_version, debug, disk):
tools = [
('batch', 'Batch Converter'),
('player', 'Player'),
('cli', 'CLI'),
('create', 'Creator'),
- ('playlist', 'Playlist Editor')
+ ('playlist', 'Playlist Editor'),
+ ('combiner', 'Combiner'),
+ ('editor', 'Editor'),
]
if disk:
tools.append(('disk', 'Disk Writer'))
- os.makedirs('build/platform/windows', exist_ok=True)
+ # It would be nice to use exist_ok here but it requires quite a new python
+ try:
+ os.makedirs('build/platform/windows')
+ except:
+ pass
filename = 'build/platform/windows/installer.%d.nsi' % bits
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
+!define SF_USELECTED 0
+!define SF_RO 16
+
+!macro SecUnSelect SecId
+ Push $0
+ IntOp $0 ${SF_USELECTED} | ${SF_RO}
+ SectionSetFlags ${SecId} $0
+ SectionSetText ${SecId} ""
+ Pop $0
+!macroend
+
+!define UnSelectSection '!insertmacro SecUnSelect'
+
+Function GetOptions
+ !define GetOptions `!insertmacro GetOptionsCall`
+
+ !macro GetOptionsCall _PARAMETERS _OPTION _RESULT
+ Push `${_PARAMETERS}`
+ Push `${_OPTION}`
+ Call GetOptions
+ Pop ${_RESULT}
+ !macroend
+
+ Exch $1
+ Exch
+ Exch $0
+ Exch
+ Push $2
+ Push $3
+ Push $4
+ Push $5
+ Push $6
+ Push $7
+ ClearErrors
+
+ StrCpy $2 $1 '' 1
+ StrCpy $1 $1 1
+ StrLen $3 $2
+ StrCpy $7 0
+
+ begin:
+ StrCpy $4 -1
+ StrCpy $6 ''
+
+ quote:
+ IntOp $4 $4 + 1
+ StrCpy $5 $0 1 $4
+ StrCmp $5$7 '0' notfound
+ StrCmp $5 '' trimright
+ StrCmp $5 '"' 0 +7
+ StrCmp $6 '' 0 +3
+ StrCpy $6 '"'
+ goto quote
+ StrCmp $6 '"' 0 +3
+ StrCpy $6 ''
+ goto quote
+ StrCmp $5 `'` 0 +7
+ StrCmp $6 `` 0 +3
+ StrCpy $6 `'`
+ goto quote
+ StrCmp $6 `'` 0 +3
+ StrCpy $6 ``
+ goto quote
+ StrCmp $5 '`' 0 +7
+ StrCmp $6 '' 0 +3
+ StrCpy $6 '`'
+ goto quote
+ StrCmp $6 '`' 0 +3
+ StrCpy $6 ''
+ goto quote
+ StrCmp $6 '"' quote
+ StrCmp $6 `'` quote
+ StrCmp $6 '`' quote
+ StrCmp $5 $1 0 quote
+ StrCmp $7 0 trimleft trimright
+
+ trimleft:
+ IntOp $4 $4 + 1
+ StrCpy $5 $0 $3 $4
+ StrCmp $5 '' notfound
+ StrCmp $5 $2 0 quote
+ IntOp $4 $4 + $3
+ StrCpy $0 $0 '' $4
+ StrCpy $4 $0 1
+ StrCmp $4 ' ' 0 +3
+ StrCpy $0 $0 '' 1
+ goto -3
+ StrCpy $7 1
+ goto begin
+
+ trimright:
+ StrCpy $0 $0 $4
+ StrCpy $4 $0 1 -1
+ StrCmp $4 ' ' 0 +3
+ StrCpy $0 $0 -1
+ goto -3
+ StrCpy $3 $0 1
+ StrCpy $4 $0 1 -1
+ StrCmp $3 $4 0 end
+ StrCmp $3 '"' +3
+ StrCmp $3 `'` +2
+ StrCmp $3 '`' 0 end
+ StrCpy $0 $0 -1 1
+ goto end
+
+ notfound:
+ SetErrors
+ StrCpy $0 ''
+
+ end:
+ Pop $7
+ Pop $6
+ Pop $5
+ Pop $4
+ Pop $3
+ Pop $2
+ Pop $1
+ Exch $0
+FunctionEnd
+
+Function .onInit
+${GetOptions} $R0 /NOSERVER= $0
+${If} $0 == "1"
+ ${UnSelectSection} "Encode server"
+${Endif}
+FunctionEnd
+
Section "Common files (required)" SEC_COMMON
SectionIn RO
""", file=f)
WriteUninstaller "$INSTDIR\\Uninstall.exe"
File "%static_deps%/bin/libintl-8.dll"
-File "%static_deps%/bin/libboost_chrono-mt.dll"
-File "%static_deps%/bin/libboost_filesystem-mt.dll"
-File "%static_deps%/bin/libboost_system-mt.dll"
-File "%static_deps%/bin/libboost_thread-mt.dll"
-File "%static_deps%/bin/libboost_date_time-mt.dll"
-File "%static_deps%/bin/libboost_locale-mt.dll"
-File "%static_deps%/bin/libboost_regex-mt.dll"
""", file=f)
+ for lib in ['chrono', 'filesystem', 'system', 'thread', 'date_time', 'locale', 'regex']:
+ print('File "%%static_deps%%/bin/libboost_%s-mt-x%d.dll"' % (lib, bits), file=f)
+
if bits == 32:
print('File "%static_deps%/bin/libgcc_s_sjlj-1.dll"', file=f)
else:
File "%static_deps%/bin/libstdc++-6.dll"
File "%static_deps%/bin/zlib1.dll"
File "%static_deps%/bin/libjpeg-9.dll"
-File "%static_deps%/bin/wxbase30u_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_core_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_adv_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_richtext_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_html_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_gl_gcc_custom.dll"
-File "%static_deps%/bin/wxmsw30u_propgrid_gcc_custom.dll"
-File "%static_deps%/bin/wxbase30u_xml_gcc_custom.dll"
+File "%static_deps%/bin/wxbase314u_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_core_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_adv_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_richtext_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_html_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_gl_gcc_custom.dll"
+File "%static_deps%/bin/wxmsw314u_propgrid_gcc_custom.dll"
+File "%static_deps%/bin/wxbase314u_xml_gcc_custom.dll"
File "%static_deps%/bin/libcairo-2.dll"
File "%static_deps%/bin/libfreetype-6.dll"
File "%static_deps%/bin/libgthread-2.0-0.dll"
File "%static_deps%/bin/libcairomm-1.0-1.dll"
File "%static_deps%/bin/libpangomm-1.4-1.dll"
File "%static_deps%/bin/libsamplerate-0.dll"
-File "%static_deps%/bin/libnettle-7.dll"
-File "%static_deps%/bin/icuuc65.dll"
-File "%static_deps%/bin/icudt65.dll"
-File "%static_deps%/bin/icuin65.dll"
+File "%static_deps%/bin/libnettle-8.dll"
+File "%static_deps%/bin/icuuc66.dll"
+File "%static_deps%/bin/icudt66.dll"
+File "%static_deps%/bin/icuin66.dll"
File "%static_deps%/bin/liblzma-5.dll"
File "%static_deps%/bin/libpcre-1.dll"
File "%static_deps%/bin/libharfbuzz-0.dll"
-File "%static_deps%/bin/libjasper.dll"
-File "%static_deps%/bin/liblcms2-2.dll"
File "%static_deps%/bin/libwinpthread-1.dll"
File "%static_deps%/bin/libgnutls-30.dll"
File "%static_deps%/bin/libgmp-10.dll"
-File "%static_deps%/bin/libhogweed-5.dll"
+File "%static_deps%/bin/libhogweed-6.dll"
File "%static_deps%/bin/libidn2-0.dll"
File "%static_deps%/bin/libunistring-2.dll"
File "%static_deps%/bin/libssh2-1.dll"
File "%static_deps%/bin/libpangoft2-1.0-0.dll"
File "%static_deps%/bin/libx264-155.dll"
File "%static_deps%/bin/libwebp-7.dll"
+File "%static_deps%/bin/GLEW.dll"
+File "%static_deps%/bin/libdav1d.dll"
""", file=f)
if bits == 32:
- print('File "%static_deps%/bin/libcrypto-1_1.dll"', file=f)
+ print('File "%static_deps%/bin/libcrypto-3.dll"', file=f)
else:
- print('File "%static_deps%/bin/libcrypto-1_1-x64.dll"', file=f)
+ print('File "%static_deps%/bin/libcrypto-3-x64.dll"', file=f)
print("""
File "%static_deps%/bin/libltdl-7.dll"
File "%static_deps%/bin/libdl.dll"
+File /oname=dcpomatic2_verify.exe "%cdist_deps%/bin/dcpverify.exe"
File "%cdist_deps%/bin/leqm_nrt.dll"
File "%cdist_deps%/bin/asdcp-carl.dll"
File "%cdist_deps%/bin/kumu-carl.dll"
print('File "%resources%/gdb_script"', file=f)
print('File "%resources%/dcpomatic2_debug.bat"', file=f)
print('File "%mingw%/bin/gdb.exe"', file=f)
+ print('File "%static_deps%/bin/libtermcap.dll"', file=f)
+ print('File "%static_deps%/bin/libreadline8.dll"', file=f)
+ print('File "%static_deps%/bin/libmman.dll"', file=f)
for s, l in tools:
print('File "%%resources%%/dcpomatic2_%s_debug.bat"' % s, file=f)
else:
File "%binaries%/src/lib/mo/tr_TR/libdcpomatic2.mo"
File "%binaries%/src/wx/mo/tr_TR/libdcpomatic2-wx.mo"
File "%binaries%/src/tools/mo/tr_TR/dcpomatic2.mo"
+SetOutPath "$INSTDIR\\locale\\sl_si\\LC_MESSAGES"
+File "%binaries%/src/lib/mo/sl_SI/libdcpomatic2.mo"
+File "%binaries%/src/wx/mo/sl_SI/libdcpomatic2-wx.mo"
+File "%binaries%/src/tools/mo/sl_SI/dcpomatic2.mo"
+SetOutPath "$INSTDIR\\locale\\hu_hu\\LC_MESSAGES"
+File "%binaries%/src/lib/mo/hu_HU/libdcpomatic2.mo"
+File "%binaries%/src/wx/mo/hu_HU/libdcpomatic2-wx.mo"
+File "%binaries%/src/tools/mo/hu_HU/dcpomatic2.mo"
SetOutPath "$INSTDIR"
File "%resources%/../../fonts/LiberationSans-Regular.ttf"
File "%resources%/../../fonts/LiberationSans-Bold.ttf"
File /oname=fonts.conf "%resources%/../../fonts/fonts.conf.windows"
File "%graphics%/splash.png"
-File "%graphics%/zoom.png"
-File "%graphics%/zoom_all.png"
-File "%graphics%/select.png"
-File "%graphics%/snap.png"
-File "%graphics%/sequence.png"
+File "%graphics%/zoom_white.png"
+File "%graphics%/zoom_black.png"
+File "%graphics%/zoom_all_white.png"
+File "%graphics%/zoom_all_black.png"
+File "%graphics%/select_white.png"
+File "%graphics%/select_black.png"
+File "%graphics%/snap_white.png"
+File "%graphics%/snap_black.png"
+File "%graphics%/sequence_white.png"
+File "%graphics%/sequence_black.png"
File "%graphics%/me.jpg"
File "%graphics%/tick.png"
File "%graphics%/no_tick.png"
File "%graphics%/link.png"
SetOutPath "$INSTDIR\\xsd"
+File "%cdist_deps%/share/libdcp/xsd/DCDMSubtitle-2010.xsd"
+File "%cdist_deps%/share/libdcp/xsd/DCSubtitle.v1.mattsson.xsd"
+File "%cdist_deps%/share/libdcp/xsd/Dolby-2012-AD.xsd"
+File "%cdist_deps%/share/libdcp/xsd/isdcf-mca.xsd"
+File "%cdist_deps%/share/libdcp/xsd/Main-Stereo-Picture-CPL.xsd"
+File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-AM-20040311.xsd"
+File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-CC-CPL-20070926.xsd"
+File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-CPL-20040511.xsd"
+File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-PKL-20040311.xsd"
+File "%cdist_deps%/share/libdcp/xsd/SMPTE-335-2012.xsd"
+File "%cdist_deps%/share/libdcp/xsd/SMPTE-395-2014-13-1-aaf.xsd"
+File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-10-2008.xsd"
+File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-12-2008.xsd"
+File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-16.xsd"
File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-7-2006-CPL.xsd"
File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-8-2006-PKL.xsd"
File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-9-2007-AM.xsd"
+File "%cdist_deps%/share/libdcp/xsd/xlink.xsd"
File "%cdist_deps%/share/libdcp/xsd/xmldsig-core-schema.xsd"
File "%cdist_deps%/share/libdcp/xsd/XMLSchema.dtd"
File "%cdist_deps%/share/libdcp/xsd/XMLSchema.xsd"
File "%cdist_deps%/share/libdcp/xsd/xml.xsd"
-File "%cdist_deps%/share/libdcp/xsd/DCDMSubtitle-2010.xsd"
-File "%cdist_deps%/share/libdcp/xsd/DCSubtitle.v1.mattsson.xsd"
-File "%cdist_deps%/share/libdcp/xsd/Main-Stereo-Picture-CPL.xsd"
-File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-AM-20040311.xsd"
-File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-CPL-20040511.xsd"
-File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-PKL-20040311.xsd"
+SetOutPath "$INSTDIR\\tags"
+File "%cdist_deps%/share/libdcp/tags/extlang"
+File "%cdist_deps%/share/libdcp/tags/language"
+File "%cdist_deps%/share/libdcp/tags/region"
+File "%cdist_deps%/share/libdcp/tags/script"
+File "%cdist_deps%/share/libdcp/tags/variant"
+File "%cdist_deps%/share/libdcp/tags/dcnc"
+SetOutPath "$INSTDIR"
+File "%cdist_deps%/share/libdcp/ratings"
SectionEnd
""", file=f)
else:
print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2.lnk" "$INSTDIR\\bin\\dcpomatic2.exe"', file=f)
for s, l in tools:
- print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2 %s Converter.lnk" "$INSTDIR\\bin\\dcpomatic2_%s.exe"' % (l, s), file=f)
+ print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2 %s.lnk" "$INSTDIR\\bin\\dcpomatic2_%s.exe"' % (l, s), file=f)
print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\Uninstall DCP-o-matic 2.lnk" "$INSTDIR\\Uninstall.exe"', file=f)
print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic2" "DisplayName" "DCP-o-matic 2 (remove only)"', file=f)
print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic2" "UninstallString" "$INSTDIR\\Uninstall.exe"', file=f)
def build(bld):
- write_installer(32, bld.env.VERSION, bld.env.DEBUG, bld.env.VARIANT, bld.env.ENABLE_DISK)
- write_installer(64, bld.env.VERSION, bld.env.DEBUG, bld.env.VARIANT, bld.env.ENABLE_DISK)
+ write_installer(32, bld.env.VERSION, bld.env.DEBUG, bld.env.ENABLE_DISK)
+ write_installer(64, bld.env.VERSION, bld.env.DEBUG, bld.env.ENABLE_DISK)