Add /NOSERVER option to Windows installer to not install the encode server (#2362).
[dcpomatic.git] / platform / windows / wscript
1 from __future__ import print_function
2 import os
3
4 def write_installer(bits, dcpomatic_version, debug, disk):
5
6     tools = [
7         ('batch', 'Batch Converter'),
8         ('kdm', 'KDM Creator'),
9         ('kdm_cli', 'KDM Creator CLI'),
10         ('player', 'Player'),
11         ('cli', 'CLI'),
12         ('create', 'Creator'),
13         ('playlist', 'Playlist Editor'),
14         ('combiner', 'Combiner'),
15         ('editor', 'Editor'),
16     ]
17
18     if disk:
19         tools.append(('disk', 'Disk Writer'))
20
21     # It would be nice to use exist_ok here but it requires quite a new python
22     try:
23         os.makedirs('build/platform/windows')
24     except:
25         pass
26
27     filename = 'build/platform/windows/installer.%d.nsi' % bits
28
29     f = open(filename, 'w')
30     print('!include "MUI2.nsh"', file=f)
31     if bits == 64:
32         print('!include "x64.nsh"', file=f)
33
34     if debug:
35         print('Name "DCP-o-matic debug"', file=f)
36     else:
37         print('Name "DCP-o-matic"', file=f)
38
39     print('RequestExecutionLevel admin', file=f)
40
41     outfile = 'DCP-o-matic '
42     if debug:
43         outfile += 'Debug '
44     outfile += '%s %d-bit Installer.exe' % (dcpomatic_version, bits)
45
46     print('outFile "%s"' % outfile, file=f)
47
48     print("""
49 !define MUI_ICON "%graphics%/windows/dcpomatic2.ico"
50 !define MUI_UNICON "%graphics%/windows/dcpomatic2.ico"
51 !define MUI_SPECIALBITMAP "%graphics%/windows/dcpomatic.bmp"
52 !include "Sections.nsh"
53     """, file=f)
54
55     if bits == 64:
56         program_files = "$PROGRAMFILES64"
57     else:
58         program_files = "$PROGRAMFILES"
59
60     if debug:
61         print('InstallDir "%s\\DCP-o-matic 2 debug"' % program_files, file=f)
62     else:
63         print('InstallDir "%s\\DCP-o-matic 2"' % program_files, file=f)
64
65     print("""
66 !insertmacro MUI_PAGE_WELCOME
67 !insertmacro MUI_PAGE_LICENSE "../../../COPYING"
68 !insertmacro MUI_PAGE_DIRECTORY
69 !insertmacro MUI_PAGE_COMPONENTS
70
71 !define SF_USELECTED  0
72 !define SF_SELECTED   1
73 !define SF_SECGRP     2
74 !define SF_BOLD       8
75 !define SF_RO         16
76 !define SF_EXPAND     32
77
78 !macro SecUnSelect SecId
79   Push $0
80   IntOp $0 ${SF_USELECTED} | ${SF_RO}
81   SectionSetFlags ${SecId} $0
82   SectionSetText  ${SecId} ""
83   Pop $0
84 !macroend
85  
86 !define UnSelectSection '!insertmacro SecUnSelect'
87
88 Function GetOptions
89         !define GetOptions `!insertmacro GetOptionsCall`
90  
91         !macro GetOptionsCall _PARAMETERS _OPTION _RESULT
92                 Push `${_PARAMETERS}`
93                 Push `${_OPTION}`
94                 Call GetOptions
95                 Pop ${_RESULT}
96         !macroend
97  
98         Exch $1
99         Exch
100         Exch $0
101         Exch
102         Push $2
103         Push $3
104         Push $4
105         Push $5
106         Push $6
107         Push $7
108         ClearErrors
109  
110         StrCpy $2 $1 '' 1
111         StrCpy $1 $1 1
112         StrLen $3 $2
113         StrCpy $7 0
114  
115         begin:
116         StrCpy $4 -1
117         StrCpy $6 ''
118  
119         quote:
120         IntOp $4 $4 + 1
121         StrCpy $5 $0 1 $4
122         StrCmp $5$7 '0' notfound
123         StrCmp $5 '' trimright
124         StrCmp $5 '"' 0 +7
125         StrCmp $6 '' 0 +3
126         StrCpy $6 '"'
127         goto quote
128         StrCmp $6 '"' 0 +3
129         StrCpy $6 ''
130         goto quote
131         StrCmp $5 `'` 0 +7
132         StrCmp $6 `` 0 +3
133         StrCpy $6 `'`
134         goto quote
135         StrCmp $6 `'` 0 +3
136         StrCpy $6 ``
137         goto quote
138         StrCmp $5 '`' 0 +7
139         StrCmp $6 '' 0 +3
140         StrCpy $6 '`'
141         goto quote
142         StrCmp $6 '`' 0 +3
143         StrCpy $6 ''
144         goto quote
145         StrCmp $6 '"' quote
146         StrCmp $6 `'` quote
147         StrCmp $6 '`' quote
148         StrCmp $5 $1 0 quote
149         StrCmp $7 0 trimleft trimright
150  
151         trimleft:
152         IntOp $4 $4 + 1
153         StrCpy $5 $0 $3 $4
154         StrCmp $5 '' notfound
155         StrCmp $5 $2 0 quote
156         IntOp $4 $4 + $3
157         StrCpy $0 $0 '' $4
158         StrCpy $4 $0 1
159         StrCmp $4 ' ' 0 +3
160         StrCpy $0 $0 '' 1
161         goto -3
162         StrCpy $7 1
163         goto begin
164  
165         trimright:
166         StrCpy $0 $0 $4
167         StrCpy $4 $0 1 -1
168         StrCmp $4 ' ' 0 +3
169         StrCpy $0 $0 -1
170         goto -3
171         StrCpy $3 $0 1
172         StrCpy $4 $0 1 -1
173         StrCmp $3 $4 0 end
174         StrCmp $3 '"' +3
175         StrCmp $3 `'` +2
176         StrCmp $3 '`' 0 end
177         StrCpy $0 $0 -1 1
178         goto end
179  
180         notfound:
181         SetErrors
182         StrCpy $0 ''
183  
184         end:
185         Pop $7
186         Pop $6
187         Pop $5
188         Pop $4
189         Pop $3
190         Pop $2
191         Pop $1
192         Exch $0
193 FunctionEnd
194
195 Function .onInit
196 ${GetOptions} $R0 /NOSERVER= $0
197 ${If} $0 == "1"
198   ${UnSelectSection} "Encode server"
199 ${Endif}
200 FunctionEnd
201
202 Section "Common files (required)" SEC_COMMON
203 SectionIn RO
204     """, file=f)
205
206     if bits == 64:
207         print("""
208 ; disable registry redirection (enable access to 64-bit portion of registry)
209 SetRegView 64
210         """, file=f)
211
212     print("""
213 SetOutPath "$INSTDIR\\bin"
214 WriteUninstaller "$INSTDIR\\Uninstall.exe"
215
216 File "%static_deps%/bin/libintl-8.dll"
217 """, file=f)
218
219     for lib in ['chrono', 'filesystem', 'system', 'thread', 'date_time', 'locale', 'regex']:
220         print('File "%%static_deps%%/bin/libboost_%s-mt-x%d.dll"' % (lib, bits), file=f)
221
222     if bits == 32:
223         print('File "%static_deps%/bin/libgcc_s_sjlj-1.dll"', file=f)
224     else:
225         print('File "%static_deps%/bin/libgcc_s_seh-1.dll"', file=f)
226
227     print("""
228 File "%static_deps%/bin/libgio-2.0-0.dll"
229 File "%static_deps%/bin/libglib-2.0-0.dll"
230 File "%static_deps%/bin/libgobject-2.0-0.dll"
231 File "%static_deps%/bin/libiconv-2.dll"
232 File "%static_deps%/bin/libjpeg-9.dll"
233 File "%static_deps%/bin/libpng16-16.dll"
234 File "%static_deps%/bin/libsigc-2.0-0.dll"
235 File "%static_deps%/bin/libsndfile-1.dll"
236 File "%static_deps%/bin/libssh.dll"
237 File "%static_deps%/bin/libstdc++-6.dll"
238 File "%static_deps%/bin/zlib1.dll"
239 File "%static_deps%/bin/libjpeg-9.dll"
240 File "%static_deps%/bin/wxbase314u_gcc_custom.dll"
241 File "%static_deps%/bin/wxmsw314u_core_gcc_custom.dll"
242 File "%static_deps%/bin/wxmsw314u_adv_gcc_custom.dll"
243 File "%static_deps%/bin/wxmsw314u_richtext_gcc_custom.dll"
244 File "%static_deps%/bin/wxmsw314u_html_gcc_custom.dll"
245 File "%static_deps%/bin/wxmsw314u_gl_gcc_custom.dll"
246 File "%static_deps%/bin/wxmsw314u_propgrid_gcc_custom.dll"
247 File "%static_deps%/bin/wxbase314u_xml_gcc_custom.dll"
248 File "%static_deps%/bin/libcairo-2.dll"
249 File "%static_deps%/bin/libfreetype-6.dll"
250 File "%static_deps%/bin/libgthread-2.0-0.dll"
251 File "%static_deps%/bin/libpango-1.0-0.dll"
252 File "%static_deps%/bin/libgmodule-2.0-0.dll"
253 File "%static_deps%/bin/libpangocairo-1.0-0.dll"
254 File "%static_deps%/bin/libpangowin32-1.0-0.dll"
255 File "%static_deps%/bin/libtiff-5.dll"
256 File "%static_deps%/bin/libglibmm-2.4-1.dll"
257 File "%static_deps%/bin/libxml++-2.6-2.dll"
258 File "%static_deps%/bin/libxml2-2.dll"
259 File "%static_deps%/bin/libpixman-1-0.dll"
260 File "%static_deps%/bin/libfontconfig-1.dll"
261 File "%static_deps%/bin/libexpat-1.dll"
262 File "%static_deps%/bin/libbz2.dll"
263 File "%static_deps%/bin/libxmlsec1.dll"
264 File "%static_deps%/bin/libxmlsec1-openssl.dll"
265 File "%static_deps%/bin/libexslt-0.dll"
266 File "%static_deps%/bin/libxslt-1.dll"
267 File "%static_deps%/bin/libffi-6.dll"
268 File "%static_deps%/bin/openssl.exe"
269 File "%static_deps%/bin/libcurl-4.dll"
270 File "%static_deps%/bin/libzip.dll"
271 File "%static_deps%/bin/libcairomm-1.0-1.dll"
272 File "%static_deps%/bin/libpangomm-1.4-1.dll"
273 File "%static_deps%/bin/libsamplerate-0.dll"
274 File "%static_deps%/bin/libnettle-8.dll"
275 File "%static_deps%/bin/icuuc66.dll"
276 File "%static_deps%/bin/icudt66.dll"
277 File "%static_deps%/bin/icuin66.dll"
278 File "%static_deps%/bin/liblzma-5.dll"
279 File "%static_deps%/bin/libpcre-1.dll"
280 File "%static_deps%/bin/libharfbuzz-0.dll"
281 File "%static_deps%/bin/libwinpthread-1.dll"
282 File "%static_deps%/bin/libgnutls-30.dll"
283 File "%static_deps%/bin/libgmp-10.dll"
284 File "%static_deps%/bin/libhogweed-6.dll"
285 File "%static_deps%/bin/libidn2-0.dll"
286 File "%static_deps%/bin/libunistring-2.dll"
287 File "%static_deps%/bin/libssh2-1.dll"
288 File "%static_deps%/bin/libgcrypt-20.dll"
289 File "%static_deps%/bin/libgpg-error-0.dll"
290 File "%static_deps%/bin/libpangoft2-1.0-0.dll"
291 File "%static_deps%/bin/libx264-155.dll"
292 File "%static_deps%/bin/libwebp-7.dll"
293 File "%static_deps%/bin/GLEW.dll"
294 File "%static_deps%/bin/libdav1d.dll"
295     """, file=f)
296
297     if bits == 32:
298         print('File "%static_deps%/bin/libcrypto-3.dll"', file=f)
299     else:
300         print('File "%static_deps%/bin/libcrypto-3-x64.dll"', file=f)
301
302     print("""
303 File "%static_deps%/bin/libltdl-7.dll"
304 File "%static_deps%/bin/libdl.dll"
305 File /oname=dcpomatic2_verify.exe "%cdist_deps%/bin/dcpverify.exe"
306 File "%cdist_deps%/bin/leqm_nrt.dll"
307 File "%cdist_deps%/bin/asdcp-carl.dll"
308 File "%cdist_deps%/bin/kumu-carl.dll"
309     """, file=f)
310
311     if disk:
312         print("""
313 File "%static_deps%/bin/libnanomsg.dll"
314 File "%cdist_deps%/lib/libblockdev.dll"
315 File "%cdist_deps%/lib/liblwext4.dll"
316         """, file=f)
317
318     print("""
319 File "%cdist_deps%/bin/avcodec-58.dll"
320 File "%cdist_deps%/bin/avfilter-7.dll"
321 File "%cdist_deps%/bin/avformat-58.dll"
322 File "%cdist_deps%/bin/avutil-56.dll"
323 File "%cdist_deps%/bin/avdevice-58.dll"
324 File "%cdist_deps%/bin/postproc-55.dll"
325 File "%cdist_deps%/bin/swresample-3.dll"
326 File "%cdist_deps%/bin/swscale-5.dll"
327 File "%cdist_deps%/bin/dcp-1.0.dll"
328 File "%cdist_deps%/bin/cxml-0.dll"
329 File "%cdist_deps%/bin/sub-1.0.dll"
330 File "%cdist_deps%/bin/ffprobe.exe"
331 File "%cdist_deps%/src/openssl/apps/openssl.exe"
332 File "%cdist_deps%/bin/libopenjp2.dll"
333     """, file=f)
334
335     if debug:
336         print('File "%resources%/gdb_script"', file=f)
337         print('File "%resources%/dcpomatic2_debug.bat"', file=f)
338         print('File "%mingw%/bin/gdb.exe"', file=f)
339         print('File "%static_deps%/bin/libtermcap.dll"', file=f)
340         print('File "%static_deps%/bin/libreadline8.dll"', file=f)
341         print('File "%static_deps%/bin/libmman.dll"', file=f)
342         for s, l in tools:
343             print('File "%%resources%%/dcpomatic2_%s_debug.bat"' % s, file=f)
344     else:
345         print('File "%binaries%/src/wx/dcpomatic2-wx.dll"', file=f)
346         print('File "%binaries%/src/lib/dcpomatic2.dll"', file=f)
347
348     print("""
349 SetOutPath "$INSTDIR\\bin"
350
351 SetOutPath "$INSTDIR\\locale\\fr\\LC_MESSAGES"
352 File "%binaries%/src/lib/mo/fr_FR/libdcpomatic2.mo"
353 File "%binaries%/src/wx/mo/fr_FR/libdcpomatic2-wx.mo"
354 File "%binaries%/src/tools/mo/fr_FR/dcpomatic2.mo"
355 File "%static_deps%/share/locale/fr/LC_MESSAGES/wxstd.mo"
356 SetOutPath "$INSTDIR\\locale\\it\\LC_MESSAGES"
357 File "%binaries%/src/lib/mo/it_IT/libdcpomatic2.mo"
358 File "%binaries%/src/wx/mo/it_IT/libdcpomatic2-wx.mo"
359 File "%binaries%/src/tools/mo/it_IT/dcpomatic2.mo"
360 File "%static_deps%/share/locale/it/LC_MESSAGES/wxstd.mo"
361 SetOutPath "$INSTDIR\\locale\\es\\LC_MESSAGES"
362 File "%binaries%/src/lib/mo/es_ES/libdcpomatic2.mo"
363 File "%binaries%/src/wx/mo/es_ES/libdcpomatic2-wx.mo"
364 File "%binaries%/src/tools/mo/es_ES/dcpomatic2.mo"
365 File "%static_deps%/share/locale/es/LC_MESSAGES/wxstd.mo"
366 SetOutPath "$INSTDIR\\locale\\sv\\LC_MESSAGES"
367 File "%binaries%/src/lib/mo/sv_SE/libdcpomatic2.mo"
368 File "%binaries%/src/wx/mo/sv_SE/libdcpomatic2-wx.mo"
369 File "%binaries%/src/tools/mo/sv_SE/dcpomatic2.mo"
370 File "%static_deps%/share/locale/sv/LC_MESSAGES/wxstd.mo"
371 SetOutPath "$INSTDIR\\locale\\de\\LC_MESSAGES"
372 File "%binaries%/src/lib/mo/de_DE/libdcpomatic2.mo"
373 File "%binaries%/src/wx/mo/de_DE/libdcpomatic2-wx.mo"
374 File "%binaries%/src/tools/mo/de_DE/dcpomatic2.mo"
375 File "%static_deps%/share/locale/de/LC_MESSAGES/wxstd.mo"
376 SetOutPath "$INSTDIR\\locale\\nl\\LC_MESSAGES"
377 File "%binaries%/src/lib/mo/nl_NL/libdcpomatic2.mo"
378 File "%binaries%/src/wx/mo/nl_NL/libdcpomatic2-wx.mo"
379 File "%binaries%/src/tools/mo/nl_NL/dcpomatic2.mo"
380 File "%static_deps%/share/locale/nl/LC_MESSAGES/wxstd.mo"
381 SetOutPath "$INSTDIR\\locale\\ru\\LC_MESSAGES"
382 File "%binaries%/src/lib/mo/ru_RU/libdcpomatic2.mo"
383 File "%binaries%/src/wx/mo/ru_RU/libdcpomatic2-wx.mo"
384 File "%binaries%/src/tools/mo/ru_RU/dcpomatic2.mo"
385 File "%static_deps%/share/locale/ru/LC_MESSAGES/wxstd.mo"
386 SetOutPath "$INSTDIR\\locale\\pl\\LC_MESSAGES"
387 File "%binaries%/src/lib/mo/pl_PL/libdcpomatic2.mo"
388 File "%binaries%/src/wx/mo/pl_PL/libdcpomatic2-wx.mo"
389 File "%binaries%/src/tools/mo/pl_PL/dcpomatic2.mo"
390 File "%static_deps%/share/locale/pl/LC_MESSAGES/wxstd.mo"
391 SetOutPath "$INSTDIR\\locale\\da\\LC_MESSAGES"
392 File "%binaries%/src/lib/mo/da_DK/libdcpomatic2.mo"
393 File "%binaries%/src/wx/mo/da_DK/libdcpomatic2-wx.mo"
394 File "%binaries%/src/tools/mo/da_DK/dcpomatic2.mo"
395 File "%static_deps%/share/locale/da/LC_MESSAGES/wxstd.mo"
396 SetOutPath "$INSTDIR\\locale\\pt_PT\\LC_MESSAGES"
397 File "%binaries%/src/lib/mo/pt_PT/libdcpomatic2.mo"
398 File "%binaries%/src/wx/mo/pt_PT/libdcpomatic2-wx.mo"
399 File "%binaries%/src/tools/mo/pt_PT/dcpomatic2.mo"
400 SetOutPath "$INSTDIR\\locale\\pt_BR\\LC_MESSAGES"
401 File "%binaries%/src/lib/mo/pt_BR/libdcpomatic2.mo"
402 File "%binaries%/src/wx/mo/pt_BR/libdcpomatic2-wx.mo"
403 File "%binaries%/src/tools/mo/pt_BR/dcpomatic2.mo"
404 SetOutPath "$INSTDIR\\locale\\sk\\LC_MESSAGES"
405 File "%binaries%/src/lib/mo/sk_SK/libdcpomatic2.mo"
406 File "%binaries%/src/wx/mo/sk_SK/libdcpomatic2-wx.mo"
407 File "%binaries%/src/tools/mo/sk_SK/dcpomatic2.mo"
408 SetOutPath "$INSTDIR\\locale\\cs\\LC_MESSAGES"
409 File "%binaries%/src/lib/mo/cs_CZ/libdcpomatic2.mo"
410 File "%binaries%/src/wx/mo/cs_CZ/libdcpomatic2-wx.mo"
411 File "%binaries%/src/tools/mo/cs_CZ/dcpomatic2.mo"
412 File "%static_deps%/share/locale/cs/LC_MESSAGES/wxstd.mo"
413 SetOutPath "$INSTDIR\\locale\\uk\\LC_MESSAGES"
414 File "%binaries%/src/lib/mo/uk_UA/libdcpomatic2.mo"
415 File "%binaries%/src/wx/mo/uk_UA/libdcpomatic2-wx.mo"
416 File "%binaries%/src/tools/mo/uk_UA/dcpomatic2.mo"
417 SetOutPath "$INSTDIR\\locale\\zh_cn\\LC_MESSAGES"
418 File "%binaries%/src/lib/mo/zh_CN/libdcpomatic2.mo"
419 File "%binaries%/src/wx/mo/zh_CN/libdcpomatic2-wx.mo"
420 File "%binaries%/src/tools/mo/zh_CN/dcpomatic2.mo"
421 SetOutPath "$INSTDIR\\locale\\tr_tr\\LC_MESSAGES"
422 File "%binaries%/src/lib/mo/tr_TR/libdcpomatic2.mo"
423 File "%binaries%/src/wx/mo/tr_TR/libdcpomatic2-wx.mo"
424 File "%binaries%/src/tools/mo/tr_TR/dcpomatic2.mo"
425 SetOutPath "$INSTDIR\\locale\\sl_si\\LC_MESSAGES"
426 File "%binaries%/src/lib/mo/sl_SI/libdcpomatic2.mo"
427 File "%binaries%/src/wx/mo/sl_SI/libdcpomatic2-wx.mo"
428 File "%binaries%/src/tools/mo/sl_SI/dcpomatic2.mo"
429 SetOutPath "$INSTDIR\\locale\\hu_hu\\LC_MESSAGES"
430 File "%binaries%/src/lib/mo/hu_HU/libdcpomatic2.mo"
431 File "%binaries%/src/wx/mo/hu_HU/libdcpomatic2-wx.mo"
432 File "%binaries%/src/tools/mo/hu_HU/dcpomatic2.mo"
433
434 SetOutPath "$INSTDIR"
435 File "%resources%/../../fonts/LiberationSans-Regular.ttf"
436 File "%resources%/../../fonts/LiberationSans-Italic.ttf"
437 File "%resources%/../../fonts/LiberationSans-Bold.ttf"
438 File /oname=fonts.conf "%resources%/../../fonts/fonts.conf.windows"
439 File "%graphics%/splash.png"
440 File "%graphics%/zoom_white.png"
441 File "%graphics%/zoom_black.png"
442 File "%graphics%/zoom_all_white.png"
443 File "%graphics%/zoom_all_black.png"
444 File "%graphics%/select_white.png"
445 File "%graphics%/select_black.png"
446 File "%graphics%/snap_white.png"
447 File "%graphics%/snap_black.png"
448 File "%graphics%/sequence_white.png"
449 File "%graphics%/sequence_black.png"
450 File "%graphics%/me.jpg"
451 File "%graphics%/tick.png"
452 File "%graphics%/no_tick.png"
453 File "%graphics%/link.png"
454 SetOutPath "$INSTDIR\\xsd"
455 File "%cdist_deps%/share/libdcp/xsd/DCDMSubtitle-2010.xsd"
456 File "%cdist_deps%/share/libdcp/xsd/DCSubtitle.v1.mattsson.xsd"
457 File "%cdist_deps%/share/libdcp/xsd/Dolby-2012-AD.xsd"
458 File "%cdist_deps%/share/libdcp/xsd/isdcf-mca.xsd"
459 File "%cdist_deps%/share/libdcp/xsd/Main-Stereo-Picture-CPL.xsd"
460 File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-AM-20040311.xsd"
461 File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-CC-CPL-20070926.xsd"
462 File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-CPL-20040511.xsd"
463 File "%cdist_deps%/share/libdcp/xsd/PROTO-ASDCP-PKL-20040311.xsd"
464 File "%cdist_deps%/share/libdcp/xsd/SMPTE-335-2012.xsd"
465 File "%cdist_deps%/share/libdcp/xsd/SMPTE-395-2014-13-1-aaf.xsd"
466 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-10-2008.xsd"
467 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-12-2008.xsd"
468 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-16.xsd"
469 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-7-2006-CPL.xsd"
470 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-8-2006-PKL.xsd"
471 File "%cdist_deps%/share/libdcp/xsd/SMPTE-429-9-2007-AM.xsd"
472 File "%cdist_deps%/share/libdcp/xsd/xlink.xsd"
473 File "%cdist_deps%/share/libdcp/xsd/xmldsig-core-schema.xsd"
474 File "%cdist_deps%/share/libdcp/xsd/XMLSchema.dtd"
475 File "%cdist_deps%/share/libdcp/xsd/XMLSchema.xsd"
476 File "%cdist_deps%/share/libdcp/xsd/xml.xsd"
477 SetOutPath "$INSTDIR\\tags"
478 File "%cdist_deps%/share/libdcp/tags/extlang"
479 File "%cdist_deps%/share/libdcp/tags/language"
480 File "%cdist_deps%/share/libdcp/tags/region"
481 File "%cdist_deps%/share/libdcp/tags/script"
482 File "%cdist_deps%/share/libdcp/tags/variant"
483 File "%cdist_deps%/share/libdcp/tags/dcnc"
484 SetOutPath "$INSTDIR"
485 File "%cdist_deps%/share/libdcp/ratings"
486
487 SectionEnd
488     """, file=f)
489
490     if debug:
491         print('Section "DCP-o-matic 2 debug" SEC_MASTER', file=f)
492     else:
493         print('Section "DCP-o-matic 2" SEC_MASTER', file=f)
494
495     print('SetOutPath "$INSTDIR\\bin"', file=f)
496
497     if debug:
498         print('CreateDirectory "$SMPROGRAMS\\DCP-o-matic 2 debug"', file=f)
499     else:
500         print('CreateDirectory "$SMPROGRAMS\\DCP-o-matic 2"', file=f)
501
502     print('File "%binaries%/src/tools/dcpomatic2.exe"', file=f)
503     for s, l in tools:
504         print('File "%%binaries%%/src/tools/dcpomatic2_%s.exe"' % s, file=f)
505
506     if disk:
507         print("""
508 File "%binaries%/src/tools/dcpomatic2_disk_writer.exe"
509 File "%resources%/dcpomatic2_disk_writer.exe.manifest"
510     """, file=f)
511
512     if debug:
513         print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2 debug\\DCP-o-matic 2 debug.lnk" "$INSTDIR\\bin\\dcpomatic2_debug.bat"', file=f)
514         for s, l in tools:
515             print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2 debug\\DCP-o-matic 2 %s debug.lnk" "$INSTDIR\\bin\\dcpomatic2_%s_debug.bat" ""' % (l, s), file=f)
516         print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2 debug\\Uninstall DCP-o-matic 2 debug.lnk" "$INSTDIR\\Uninstall.exe"', file=f)
517         print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic 2 debug" "DisplayName" "DCP-o-matic 2 debug (remove only)"', file=f)
518         print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic 2 debug" "UninstallString" "$INSTDIR\\Uninstall.exe"', file=f)
519     else:
520         print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2.lnk" "$INSTDIR\\bin\\dcpomatic2.exe"', file=f)
521         for s, l in tools:
522             print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2 %s.lnk" "$INSTDIR\\bin\\dcpomatic2_%s.exe"' % (l, s), file=f)
523         print('CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\Uninstall DCP-o-matic 2.lnk" "$INSTDIR\\Uninstall.exe"', file=f)
524         print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic2" "DisplayName" "DCP-o-matic 2 (remove only)"', file=f)
525         print('WriteRegStr HKLM "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic2" "UninstallString" "$INSTDIR\\Uninstall.exe"', file=f)
526
527     print("SectionEnd", file=f)
528
529     if debug:
530         print('Section "DCP-o-matic 2 debug desktop shortcuts" SEC_MASTER_DESKTOP', file=f)
531         print('CreateShortCut "$DESKTOP\\DCP-o-matic 2 debug.lnk" "$INSTDIR\\bin\\dcpomatic2_debug.bat" ""', file=f)
532         for s, l in tools:
533             print('CreateShortCut "$DESKTOP\\DCP-o-matic 2 %s debug.lnk" "$INSTDIR\\bin\\dcpomatic2_%s_debug.bat" ""' % (l, s), file=f)
534     else:
535         print('Section "DCP-o-matic 2 desktop shortcuts" SEC_MASTER_DESKTOP', file=f)
536         print('CreateShortCut "$DESKTOP\\DCP-o-matic 2.lnk" "$INSTDIR\\bin\\dcpomatic2.exe" ""', file=f)
537         for s, l in tools:
538             print('CreateShortCut "$DESKTOP\\DCP-o-matic 2 %s.lnk" "$INSTDIR\\bin\\dcpomatic2_%s.exe"' % (l, s), file=f)
539
540     print("SectionEnd", file=f)
541
542     print("""
543 Section "Encode server" SEC_SERVER
544 SetOutPath "$INSTDIR\\bin"
545 CreateDirectory "$SMPROGRAMS\\DCP-o-matic 2"
546 File "%binaries%/src/tools/dcpomatic2_server_cli.exe"
547 File "%binaries%/src/tools/dcpomatic2_server.exe"
548 CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\DCP-o-matic 2 Encode Server.lnk" "$INSTDIR\\bin\\dcpomatic2_server.exe" "" "$INSTDIR\\bin\\dcpomatic2_server.exe" 0
549 CreateShortCut "$SMPROGRAMS\\DCP-o-matic 2\\Uninstall DCP-o-matic 2.lnk" "$INSTDIR\\Uninstall.exe" "" "$INSTDIR\\Uninstall.exe" 0
550 SectionEnd
551 Section "Encode server desktop shortcuts" SEC_SERVER_DESKTOP
552 CreateShortCut "$DESKTOP\\DCP-o-matic 2 Encode Server.lnk" "$INSTDIR\\bin\\dcpomatic2_server.exe" ""
553 SectionEnd
554     """, file=f)
555
556     if debug:
557         print('LangString DESC_SEC_MASTER ${LANG_ENGLISH} "DCP-o-matic 2 debug"', file=f)
558         print('LangString DESC_SEC_MASTER_DESKTOP ${LANG_ENGLISH} "DCP-o-matic 2 debug desktop shortcuts"', file=f)
559     else:
560         print('LangString DESC_SEC_MASTER ${LANG_ENGLISH} "DCP-o-matic 2"', file=f)
561         print('LangString DESC_SEC_MASTER_DESKTOP ${LANG_ENGLISH} "DCP-o-matic 2 desktop shortcuts"', file=f)
562         print('LangString DESC_SEC_SERVER ${LANG_ENGLISH} "DCP-o-matic 2 Encode Server"', file=f)
563         print('LangString DESC_SEC_SERVER_DESKTOP ${LANG_ENGLISH} "DCP-o-matic 2 Encode Server desktop shortcuts"', file=f)
564
565     print("""
566 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
567 !insertmacro MUI_DESCRIPTION_TEXT ${SEC_MASTER} $(DESC_SEC_MASTER)
568 !insertmacro MUI_DESCRIPTION_TEXT ${SEC_MASTER_DESKTOP} $(DESC_SEC_MASTER_DESKTOP)
569 !insertmacro MUI_DESCRIPTION_TEXT ${SEC_SERVER} $(DESC_SEC_SERVER)
570 !insertmacro MUI_DESCRIPTION_TEXT ${SEC_SERVER_DESKTOP} $(DESC_SEC_SERVER_DESKTOP)
571 !insertmacro MUI_FUNCTION_DESCRIPTION_END
572
573 !insertmacro MUI_PAGE_INSTFILES
574 !insertmacro MUI_PAGE_FINISH
575
576 !insertmacro MUI_UNPAGE_WELCOME
577 !insertmacro MUI_UNPAGE_CONFIRM
578 !insertmacro MUI_UNPAGE_INSTFILES
579 !insertmacro MUI_UNPAGE_FINISH
580 !insertmacro MUI_LANGUAGE "English"
581     """, file=f)
582
583     if debug:
584         print("""
585 Section "Uninstall"
586 RMDir /r "$INSTDIR\\*.*"
587 RMDir "$INSTDIR"
588 Delete "$DESKTOP\\DCP-o-matic 2 debug.lnk"
589         """, file=f)
590
591         for s, l in tools:
592             print('Delete "$DESKTOP\\DCP-o-matic 2 %s debug.lnk"' % l, file=f)
593
594         print("""
595 Delete "$SMPROGRAMS\\DCP-o-matic 2 debug\\*.*"
596 RmDir  "$SMPROGRAMS\\DCP-o-matic 2 debug"
597 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\\DCP-o-matic 2 debug"
598 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic 2 debug"
599  SectionEnd
600         """, file=f)
601     else:
602         print("""
603 Section "Uninstall"
604 RMDir /r "$INSTDIR\\*.*"
605 RMDir "$INSTDIR"
606 Delete "$DESKTOP\\DCP-o-matic 2.lnk"
607         """, file=f)
608
609         for s, l in tools:
610             print('Delete "$DESKTOP\\DCP-o-matic 2 %s.lnk"' % l)
611
612         print("""
613 Delete "$SMPROGRAMS\\DCP-o-matic 2\\*.*"
614 RmDir  "$SMPROGRAMS\\DCP-o-matic 2"
615 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\\DCP-o-matic 2"
616 DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\DCP-o-matic 2"
617  SectionEnd
618     """, file=f)
619
620
621 def build(bld):
622     write_installer(32, bld.env.VERSION, bld.env.DEBUG, bld.env.ENABLE_DISK)
623     write_installer(64, bld.env.VERSION, bld.env.DEBUG, bld.env.ENABLE_DISK)