From f75403c6756e00afebd68832a7ab9d57119c7eb8 Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Thu, 24 Jul 2008 17:04:42 +0000 Subject: Added Windows NSIS installer scripts --- packaging/windows/setup.nsi | 237 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 packaging/windows/setup.nsi (limited to 'packaging/windows/setup.nsi') diff --git a/packaging/windows/setup.nsi b/packaging/windows/setup.nsi new file mode 100644 index 00000000..f6dfa798 --- /dev/null +++ b/packaging/windows/setup.nsi @@ -0,0 +1,237 @@ +CRCCheck on +SetCompress off +SetCompressor /SOLID lzma + +;--- (and without !defines ) --- +!System "%ProgramFiles%\upx\upx.exe --best --crp-ms=999999 --compress-icons=0 --nrv2d tmw.exe" + +; HM NIS Edit helper defines +!define PRODUCT_NAME "The Mana World" +!define PRODUCT_VERSION "0.0.26" +!define PRODUCT_PUBLISHER "The Mana World Development Team" +!define PRODUCT_WEB_SITE "http://themanaworld.org" +!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\tmw.exe" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" + +; MUI 1.67 compatible ------ +!include "MUI.nsh" + +; MUI Settings +!define MUI_ABORTWARNING +;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" +!define MUI_ICON "data\icons\tmw.ico" +;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" +!define MUI_UNICON "data\icons\tmw.ico" + +;Language Selection Dialog Settings +;Remember the installer language +!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" +!define MUI_LANGDLL_REGISTRY_KEY "Software\The Mana World" +!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +!define MUI_WELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" +!define MUI_UNWELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" + +; Welcome page + +!define MUI_WELCOMEPAGE_TITLE_3LINES +!insertmacro MUI_PAGE_WELCOME +; License page +!insertmacro MUI_PAGE_LICENSE "COPYING" +; Directory page +!insertmacro MUI_PAGE_DIRECTORY +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES +; Finish page +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_FUNCTION RunTMW +!define MUI_FINISHPAGE_SHOWREADME 'notepad.exe "$\"$INSTDIR\README$\""' +!define MUI_PAGE_CUSTOMFUNCTION_PRE changeFinishBmp +!define MUI_FINISHPAGE_LINK "Visit TMW website for the latest news, FAQs and support" +!define MUI_FINISHPAGE_LINK_LOCATION "http://themanaworld.org" +!insertmacro MUI_PAGE_FINISH + +Function RunTMW +SetOutPath $INSTDIR +Exec "$INSTDIR\tmw.exe" +FunctionEnd + +Function changeFinishBmp +!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\setup_finish.bmp" +FunctionEnd + +; Uninstaller pages + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES +!define MUI_FINISHPAGE_TITLE_3LINES +!insertmacro MUI_UNPAGE_FINISH + +;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 "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 "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 "Catalan" +!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_RESERVEFILE_LANGDLL + +ReserveFile "setup_finish.bmp" + +; MUI end ------ + +Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" +OutFile "tmw-${PRODUCT_VERSION}-win32.exe" +InstallDir "$PROGRAMFILES\The Mana World" +InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" +ShowInstDetails show +ShowUnInstDetails show + +Function .onInit + !insertmacro MUI_LANGDLL_DISPLAY + InitPluginsDir + File /oname=$PLUGINSDIR\setup_finish.bmp "setup_finish.bmp" +FunctionEnd + +Section "Core files (required)" SecCore + SectionIn RO + SetOutPath "$INSTDIR" + SetOverwrite ifnewer + CreateDirectory "$SMPROGRAMS\The Mana World" + CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World.lnk" "$INSTDIR\tmw.exe" + CreateShortCut "$DESKTOP\The Mana World.lnk" "$INSTDIR\tmw.exe" + CreateDirectory "$INSTDIR\data" + CreateDirectory "$INSTDIR\data\graphics" + CreateDirectory "$INSTDIR\data\help" + CreateDirectory "$INSTDIR\data\icons" + CreateDirectory "$INSTDIR\data\maps" + CreateDirectory "$INSTDIR\data\music" + CreateDirectory "$INSTDIR\data\sfx" + CreateDirectory "$INSTDIR\data\graphics\gui" + CreateDirectory "$INSTDIR\data\graphics\images" + CreateDirectory "$INSTDIR\data\graphics\items" + CreateDirectory "$INSTDIR\data\graphics\tiles" + CreateDirectory "$INSTDIR\data\graphics\images\ambient" + CreateDirectory "$INSTDIR\docs" + + SetOverwrite ifnewer + SetOutPath "$INSTDIR" + + File "tmw.exe" + File "*.dll" + File "AUTHORS" + File "ChangeLog" + File "COPYING" + File "NEWS" + File "README" + SetOutPath "$INSTDIR\data\graphics\gui" + File "data\graphics\gui\*.png" + SetOutPath "$INSTDIR\data\graphics\images\ambient" + File /nonfatal "data\graphics\images\ambient\*.png" + SetOutPath "$INSTDIR\data\graphics\images" + File /x minimap_*.png data\graphics\images\*.png + SetOutPath "$INSTDIR\data\graphics\sprites" + File /nonfatal /x monster-*.png data\graphics\sprites\*.png + SetOutPath "$INSTDIR\data\graphics\tiles" + File /nonfatal "data\graphics\tiles\*.png" + SetOutPath "$INSTDIR\data\help" + File "data\help\*.txt" + SetOutPath "$INSTDIR\data\icons\" + File "data\icons\tmw.ico" + SetOutPath "$INSTDIR\data\music" + File /nonfatal "data\music\*.ogg" + SetOutPath "$INSTDIR\docs" + File "docs\FAQ.txt" +SectionEnd + +Section -AdditionalIcons + WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" + CreateShortCut "$SMPROGRAMS\The Mana World\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" + CreateShortCut "$SMPROGRAMS\The Mana World\Readme.lnk" "notepad.exe" "$INSTDIR\README" + CreateShortCut "$SMPROGRAMS\The Mana World\FAQ.lnk" "$INSTDIR\docs\FAQ.txt" + CreateShortCut "$SMPROGRAMS\The Mana World\Uninstall.lnk" "$INSTDIR\uninst.exe" +SectionEnd + +Section -Post + WriteUninstaller "$INSTDIR\uninst.exe" + WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\tmw.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\tmw.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" +SectionEnd + +Function un.onInit + !insertmacro MUI_UNGETLANGUAGE +FunctionEnd + +Section Uninstall + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\The Mana World" + + Delete "$INSTDIR\*.*" + + Delete "$SMPROGRAMS\The Mana World\Uninstall.lnk" + Delete "$DESKTOP\The Mana World.lnk" + Delete "$SMPROGRAMS\The Mana World\The Mana World.lnk" + Delete "$SMPROGRAMS\The Mana World\Website.lnk" + Delete "$SMPROGRAMS\The Mana World\Readme.lnk" + Delete "$SMPROGRAMS\The Mana World\FAQ.lnk" + + RMDir "$SMPROGRAMS\The Mana World" + + RMDir /r "$INSTDIR\data" + RMDir /r "$INSTDIR\docs" + RMDir /r "$INSTDIR\updates" + RMDir "$INSTDIR" + + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" + DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" + SetAutoClose true +SectionEnd \ No newline at end of file -- cgit v1.2.3-70-g09d2