updated installer script
[xboard.git] / winboard / install / installer / wb440.nsi
1 ; WinBoard-4.4.0 MUI\r
2 ;\r
3 ;\r
4 \r
5 !define FILES "..\..\"\r
6 !define ROOT "${FILES}Chess\"\r
7 !define FNTDIR "${FILES}Chess\RePackage\"\r
8 \r
9 ; grab the FontName plugin from NSIS for these\r
10 !include FontRegAdv.nsh\r
11 !include FontName.nsh\r
12 \r
13 ;--------------------------------\r
14 ;Include Modern UI\r
15 !include "MUI.nsh"\r
16 \r
17 ;--------------------------------\r
18 \r
19 !define InstName "WinBoard"\r
20 !define InstVersion "4.4.0beta2"\r
21 !define InstBaseDir "WinBoard-4.4.0"\r
22 \r
23 ;--------------------------------\r
24 ; General\r
25 ;\r
26 \r
27 Name "${InstName} ${InstVersion}"\r
28 Caption "WinBoard - Chessboard For Windows"\r
29 OutFile "WinBoard-4.4.0beta2.exe"\r
30 InstallDir $PROGRAMFILES\${InstBaseDir}\r
31 \r
32 SetCompressor lzma\r
33 SetDateSave on\r
34 SetDatablockOptimize on\r
35 CRCCheck on\r
36 SilentInstall normal\r
37 ;BGGradient 000000 4682b4 FFFFFF\r
38 ;XPStyle on\r
39 \r
40 ;--------------------------------\r
41 ;Variables\r
42 \r
43   Var INI_VALUE\r
44   Var START_MENU_FOLDER\r
45   Var MUI_TEMP\r
46 \r
47 ;--------------------------------\r
48 \r
49 \r
50 ;!define MUI_ICON "knight.ico"\r
51 ;!define MUI_UNICON "wc_uninst.ico"\r
52 !define MUI_WELCOMEFINISHPAGE_BITMAP "welcome_chess.bmp"\r
53 \r
54 ;--------------------------------\r
55 ;Interface Settings\r
56 \r
57     !define MUI_ABORTWARNING\r
58     ;!define MUI_COMPONENTSPAGE_NODESC\r
59     !define MUI_COMPONENTSPAGE_SMALLDESC\r
60     !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${InstName} ${InstVersion}.\n\n\n\n\nClick Next to continue."\r
61     !define MUI_LICENSEPAGE_TEXT_BOTTOM "$\nPress Continue to proceed with the installation."\r
62     !define MUI_LICENSEPAGE_BUTTON "Continue"\r
63 \r
64 ;--------------------------------\r
65 \r
66 ;--------------------------------\r
67 ; Pages\r
68 \r
69     ; Install Section\r
70     ;--------------------------------------------------------------------\r
71     !insertmacro MUI_PAGE_WELCOME\r
72     !insertmacro MUI_PAGE_LICENSE "${ROOT}COPYRIGHT.txt"\r
73     !insertmacro MUI_PAGE_COMPONENTS\r
74     Page custom FileAssoc\r
75     !insertmacro MUI_PAGE_DIRECTORY\r
76 \r
77     ;Start Menu Folder Page Configuration\r
78         !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"\r
79         !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\WinBoard"\r
80         !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"\r
81     !insertmacro MUI_PAGE_STARTMENU Application $START_MENU_FOLDER\r
82 \r
83     !insertmacro MUI_PAGE_INSTFILES\r
84     !insertmacro MUI_PAGE_FINISH\r
85     ;--------------------------------------------------------------------\r
86 \r
87     ; Uninstall Section\r
88     ;\r
89     ;!define MUI_WELCOMEPAGE_TEXT "WARNING! THIS UNINSTALLER WILL COMPLETELY DELETE THE INSTALLATION DIRECTORY\n\n$INSTDIR !!!\n\nIF THERE ARE ANY FILES YOU WISH TO SAVE, MOVE THEM FROM THE INSTALLATION DIRECTORY FIRST!\n\n\n\nPress Next to Continue."\r
90     !define MUI_WELCOMEPAGE_TEXT "This will uninstall WinBoard from directory:\n\n$INSTDIR\n\n\n\nPress Next to Continue."\r
91     !insertmacro MUI_UNPAGE_WELCOME\r
92     !insertmacro MUI_UNPAGE_CONFIRM\r
93     !insertmacro MUI_UNPAGE_INSTFILES\r
94     !insertmacro MUI_UNPAGE_FINISH\r
95 \r
96 ;--------------------------------\r
97 ;Languages\r
98 \r
99   !insertmacro MUI_LANGUAGE "English"\r
100 \r
101 ;--------------------------------\r
102 \r
103 ;--------------------------------\r
104 ;Reserve Files\r
105 \r
106   ;These files should be inserted before other files in the data block\r
107   ;Keep these lines before any File command\r
108   ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)\r
109 \r
110   ReserveFile "FA.ini"\r
111   !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS\r
112 \r
113 ;--------------------------------\r
114 \r
115 Section "WinBoard Core Components" Core\r
116 \r
117 SectionIn 1 RO\r
118 \r
119     SetOutPath "$INSTDIR"\r
120     File "${ROOT}README.html"\r
121 \r
122     SetOutPath "$INSTDIR\WinBoard\doc"\r
123     File "${ROOT}WinBoard\doc\fonts.html"\r
124     File "${ROOT}WinBoard\doc\manual.html"\r
125     File "${ROOT}WinBoard\doc\UCIconfig.html"\r
126     File "${ROOT}WinBoard\doc\shortcuts.html"\r
127     File "${ROOT}WinBoard\doc\texture.html"\r
128     File "${ROOT}WinBoard\doc\engine-intf.html"\r
129     File "${ROOT}WinBoard\doc\FAQ.html"\r
130     File "${ROOT}WinBoard\doc\mini.gif"\r
131     File "${ROOT}WinBoard\doc\PG2fruit.png"\r
132     File "${ROOT}WinBoard\doc\zippy.README"\r
133 \r
134     ; logo bitmaps for ICS and users\r
135     SetOutPath "$INSTDIR\WinBoard\logos"\r
136     File "${ROOT}WinBoard\logos\chessclub.com.bmp"\r
137     File "${ROOT}WinBoard\logos\freechess.org.bmp"\r
138     File "${ROOT}WinBoard\logos\administrator.bmp"\r
139     File "${ROOT}WinBoard\logos\user.bmp"\r
140     File "${ROOT}WinBoard\logos\guest.bmp"\r
141     File "${ROOT}WinBoard\logos\README.txt"\r
142 \r
143     ; Polyglot ini files; fruit.ini always supplied (even if Fruit not installed) as example\r
144     SetOutPath "$INSTDIR\WinBoard\PG"\r
145     File "${ROOT}WinBoard\PG\fruit.ini"\r
146 \r
147     ; bitmaps for board squares; xqboard is an entire (even-colored) board grid\r
148     SetOutPath "$INSTDIR\Winboard\textures"\r
149     File "${ROOT}WinBoard\textures\marble_d.bmp"\r
150     File "${ROOT}WinBoard\textures\marble_l.bmp"\r
151     File "${ROOT}WinBoard\textures\wood_d.bmp"\r
152     File "${ROOT}WinBoard\textures\wood_l.bmp"\r
153     File "${ROOT}WinBoard\textures\xqboard.bmp"\r
154 \r
155     StrCpy $FONT_DIR $FONTS\r
156     !insertmacro InstallTTF '${FNTDIR}MARKFONT.TTF'\r
157     SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
158 \r
159     ; the small ini files contain the command-line options used by the shortcuts\r
160     SetOutPath "$INSTDIR\Winboard"\r
161     File "${ROOT}Winboard\winboard.ini"\r
162     File "${ROOT}Winboard\wood.ini"\r
163     File "${ROOT}Winboard\marble.ini"\r
164     File "${ROOT}WinBoard\ChessMark.ini"\r
165     File "${ROOT}Winboard\fairy.ini"\r
166     File "${ROOT}Winboard\FICS.ini"\r
167     File "${ROOT}Winboard\fruit.ini"\r
168     File "${ROOT}Winboard\Gothic.ini"\r
169     File "${ROOT}Winboard\ICC.ini"\r
170     File "${ROOT}Winboard\ICSbot.ini"\r
171     File "${ROOT}Winboard\viewer.ini"\r
172     File "${ROOT}Winboard\winboard.exe"\r
173     File "${ROOT}Winboard\polyglot.exe"\r
174     File "${ROOT}Winboard\timeseal.exe"\r
175     File "${ROOT}Winboard\timestamp.exe"\r
176     File "${ROOT}Winboard\winboard.chm"\r
177     File "${ROOT}Winboard\winboard.hlp"\r
178     File "${ROOT}Winboard\default_book.bin"\r
179 \r
180     ;Create uninstaller\r
181     WriteUninstaller "$INSTDIR\UnInstall.exe"\r
182 \r
183       ; create some shortcuts in the WinBoard folder\r
184         CreateShortCut "$INSTDIR\WinBoard\PGN Viewer.lnk" "$INSTDIR\WinBoard\winboard.exe" "@viewer" "$INSTDIR\WinBoard\winboard.exe" 0\r
185         CreateShortCut "$INSTDIR\WinBoard\ICC.lnk" "$INSTDIR\WinBoard\winboard.exe" "@ICC" "$INSTDIR\WinBoard\winboard.exe" 0\r
186         CreateShortCut "$INSTDIR\WinBoard\FICS.lnk" "$INSTDIR\WinBoard\winboard.exe" "@FICS" "$INSTDIR\WinBoard\winboard.exe" 0\r
187         CreateShortCut "$INSTDIR\WinBoard\Fairy-Max ICS bot.lnk" "$INSTDIR\WinBoard\winboard.exe" "@ICSbot" "$INSTDIR\WinBoard\winboard.exe" 0\r
188         CreateShortCut "$INSTDIR\WinBoard\my WinBoard.lnk" "$INSTDIR\WinBoard\winboard.exe" "@marble @ChessMark" "$INSTDIR\WinBoard\winboard.exe" 0\r
189         CreateShortCut "$INSTDIR\WinBoard\Fruit.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fruit" "$INSTDIR\WinBoard\winboard.exe" 0\r
190         CreateShortCut "$INSTDIR\WinBoard\Fairy-Max.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy" "$INSTDIR\WinBoard\winboard.exe" 0\r
191 \r
192         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
193         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER"\r
194         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Game Viewer.lnk" "$INSTDIR\WinBoard\winboard.exe" "@viewer" "$INSTDIR\WinBoard\winboard.exe" 1\r
195         ;CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Help.lnk" "$INSTDIR\WinBoard\winboard.hlp"\r
196         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Frequently Asked Questions.lnk" "$INSTDIR\WinBoard\doc\FAQ.html"\r
197         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard README.lnk" "$INSTDIR\README.html"\r
198         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard UnInstall.lnk" "$INSTDIR\UnInstall.exe"\r
199         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Files.lnk" "$INSTDIR\WinBoard"\r
200         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - chessclub.com.lnk" "$INSTDIR\WinBoard\winboard.exe"  "@ICC" "$INSTDIR\WinBoard\winboard.exe" 0\r
201         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Server - freechess.org.lnk" "$INSTDIR\WinBoard\winboard.exe"  "@FICS" "$INSTDIR\WinBoard\winboard.exe" 0\r
202         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Fancy-Look WinBoard.lnk" "$INSTDIR\WinBoard\winboard.exe" "@marble @ChessMark" "$INSTDIR\WinBoard\winboard.exe" 2\r
203         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard Startup Dialog.lnk" "$INSTDIR\WinBoard\winboard.exe" "" "$INSTDIR\WinBoard\winboard.exe" 2\r
204         !insertmacro MUI_STARTMENU_WRITE_END\r
205 \r
206 SectionEnd\r
207 \r
208 SectionGroup /e "Auxilliary Components and Engines" Profiles\r
209 \r
210     Section "Fairy-Max Demo Engine" fmax\r
211         SectionIn 1 RO\r
212         ; Fairy-Max is so small it can always be included, to have at least one working engine\r
213         SetOutPath "$INSTDIR\Fairy-Max"\r
214         File "${ROOT}Fairy-Max\fmax.exe"\r
215         File "${ROOT}Fairy-Max\MaxQi.exe"\r
216         File "${ROOT}Fairy-Max\fmax.ini"\r
217         File "${ROOT}Fairy-Max\qmax.ini"\r
218         File "${ROOT}Fairy-Max\logo.bmp"\r
219 \r
220         ; also create a menu item to play Xiangqi with MaxQi. It is put with the Chess Engines becase it uses western-style board\r
221           SetOutPath $INSTDIR\WinBoard\r
222         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
223         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
224         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Fairy-Max.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy" "$INSTDIR\Fairy-Max\fmax.exe" 0\r
225         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\MaxQi (XQ).lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp MaxQi -scp MaxQi -variant xiangqi" "$INSTDIR\Fairy-Max\MaxQi.exe" 0\r
226         !insertmacro MUI_STARTMENU_WRITE_END\r
227     SectionEnd\r
228 \r
229     Section "Fruit 2.1" Fruit\r
230         ; we include no separate book for Fruit, as it can use the GUI book. It is mostly included to provide a UCI example\r
231         SetOutPath "$INSTDIR\Fruit"\r
232         File "${ROOT}Fruit\copying.txt"\r
233         File "${ROOT}Fruit\fruit_21.exe"\r
234         File "${ROOT}Fruit\logo.bmp"\r
235         File "${ROOT}Fruit\readme.txt"\r
236         File "${ROOT}Fruit\technical_10.txt"\r
237 \r
238           SetOutPath $INSTDIR\WinBoard\r
239         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
240         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
241         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Fruit 2.1.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fruit" "$INSTDIR\WinBoard\winboard.exe" 2\r
242         !insertmacro MUI_STARTMENU_WRITE_END\r
243     SectionEnd\r
244 \r
245   Section "Tournament Manager" Tournaments\r
246     SetOutPath "$INSTDIR\PSWBTM\doc"\r
247     File "${ROOT}PSWBTM\doc\configure.html"\r
248     File "${ROOT}PSWBTM\doc\install.html"\r
249     File "${ROOT}PSWBTM\doc\running.html"\r
250     File "${ROOT}PSWBTM\doc\tourney.html"\r
251     File "${ROOT}PSWBTM\doc\menu.png"\r
252     File "${ROOT}PSWBTM\doc\conf.png"\r
253     File "${ROOT}PSWBTM\doc\eman.png"\r
254     File "${ROOT}PSWBTM\doc\pswbtm.png"\r
255     File "${ROOT}PSWBTM\doc\tour.png"\r
256 \r
257     CreateDirectory "$INSTDIR\PSWBTM\games"\r
258 \r
259     SetOutPath "$INSTDIR\PSWBTM\start positions"\r
260     File "${ROOT}PSWBTM\start positions\nunn.pgn"\r
261     File "${ROOT}PSWBTM\start positions\silver.epd"\r
262 \r
263     SetOutPath "$INSTDIR\PSWBTM"\r
264     File "${ROOT}PSWBTM\config.pswbtm"\r
265     File "${ROOT}PSWBTM\engines.pswbtm"\r
266     File "${ROOT}PSWBTM\ntls.pswbtm"\r
267     File "${ROOT}PSWBTM\PSWBTM.exe"\r
268     File "${ROOT}PSWBTM\README.txt"\r
269   SectionEnd\r
270 \r
271     SubSection "Xiangqi" Xiangqi\r
272 \r
273       Section "Graphics (required!)" XQgraphics\r
274         ; the large bitmp of the wooden XQ board is optional, as is the XQ opening book\r
275         SetOutPath "$INSTDIR\WinBoard"\r
276         File "${ROOT}Winboard\xq.ini"\r
277         File "${ROOT}Winboard\xq_book.bin"\r
278         File "${ROOT}Winboard\UCCI2WB.exe"\r
279         File "${ROOT}Winboard\QH2WB.exe"\r
280 \r
281         SetOutPath "$INSTDIR\WinBoard\textures"\r
282         File "${ROOT}WinBoard\textures\xqwood.bmp"\r
283         \r
284         StrCpy $FONT_DIR $FONTS\r
285         !insertmacro InstallTTF '${FNTDIR}XIANGQI.TTF'\r
286         SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
287 \r
288         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
289         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
290         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard\Xiangqi.lnk" "$INSTDIR\WinBoard\winboard.exe" "@xq" "$INSTDIR\WinBoard\UCCI2WB.exe" 0\r
291         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\MaxQi.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy @xq -fcp MaxQi -scp MaxQi" "$INSTDIR\Fairy-Max\MaxQi.exe" 0\r
292         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\WinBoard XQ Startup (oriental).lnk" "$INSTDIR\WinBoard\winboard.exe" "@xq" "$INSTDIR\WinBoard\winboard.exe" 2\r
293         !insertmacro MUI_STARTMENU_WRITE_END\r
294       SectionEnd\r
295 \r
296       Section "HaQiKi D XQ-Engine" HaQi\r
297         SetOutPath "$INSTDIR\HaQi"\r
298         File "${ROOT}HaQi\haqikid.exe"\r
299         File "${ROOT}HaQi\logo.bmp"\r
300         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
301 \r
302         SetOutPath $INSTDIR\WinBoard\r
303         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
304         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
305         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\HaQiKi D.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy @xq -fcp haqikid -fd ..\HaQi -scp haqikid -sd ..\HaQi" "$INSTDIR\HaQi\haqikid.exe" 0\r
306         !insertmacro MUI_STARTMENU_WRITE_END\r
307       SectionEnd\r
308 \r
309       Section "Elephant Eye XQ-Engine" EleEye\r
310         SetOutPath "$INSTDIR\EleEye"\r
311         File "${ROOT}EleEye\ATOM.DLL"\r
312         File "${ROOT}EleEye\BOOK.DAT"\r
313         File "${ROOT}EleEye\CCHESS.DLL"\r
314         File "${ROOT}EleEye\ELEEYE.EXE"\r
315         File "${ROOT}EleEye\EVALUATE.DLL"\r
316         File "${ROOT}EleEye\logo.bmp"\r
317 \r
318         SetOutPath "$INSTDIR\WinBoard\QH"\r
319         File "${ROOT}WinBoard\QH\eleeye.ini"\r
320 \r
321         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines"\r
322         SetOutPath $INSTDIR\WinBoard\r
323         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
324         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Xiangqi Engines\Elephant Eye.lnk" "$INSTDIR\WinBoard\winboard.exe" '@xq -cp -fcp "UCCI2WB QH\eleeye.ini" -firstLogo ..\EleEye\logo.bmp -scp "UCCI2WB QH\eleeye.ini -secondLogo ..\EleEye\logo.bmp"' "$INSTDIR\EleEye\ELEEYE.exe" 0\r
325         !insertmacro MUI_STARTMENU_WRITE_END\r
326       SectionEnd\r
327 \r
328     SubSectionEnd\r
329 \r
330 \r
331     SubSection "Chess Variants" Variants\r
332 \r
333       Section "Pulsar Variant Engine (Mike Adams)" Pulsar\r
334         SetOutPath "$INSTDIR\Pulsar"\r
335         File "${ROOT}Pulsar\pulsar2009-9b.exe"\r
336         File "${ROOT}Pulsar\bigbook.txt"\r
337         File "${ROOT}Pulsar\openbk.txt"\r
338         File "${ROOT}Pulsar\atomicBookBlack.txt"\r
339         File "${ROOT}Pulsar\atomicBookWhite.txt"\r
340         File "${ROOT}Pulsar\kingsBookBlack.txt"\r
341         File "${ROOT}Pulsar\kingsBookWhite.txt"\r
342         File "${ROOT}Pulsar\losersBlack.txt"\r
343         File "${ROOT}Pulsar\losersWhite.txt"\r
344         File "${ROOT}Pulsar\pulsarCrazyBlack.txt"\r
345         File "${ROOT}Pulsar\pulsarCrazyWhite.txt"\r
346         File "${ROOT}Pulsar\pulsarShatranjBlack.txt"\r
347         File "${ROOT}Pulsar\pulsarShatranjWhite.txt"\r
348         File "${ROOT}Pulsar\suicideBookBlack.txt"\r
349         File "${ROOT}Pulsar\suicideBookWhite.txt"\r
350         File "${ROOT}Pulsar\threeBookBlack.txt"\r
351         File "${ROOT}Pulsar\threeBookWhite.txt"\r
352         File "${ROOT}Pulsar\logo.bmp"\r
353 \r
354         SetOutPath $INSTDIR\WinBoard\r
355         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
356         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
357         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Pulsar.lnk" "$INSTDIR\WinBoard\winboard.exe" '@fairy -fcp "pulsar2009-9b 2" -fd ..\Pulsar -scp "pulsar2009-9b 2" -sd ..\Pulsar -usePolyglotBook false -variant atomic' "$INSTDIR\WinBoard\winboard.exe" 2\r
358         !insertmacro MUI_STARTMENU_WRITE_END\r
359       SectionEnd\r
360 \r
361       Section "Joker80 Variant Engine" Joker\r
362         SetOutPath "$INSTDIR\Joker"\r
363         File "${ROOT}Joker\joker80.exe"\r
364         File "${ROOT}Joker\jokerKM.exe"\r
365         File "${ROOT}Joker\logo.bmp"\r
366 \r
367         SetOutPath $INSTDIR\WinBoard\r
368         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
369         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
370         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Joker80 (Gothic).lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp Joker80.exe -fd ..\Joker -variant gothic" "$INSTDIR\Joker\Joker80.exe" 0\r
371         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\Joker Knightmate.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp JokerKM.exe -fd ..\Joker -variant knightmate" "$INSTDIR\Joker\JokerKM.exe" 0\r
372         !insertmacro MUI_STARTMENU_WRITE_END\r
373       SectionEnd\r
374 \r
375       Section "Adapter for SMIRF Engine" Smirf\r
376         SetOutPath $INSTDIR\SMIRF\r
377         File "${ROOT}SMIRF\Smirfoglot.exe"\r
378         File "${ROOT}SMIRF\logo.bmp"\r
379 \r
380         SetOutPath $INSTDIR\WinBoard\r
381         CreateDirectory "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines"\r
382         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
383         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\SMIRF.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp Smirfoglot.exe -fd ..\SMIRF" "$INSTDIR\SMIRF\Smirfoglot.exe" 0\r
384         !insertmacro MUI_STARTMENU_WRITE_END\r
385       SectionEnd\r
386 \r
387       Section "ShaMax Shatranj Engine" ShaMax\r
388         SetOutPath $INSTDIR\Fairy-Max\r
389         File ${ROOT}Fairy-Max\ShaMax.exe\r
390 \r
391         SetOutPath $INSTDIR\WinBoard\r
392         !insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
393         CreateShortCut "$SMPROGRAMS\$START_MENU_FOLDER\Chess Engines\ShaMax.lnk" "$INSTDIR\WinBoard\winboard.exe" "@fairy -fcp ShaMax.exe -variant shatranj" "$INSTDIR\Fairy-Max\ShaMax.exe" 0\r
394         !insertmacro MUI_STARTMENU_WRITE_END\r
395       SectionEnd                \r
396 \r
397     SubSectionEnd\r
398 SectionGroupEnd\r
399 \r
400 ;Section "un.Fonts"\r
401 ;    StrCpy $FONT_DIR $FONTS\r
402 ;    !insertmacro RemoveTTF 'MARKFONT.TTF'\r
403 ;    !insertmacro RemoveTTF 'XIANGI.TTF'\r
404 ;    SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=5000\r
405 ;SectionEnd\r
406 \r
407 ;--------------------------------\r
408 ;Installer Functions\r
409 Function .onInit\r
410 \r
411   ;Extract InstallOptions INI files\r
412   !insertmacro MUI_INSTALLOPTIONS_EXTRACT "FA.ini"\r
413 \r
414 FunctionEnd\r
415 \r
416 Function FileAssoc\r
417 \r
418     !insertmacro MUI_HEADER_TEXT "Windows File Associations" "Do you want to use Winboard as your viewer for the following file types?"\r
419     !insertmacro MUI_INSTALLOPTIONS_DISPLAY "FA.ini"\r
420 \r
421 \r
422     ;Read a value from an InstallOptions INI file\r
423 \r
424     !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 2" "State"\r
425 \r
426     ;Display a messagebox if check box was checked\r
427     StrCmp $INI_VALUE "1" "" CheckFEN\r
428     WriteRegStr HKCR ".pgn" "" "WinBoard.PGN"\r
429     WriteRegStr HKCR ".pgn" "Content Type" "application/x-chess-pgn"\r
430     WriteRegStr HKCR "WinBoard.PGN" "" "Chess Game"\r
431     WriteRegStr HKCR "WinBoard.PGN\DefaultIcon" "" "$INSTDIR\WinBoard\WinBoard.exe,1"\r
432     WriteRegStr HKCR "WinBoard.PGN\Shell\Open" "" "Open"\r
433     WriteRegStr HKCR "WinBoard.PGN\Shell\Open\command" "" '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lgf "%1"'\r
434 \r
435     CheckFEN:\r
436     !insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "FA.ini" "Field 3" "State"\r
437 \r
438     ;Display a messagebox if check box was checked\r
439     StrCmp $INI_VALUE "1" "" Continue\r
440     WriteRegStr HKCR ".fen" "" "WinBoard.FEN"\r
441     WriteRegStr HKCR ".fen" "Content Type" "application/x-chess-fen"\r
442     WriteRegStr HKCR "WinBoard.FEN" "" "Chess Position"\r
443     WriteRegStr HKCR "WinBoard.FEN\DefaultIcon" "" "$INSTDIR\WinBoard\WinBoard.exe,1"\r
444     WriteRegStr HKCR "WinBoard.FEN\Shell\Open" "" "Open"\r
445     WriteRegStr HKCR "WinBoard.FEN\Shell\Open\command" "" '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lpf "%1"'\r
446 \r
447     Continue:\r
448 \r
449 FunctionEnd\r
450 \r
451 ;--------------------------------\r
452 ;Descriptions\r
453 \r
454   ;Language strings\r
455 \r
456         LangString DESC_Core ${LANG_ENGLISH} "Winboard Core Components - Executable, Help Files, Protocol Adapters, Settings Files and Graphics"\r
457         LangString DESC_Profiles ${LANG_ENGLISH} "Components only of Interest to Specific User Profiles"\r
458         LangString DESC_Xiangqi ${LANG_ENGLISH} "Xiangqi (Chinese Chess) Engines and Graphics"\r
459         LangString DESC_fmax ${LANG_ENGLISH} "Small Chess engine, also plays Gothic, Cylinder, Berolina, Capablanca, Superchess, Knightmate, Great Shatranj"\r
460         LangString DESC_Fruit ${LANG_ENGLISH} "Very strong Chess engine suitable for analysis, by Fabien Letouzy"\r
461         LangString DESC_Variants ${LANG_ENGLISH} "Engines for Chess-Variant Afficionados (e.g. Crazyhouse, Chess960, Gothic Chess)"\r
462         LangString DESC_Tournaments ${LANG_ENGLISH} "PSWBTM Tournament Manager for running automated engine-engine tournaments with WinBoard"\r
463         LangString DESC_XQgraphics ${LANG_ENGLISH} "Oriental-style board and pieces for WinBoard (the XQ-engine shortcuts won't work without it!)"\r
464         LangString DESC_HaQi ${LANG_ENGLISH} "HaQiKi D 0.8, a strong Xiangqi engine by H.G. Muller"\r
465         LangString DESC_EleEye ${LANG_ENGLISH} "Elephant Eye 3.1, a very strong Xiangqi engine by Morning Yellow"\r
466         LangString DESC_Joker ${LANG_ENGLISH} "Joker80 Gothic-Chess engine and JokerKM Knightmate engine by H.G.Muller"\r
467         LangString DESC_Pulsar ${LANG_ENGLISH} "Plays Chess960, Crazyhouse, Losers, Suicide, Giveway, Atomic, 3Check, TwoKings, Shatranj and standard Chess"\r
468         LangString DESC_ShaMax ${LANG_ENGLISH} "A derivative of the Fairy-Max engine dedicated to playing Shatranj"\r
469         LangString DESC_Smirf ${LANG_ENGLISH} "Smirfoglot adapter for Reinhard Scharnagl's SMIRF 10x8 and 8x8 Chess engine"\r
470 \r
471 \r
472   ;Assign language strings to sections\r
473 \r
474   !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN\r
475         !insertmacro MUI_DESCRIPTION_TEXT ${Core} $(DESC_Core)\r
476         !insertmacro MUI_DESCRIPTION_TEXT ${Profiles} $(DESC_Profiles)\r
477         !insertmacro MUI_DESCRIPTION_TEXT ${Xiangqi} $(DESC_Xiangqi)\r
478         !insertmacro MUI_DESCRIPTION_TEXT ${fmax} $(DESC_fmax)\r
479         !insertmacro MUI_DESCRIPTION_TEXT ${Fruit} $(DESC_Fruit)\r
480         !insertmacro MUI_DESCRIPTION_TEXT ${Variants} $(DESC_Variants)\r
481         !insertmacro MUI_DESCRIPTION_TEXT ${Tournaments} $(DESC_Tournaments)\r
482         !insertmacro MUI_DESCRIPTION_TEXT ${XQgraphics} $(DESC_XQgraphics)\r
483         !insertmacro MUI_DESCRIPTION_TEXT ${HaQi} $(DESC_HaQi)\r
484         !insertmacro MUI_DESCRIPTION_TEXT ${EleEye} $(DESC_EleEye)\r
485         !insertmacro MUI_DESCRIPTION_TEXT ${Joker} $(DESC_Joker)\r
486         !insertmacro MUI_DESCRIPTION_TEXT ${Pulsar} $(DESC_Pulsar)\r
487         !insertmacro MUI_DESCRIPTION_TEXT ${ShaMax} $(DESC_ShaMax)\r
488         !insertmacro MUI_DESCRIPTION_TEXT ${Smirf} $(DESC_Smirf)\r
489   !insertmacro MUI_FUNCTION_DESCRIPTION_END\r
490 \r
491 ;--------------------------------\r
492 \r
493 ;--------------------------------\r
494 ;Uninstaller Section\r
495 \r
496 ; Function to delete install directory if non-empty on user request\r
497 Function un.ForceDirectoryDelete\r
498 \r
499          MessageBox MB_YESNO "The uninstaller was unable to delete the directory '$INSTDIR'. This is usually$\r$\ndue to user-created files such as WinBoard.ini, or other configuration files. If$\r$\nyou wish to keep your old configuration files, select No.$\r$\n$\r$\nForce deletion of install directory and all files in it?" IDNO End\r
500 \r
501          RMDir /r "$INSTDIR"\r
502 \r
503          End:\r
504 \r
505 FunctionEnd\r
506 \r
507 \r
508 Section "Uninstall"\r
509 \r
510         Delete "$INSTDIR\COPYING.txt"\r
511         Delete "$INSTDIR\COPYRIGHT.txt"\r
512         Delete "$INSTDIR\README.html"\r
513         Delete "$INSTDIR\WinBoard\PG\fruit.ini"\r
514         Delete "$INSTDIR\WinBoard\logos\chessclub.com.bmp"\r
515         Delete "$INSTDIR\WinBoard\logos\freechess.org.bmp"\r
516         Delete "$INSTDIR\WinBoard\logos\administrator.bmp"\r
517         Delete "$INSTDIR\WinBoard\logos\guest.bmp"\r
518         Delete "$INSTDIR\WinBoard\logos\user.bmp"\r
519         Delete "$INSTDIR\WinBoard\logos\README.txt"\r
520         Delete "$INSTDIR\WinBoard\textures\marble_l.bmp"\r
521         Delete "$INSTDIR\WinBoard\textures\marble_d.bmp"\r
522         Delete "$INSTDIR\WinBoard\textures\wood_l.bmp"\r
523         Delete "$INSTDIR\WinBoard\textures\wood_d.bmp"\r
524         Delete "$INSTDIR\WinBoard\textures\xqboard.bmp"\r
525         Delete "$INSTDIR\Fairy-Max\fmax.exe"\r
526         Delete "$INSTDIR\Fairy-Max\MaxQi.exe"\r
527         Delete "$INSTDIR\Fairy-Max\fmax.ini"\r
528         Delete "$INSTDIR\Fairy-Max\qmax.ini"\r
529         Delete "$INSTDIR\Fairy-Max\logo.bmp"\r
530         Delete "$INSTDIR\WinBoard\doc\engine-intf.html"\r
531         Delete "$INSTDIR\WinBoard\doc\FAQ.html"\r
532         Delete "$INSTDIR\WinBoard\doc\fonts.html"\r
533         Delete "$INSTDIR\WinBoard\doc\manual.html"\r
534         Delete "$INSTDIR\WinBoard\doc\UCIconfig.html"\r
535         Delete "$INSTDIR\WinBoard\doc\shortcuts.html"\r
536         Delete "$INSTDIR\WinBoard\doc\texture.html"\r
537         Delete "$INSTDIR\WinBoard\doc\mini.gif"\r
538         Delete "$INSTDIR\WinBoard\doc\PG2fruit.png"\r
539         Delete "$INSTDIR\WinBoard\doc\zippy.README"\r
540         ;Delete "$FONTS\ChessMark.ttf"\r
541         Delete "$INSTDIR\WinBoard\polyglot.exe"\r
542         Delete "$INSTDIR\WinBoard\UCCI2WB.exe"\r
543         Delete "$INSTDIR\WinBoard\timeseal.exe"\r
544         Delete "$INSTDIR\WinBoard\timestamp.exe"\r
545         Delete "$INSTDIR\WinBoard\winboard.exe"\r
546         Delete "$INSTDIR\WinBoard\winboard.hlp"\r
547         Delete "$INSTDIR\WinBoard\winboard.chm"\r
548         Delete "$INSTDIR\WinBoard\FICS.ini"\r
549         Delete "$INSTDIR\WinBoard\ICC.ini"\r
550         Delete "$INSTDIR\WinBoard\fairy.ini"\r
551         Delete "$INSTDIR\WinBoard\Gothic.ini"\r
552         Delete "$INSTDIR\WinBoard\viewer.ini"\r
553         Delete "$INSTDIR\WinBoard\marble.ini"\r
554         Delete "$INSTDIR\WinBoard\wood.ini"\r
555         Delete "$INSTDIR\WinBoard\ICSbot.ini"\r
556         Delete "$INSTDIR\WinBoard\fruit.ini"\r
557         Delete "$INSTDIR\WinBoard\winboard.ini"\r
558         Delete "$INSTDIR\WinBoard\ChessMark.ini"\r
559         Delete "$INSTDIR\WinBoard\default_book.bin"\r
560         Delete "$INSTDIR\WinBoard\zippy.lines"\r
561         Delete "$INSTDIR\WinBoard\textures\xqwood.bmp"\r
562         Delete "$INSTDIR\WinBoard\FICS.lnk"\r
563         Delete "$INSTDIR\WinBoard\ICC.lnk"\r
564         Delete "$INSTDIR\WinBoard\Fairy-Max.lnk"\r
565         Delete "$INSTDIR\WinBoard\PGN Viewer.lnk"\r
566         Delete "$INSTDIR\WinBoard\my WinBoard.lnk"\r
567         Delete "$INSTDIR\WinBoard\Fairy-Max ICS bot.lnk"\r
568         Delete "$INSTDIR\WinBoard\Fruit.lnk"\r
569         Delete "$INSTDIR\WinBoard\polyglot_1st.ini"\r
570         Delete "$INSTDIR\WinBoard\polyglot_2nd.ini"\r
571 \r
572         Delete "$INSTDIR\Fruit\fruit_21.exe"\r
573         Delete "$INSTDIR\Fruit\copying.txt"\r
574         Delete "$INSTDIR\Fruit\readme.txt"\r
575         Delete "$INSTDIR\Fruit\technical_10.txt"\r
576         Delete "$INSTDIR\Fruit\logo.bmp"\r
577 \r
578         Delete "$INSTDIR\HaQi\haqikid.exe"\r
579         Delete "$INSTDIR\HaQi\logo.bmp"\r
580         Delete "$INSTDIR\EleEye\ELEEYE.exe"\r
581         Delete "$INSTDIR\EleEye\ATOM.DLL"\r
582         Delete "$INSTDIR\EleEye\CCHESS.DLL"\r
583         Delete "$INSTDIR\EleEye\EVALUATE.DLL"\r
584         Delete "$INSTDIR\EleEye\BOOK.DAT"\r
585         Delete "$INSTDIR\EleEye\logo.bmp"\r
586         Delete "$INSTDIR\WinBoard\QH\eleeye.ini"\r
587         ;Delete "$FONTS\XIANGQI.ttf"\r
588         Delete "$INSTDIR\WinBoard\xq_book.bin"\r
589         Delete "$INSTDIR\WinBoard\QH2WB.exe"\r
590         Delete "$INSTDIR\WinBoard\xq.ini"\r
591 \r
592         Delete "$INSTDIR\Pulsar\Pulsar2009-9b.exe"\r
593         Delete "$INSTDIR\Pulsar\atomicBookBlack.txt"\r
594         Delete "$INSTDIR\Pulsar\atomicBookWhite.txt"\r
595         Delete "$INSTDIR\Pulsar\kingsBookBlack.txt"\r
596         Delete "$INSTDIR\Pulsar\kingsBookWhite.txt"\r
597         Delete "$INSTDIR\Pulsar\losersBlack.txt"\r
598         Delete "$INSTDIR\Pulsar\losersWhite.txt"\r
599         Delete "$INSTDIR\Pulsar\pulsarCrazyBlack.txt"\r
600         Delete "$INSTDIR\Pulsar\pulsarCrazyWhite.txt"\r
601         Delete "$INSTDIR\Pulsar\pulsarShatranjBlack.txt"\r
602         Delete "$INSTDIR\Pulsar\pulsarShatranjWhite.txt"\r
603         Delete "$INSTDIR\Pulsar\suicideBookBlack.txt"\r
604         Delete "$INSTDIR\Pulsar\suicideBookWhite.txt"\r
605         Delete "$INSTDIR\Pulsar\threeBookBlack.txt"\r
606         Delete "$INSTDIR\Pulsar\threeBookWhite.txt"\r
607         Delete "$INSTDIR\Pulsar\bigbook.txt"\r
608         Delete "$INSTDIR\Pulsar\openbk.txt"\r
609         Delete "$INSTDIR\Pulsar\logo.bmp"\r
610         Delete "$INSTDIR\Joker\joker80.exe"\r
611         Delete "$INSTDIR\Joker\jokerKM.exe"\r
612         Delete "$INSTDIR\Joker\logo.bmp"\r
613         Delete "$INSTDIR\SMIRF\Smirfoglot.exe"\r
614         Delete "$INSTDIR\SMIRF\logo.bmp"\r
615         Delete "$INSTDIR\Fairy-Max\ShaMax.exe"\r
616 \r
617         Delete "$INSTDIR\PSWBTM\PSWBTM.exe"\r
618         Delete "$INSTDIR\PSWBTM\README.txt"\r
619         Delete "$INSTDIR\PSWBTM\config.pswbtm"\r
620         Delete "$INSTDIR\PSWBTM\engines.pswbtm"\r
621         Delete "$INSTDIR\PSWBTM\ntls.pswbtm"\r
622         Delete "$INSTDIR\PSWBTM\start positions\nunn.pgn"\r
623         Delete "$INSTDIR\PSWBTM\start positions\silver.epd"\r
624         Delete "$INSTDIR\PSWBTM\doc\configure.html"\r
625         Delete "$INSTDIR\PSWBTM\doc\install.html"\r
626         Delete "$INSTDIR\PSWBTM\doc\running.html"\r
627         Delete "$INSTDIR\PSWBTM\doc\tourney.html"\r
628         Delete "$INSTDIR\PSWBTM\doc\conf.png"\r
629         Delete "$INSTDIR\PSWBTM\doc\eman.png"\r
630         Delete "$INSTDIR\PSWBTM\doc\menu.png"\r
631         Delete "$INSTDIR\PSWBTM\doc\pswbtm.png"\r
632         Delete "$INSTDIR\PSWBTM\doc\tour.png"\r
633 \r
634         RMDir "$INSTDIR\WinBoard\doc"\r
635         RMDir "$INSTDIR\WinBoard\logos"\r
636         RMDir "$INSTDIR\WinBoard\textures"\r
637         RMDir "$INSTDIR\WinBoard\PG"\r
638         RMDir "$INSTDIR\WinBoard\QH"\r
639         RMDir "$INSTDIR\WinBoard"\r
640         RMDir "$INSTDIR\Fairy-Max"\r
641         RMDir "$INSTDIR\Pulsar"\r
642         RMDir "$INSTDIR\Joker"\r
643         RMDir "$INSTDIR\Fruit"\r
644         RMDir "$INSTDIR\PSWBTM\doc"\r
645         RMDir "$INSTDIR\PSWBTM\games"\r
646         RMDir "$INSTDIR\PSWBTM\start positions"\r
647         RMDir "$INSTDIR\PSWBTM"\r
648         RMDir "$INSTDIR\SMIRF"\r
649         RMDir "$INSTDIR\HaQi"\r
650         RMDir "$INSTDIR\EleEye"\r
651         Delete "$INSTDIR\uninstall.exe"\r
652         RMDir "$INSTDIR"\r
653 \r
654 \r
655     !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP\r
656 \r
657     RMDir /r "$SMPROGRAMS\$MUI_TEMP"\r
658 \r
659     ReadRegStr $1 HKCR ".pgn" ""\r
660     StrCmp $1 "WinBoard.PGN" "" DelFEN\r
661     ReadRegStr $1 HKCR "WinBoard.PGN\Shell\Open\command" ""\r
662     StrCmp $1 '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lgf "%1"' "" DelFEN\r
663     DeleteRegKey HKCR ".pgn"\r
664     DeleteRegKey HKCR "WinBoard.PGN"\r
665 \r
666     DelFEN:\r
667 \r
668     ReadRegStr $1 HKCR ".fen" ""\r
669     StrCmp $1 "WinBoard.FEN" "" ContDelFEN\r
670     ReadRegStr $1 HKCR "WinBoard.FEN\Shell\Open\command" ""\r
671     StrCmp $1 '"$INSTDIR\WinBoard\WinBoard.exe" -ini "$INSTDIR\WinBoard\WinBoard.ini" @viewer -lpf "%1"' "" ContDelFEN\r
672     DeleteRegKey HKCR ".fen"\r
673     DeleteRegKey HKCR "WinBoard.FEN"\r
674 \r
675     ContDelFEN:\r
676 \r
677     DeleteRegKey HKCU "Software\WinBoard"\r
678 \r
679 \r
680     IfFileExists "$INSTDIR\*.*" GoDirDel Continue\r
681 \r
682     GoDirDel:\r
683     Call un.ForceDirectoryDelete\r
684 \r
685     Continue:\r
686 \r
687 \r
688 SectionEnd\r