;NSIS Modern User Interface ;Welcome/Finish Page Example Script ;Written by Joost Verburg ;-------------------------------- ;Include Modern UI !include "MUI.nsh" ;-------------------------------- ;General ;Name and file Name "Brutal Chess" OutFile "brutalchess.exe" ;Default installation folder InstallDir "$PROGRAMFILES\Brutal Chess" ;Get installation folder from registry if available InstallDirRegKey HKCU "Software\Brutal Chess" "" BrandingText " " RequestExecutionLevel admin ;-------------------------------- ;Variables Var MUI_TEMP Var STARTMENU_FOLDER ; Var WIN_VERSION ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING ;-------------------------------- ;Pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "gpl.txt" !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Brutal Chess" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" ;-------------------------------- ;Installer Sections Section "Dummy Section" SecDummy SetOutPath "$INSTDIR\bin" File "Release\brutalchess.exe" File "C:\WINDOWS\System32\SDL.dll" File "C:\WINDOWS\System32\SDL_image.dll" File "C:\WINDOWS\System32\jpeg.dll" File "C:\WINDOWS\System32\libpng12.dll" File "C:\WINDOWS\System32\libtiff.dll" File "C:\WINDOWS\System32\zlib1.dll" File "C:\WINDOWS\System32\freetype6.dll" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Brutal Chess.lnk" "$INSTDIR\bin\brutalchess.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_END ;Make sure the installer works on Win98+ ;Check for NT based system ; ReadRegStr $WIN_VERSION HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion ;Pre NT systems didn't have SxS assemblies ; IfErrors lbl_SxS_no ;Windows XP, 2003, and Vista are only versions with SxS support ; StrCmp $WIN_VERSION '5.1' lbl_SxS_yes ;XP ; StrCmp $WIN_VERSION '5.2' lbl_SxS_yes ;2003 ; StrCmp $WIN_VERSION '6.0' lbl_SxS_yes ;Vista ; lbl_SxS_no: SetOutPath "$INSTDIR\bin\" ; Goto lbl_cpy_dll ; lbl_SxS_yes: ; SetOutPath "$INSTDIR\bin\Microsoft.VC80.CRT" ; File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" ;Copy the dlls to the system specific directory already set ; lbl_cpy_dll: File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcm80.dll" File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcp80.dll" File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll" ;Setup all the Brutal Chess Resources SetOutPath "$INSTDIR\models" File "models\pawn.obj" File "models\rook.obj" File "models\bishop.obj" File "models\king.obj" File "models\knight.obj" File "models\queen.obj" SetOutPath "$INSTDIR\art" File "art\brutalchesslogo.png" File "art\marblehugeblack.png" File "art\marblehugewhite.png" SetOutPath "$INSTDIR\fonts" File "fonts\ZEROES__.TTF" ;Store installation folder WriteRegStr HKCU "Software\Brutal Chess" "" $INSTDIR WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Brutal Chess" \ "DisplayName" "Brutal Chess" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Brutal Chess" \ "UninstallString" "$INSTDIR\uninstall.exe" SetOutPath "$INSTDIR" ;Install all the docs File /oname=ChangeLog.txt "ChangeLog" File /oname=LICENSE.txt "COPYING" File /oname=NEWS.txt "NEWS" File /oname=README.txt "README" ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd Section "Quick Launch icon" SecQuick SetOutPath "$INSTDIR\bin" StrCmp $QUICKLAUNCH $TEMP +2 CreateShortcut "$QUICKLAUNCH\Brutal Chess.lnk" "$INSTDIR\bin\brutalchess.exe" SectionEnd ;-------------------------------- ;Descriptions ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "The core program" ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Uninstaller Section Section "Uninstall" ;Delete the application and all of our dlls Delete "$INSTDIR\bin\brutalchess.exe" Delete "$INSTDIR\bin\stdout.txt" Delete "$INSTDIR\bin\stderr.txt" Delete "$INSTDIR\bin\SDL.dll" Delete "$INSTDIR\bin\SDL_image.dll" Delete "$INSTDIR\bin\jpeg.dll" Delete "$INSTDIR\bin\libpng12.dll" Delete "$INSTDIR\bin\libtiff.dll" Delete "$INSTDIR\bin\zlib1.dll" Delete "$INSTDIR\bin\freetype6.dll" Delete "$INSTDIR\bin\msvcm80.dll" Delete "$INSTDIR\bin\msvcp80.dll" Delete "$INSTDIR\bin\msvcr80.dll" ; Delete "$INSTDIR\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" ; Delete "$INSTDIR\bin\Microsoft.VC80.CRT\msvcm80.dll" ; Delete "$INSTDIR\bin\Microsoft.VC80.CRT\msvcp80.dll" ; Delete "$INSTDIR\bin\Microsoft.VC80.CRT\msvcr80.dll" Delete "$INSTDIR\models\pawn.obj" Delete "$INSTDIR\models\rook.obj" Delete "$INSTDIR\models\bishop.obj" Delete "$INSTDIR\models\king.obj" Delete "$INSTDIR\models\knight.obj" Delete "$INSTDIR\models\queen.obj" Delete "$INSTDIR\art\brutalchesslogo.png" Delete "$INSTDIR\art\marblehugeblack.png" Delete "$INSTDIR\art\marblehugewhite.png" Delete "$INSTDIR\fonts\ZEROES__.TTF" Delete "$INSTDIR\ChangeLog.txt" Delete "$INSTDIR\LICENSE.txt" Delete "$INSTDIR\NEWS.txt" Delete "$INSTDIR\README.txt" Delete "$INSTDIR\Uninstall.exe" ; RMDir "$INSTDIR\bin\Microsoft.VC80.CRT\" RMDir "$INSTDIR\bin" RMDir "$INSTDIR\art" RMDir "$INSTDIR\fonts" RMDir "$INSTDIR\models" RMDir "$INSTDIR" !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP Delete "$SMPROGRAMS\$MUI_TEMP\Brutal Chess.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" Delete "$QUICKLAUNCH\Brutal Chess.lnk" ;Delete empty start menu parent diretories StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" startMenuDeleteLoop: ClearErrors RMDir $MUI_TEMP GetFullPathName $MUI_TEMP "$MUI_TEMP\.." IfErrors startMenuDeleteLoopDone StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop startMenuDeleteLoopDone: DeleteRegKey /ifempty HKCU "Software\Brutal Chess" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Brutal Chess" SectionEnd