SetCompressor /SOLID lzma !define MULTIUSER_EXECUTIONLEVEL Highest !define MULTIUSER_MUI !define MULTIUSER_INSTALLMODE_COMMANDLINE !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\Battle for Wesnoth\%version" !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "" !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\Battle for Wesnoth\%version" !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "" !define MULTIUSER_INSTALLMODE_INSTDIR "Battle for Wesnoth %version" !include "MultiUser.nsh" !include "MUI2.nsh" !include "nsDialogs.nsh" !include "LogicLib.nsh" ;-------------------------------- ;General ;Name and file Name "Battle for Wesnoth" OutFile "wesnoth-%version-win32.exe" ;-------------------------------- ;Variables Var StartMenuFolder !define UserdataDir Wesnoth%version_major Var UserdataFlags ;Userdata page variables Var Dialog Var UserdataMyDocumentsRadioButton Var UserdataMyDocumentsRadioButtonState Var UserdataInstalldirRadioButton Var UserdataInstalldirRadioButtonState ;-------------------------------- ;Interface Settings !define MUI_WELCOMEFINISHPAGE_BITMAP packaging\windows\WindowsInstallerGraphic.bmp !define MUI_ABORTWARNING ;-------------------------------- ;Language Selection Dialog Settings ;Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "SHCTX" !define MUI_LANGDLL_REGISTRY_KEY "Software\Battle for Wesnoth\%version" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" ;-------------------------------- ;Pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "COPYING" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MULTIUSER_PAGE_INSTALLMODE !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Battle for Wesnoth\%version" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !define MUI_STARTMENUPAGE_DEFAULTFOLDER "Battle for Wesnoth %version" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder Page custom UserdataPage UserdataPageLeave !insertmacro MUI_PAGE_INSTFILES !define MUI_FINISHPAGE_RUN $INSTDIR\wesnoth.exe !define MUI_FINISHPAGE_RUN_PARAMETERS "$UserdataFlags" !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "SpanishInternational" !insertmacro MUI_LANGUAGE "SimpChinese" !insertmacro MUI_LANGUAGE "TradChinese" !insertmacro MUI_LANGUAGE "Japanese" !insertmacro MUI_LANGUAGE "Korean" !insertmacro MUI_LANGUAGE "Italian" !insertmacro MUI_LANGUAGE "Dutch" !insertmacro MUI_LANGUAGE "Danish" !insertmacro MUI_LANGUAGE "Swedish" !insertmacro MUI_LANGUAGE "Norwegian" !insertmacro MUI_LANGUAGE "NorwegianNynorsk" !insertmacro MUI_LANGUAGE "Finnish" !insertmacro MUI_LANGUAGE "Greek" !insertmacro MUI_LANGUAGE "Russian" !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "PortugueseBR" !insertmacro MUI_LANGUAGE "Polish" !insertmacro MUI_LANGUAGE "Ukrainian" !insertmacro MUI_LANGUAGE "Czech" !insertmacro MUI_LANGUAGE "Slovak" !insertmacro MUI_LANGUAGE "Croatian" !insertmacro MUI_LANGUAGE "Bulgarian" !insertmacro MUI_LANGUAGE "Hungarian" !insertmacro MUI_LANGUAGE "Thai" !insertmacro MUI_LANGUAGE "Romanian" !insertmacro MUI_LANGUAGE "Latvian" !insertmacro MUI_LANGUAGE "Macedonian" !insertmacro MUI_LANGUAGE "Estonian" !insertmacro MUI_LANGUAGE "Turkish" !insertmacro MUI_LANGUAGE "Lithuanian" !insertmacro MUI_LANGUAGE "Slovenian" !insertmacro MUI_LANGUAGE "Serbian" !insertmacro MUI_LANGUAGE "SerbianLatin" !insertmacro MUI_LANGUAGE "Arabic" !insertmacro MUI_LANGUAGE "Farsi" !insertmacro MUI_LANGUAGE "Hebrew" !insertmacro MUI_LANGUAGE "Indonesian" !insertmacro MUI_LANGUAGE "Mongolian" !insertmacro MUI_LANGUAGE "Luxembourgish" !insertmacro MUI_LANGUAGE "Albanian" !insertmacro MUI_LANGUAGE "Breton" !insertmacro MUI_LANGUAGE "Belarusian" !insertmacro MUI_LANGUAGE "Icelandic" !insertmacro MUI_LANGUAGE "Malay" !insertmacro MUI_LANGUAGE "Bosnian" !insertmacro MUI_LANGUAGE "Kurdish" !insertmacro MUI_LANGUAGE "Irish" !insertmacro MUI_LANGUAGE "Uzbek" !insertmacro MUI_LANGUAGE "Galician" !insertmacro MUI_LANGUAGE "Afrikaans" !insertmacro MUI_LANGUAGE "Catalan" ;-------------------------------- ;Reserve Files ;If you are using solid compression, files that are required before ;the actual installation should be stored first in the data block, ;because this will make your installer start faster. !insertmacro MUI_RESERVEFILE_LANGDLL ReserveFile "${NSISDIR}\Plugins\*.dll" ;-------------------------------- ;Installer Sections Section "Battle for Wesnoth" BfWSection SectionIn RO SetOutPath "$INSTDIR\manual" File /r /x .* doc\manual\*.html File /r /x .* doc\manual\styles File /r /x .* doc\manual\images SetOutPath "$INSTDIR" File packaging\windows\wesnoth_editor-icon.ico %NSIS_INSTALL_FILES SetOutPath "$INSTDIR" ;Store installation folder WriteRegStr SHCTX "Software\Battle for Wesnoth\%version" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" ;Add uninstall information WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "DisplayName" "Battle for Wesnoth %version" WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "DisplayIcon" "$\"$INSTDIR\wesnoth.exe$\"" WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S" WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "URLInfoAbout" "www.wesnoth.org" WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "DisplayVersion" "%version" WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "NoModify" 1 WriteRegDWORD SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" "NoRepair" 1 !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ${If} $UserdataMyDocumentsRadioButtonState == ${BST_CHECKED} StrCpy $UserdataFlags "--config-dir ${UserdataDir}" ${Else} StrCpy $UserdataFlags "" ${EndIf} ;Create shortcuts CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth.lnk" "$INSTDIR\wesnoth.exe" $UserdataFlags CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Map editor.lnk" "$INSTDIR\wesnoth.exe" "-e $UserdataFlags" "$INSTDIR\wesnoth_editor-icon.ico" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Multiplayer server.lnk" "$INSTDIR\wesnothd.exe" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Manual.lnk" "$INSTDIR\manual\manual.en.html" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Changelog.lnk" "$INSTDIR\changelog.txt" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Player's changelog.lnk" "$INSTDIR\players_changelog.txt" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\License.lnk" "$INSTDIR\COPYING.txt" !insertmacro MUI_STARTMENU_WRITE_END SectionEnd ;-------------------------------- ;Installer Functions Function .onInit !insertmacro MULTIUSER_INIT !insertmacro MUI_LANGDLL_DISPLAY StrCpy $UserdataMyDocumentsRadioButtonState ${BST_CHECKED} FunctionEnd Function UserdataPage nsDialogs::Create /NOUNLOAD 1018 Pop $Dialog ${If} $Dialog == error Abort ${EndIf} ${NSD_CreateRadioButton} 0 30u 100%% 10u "Store userdata (preferences, saved games..) in My Documents\My Games\${UserdataDir}" Pop $UserdataMyDocumentsRadioButton ${NSD_CreateRadioButton} 0 50u 100%% 10u "Store userdata in the install location" Pop $UserdataInstalldirRadioButton ${NSD_SetState} $UserdataMyDocumentsRadioButton $UserdataMyDocumentsRadioButtonState ${NSD_SetState} $UserdataInstalldirRadioButton $UserdataInstalldirRadioButtonState nsDialogs::Show FunctionEnd Function UserdataPageLeave ${NSD_GetState} $UserdataMyDocumentsRadioButton $UserdataMyDocumentsRadioButtonState ${NSD_GetState} $UserdataInstalldirRadioButton $UserdataInstalldirRadioButtonState FunctionEnd ;-------------------------------- ;Descriptions ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC ;Assign descriptions to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${BfWSection} "Battle for wesnoth executable and data." !insertmacro MUI_FUNCTION_DESCRIPTION_END ;-------------------------------- ;Uninstaller Section Section "Uninstall" %NSIS_UNINSTALL_FILES Delete "$INSTDIR\wesnoth_editor-icon.ico" RMDir /r "$INSTDIR\manual" Delete "$INSTDIR\Uninstall.exe" RMDir "$INSTDIR" !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Delete "$SMPROGRAMS\$StartMenuFolder\License.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Player's changelog.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Changelog.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Manual.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Multiplayer server.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Map editor.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Battle for Wesnoth.lnk" RMDir "$SMPROGRAMS\$StartMenuFolder" DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Battle for Wesnoth %version" DeleteRegKey /ifempty SHCTX "Software\Battle for Wesnoth\%version" DeleteRegKey /ifempty SHCTX "Software\Battle for Wesnoth" SectionEnd ;-------------------------------- ;Uninstaller Functions Function un.onInit !insertmacro MULTIUSER_UNINIT !insertmacro MUI_UNGETLANGUAGE FunctionEnd