grafX2/install/WinInstaller.nsi

222 lines
6.8 KiB
NSIS

;NSIS Modern User Interface
;Based on the Example Script written by Joost Verburg
!define VERSION 2.5.1946
;--------------------------------
;Include Modern UI
!include "MUI2.nsh"
;--------------------------------
;General
;Name and file
Name "Grafx2"
OutFile "grafx2-${VERSION}.win32.exe"
;Default installation folder
InstallDir "$PROGRAMFILES\Grafx2"
!define MULTIUSER_INSTALLMODE_INSTDIR "Grafx2"
;Get installation folder from registry if available
InstallDirRegKey HKCU "Software\Grafx2" ""
;Request application privileges for Windows Vista
RequestExecutionLevel user
SetCompressor /SOLID LZMA
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
;--------------------------------
;Pages
!define MUI_WELCOMEFINISHPAGE_BITMAP vector.bmp
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
!insertmacro MUI_PAGE_WELCOME
!define MULTIUSER_EXECUTIONLEVEL Highest
!define MULTIUSER_MUI
!define MULTIUSER_INSTALLMODE_COMMANDLINE
;!define MUI_HEADERIMAGE_BITMAP logo_scenish.bmp
;!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
!insertmacro MUI_PAGE_LICENSE "..\doc\gpl-2.0.txt"
!include MultiUser.nsh
!insertmacro MULTIUSER_PAGE_INSTALLMODE
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
;Functions
Function .onInit
!insertmacro MULTIUSER_INIT
FunctionEnd
Function un.onInit
!insertmacro MULTIUSER_UNINIT
FunctionEnd
Function .onInstSuccess
MessageBox MB_YESNO "Run GrafX2 now ?" IDNO norun
Exec $INSTDIR\bin\grafx2.exe
norun:
FunctionEnd
;--------------------------------
;Installer Sections
Section "Grafx2" SecProgram
SectionIn RO
SetOutPath "$INSTDIR"
;ADD YOUR OWN FILES HERE...
File ..\src\gfx2.ico
File "..\src-${VERSION}-HEAD.tgz"
SetOutPath "$INSTDIR\bin"
File ..\bin\grafx2.exe
File ..\bin\SDL_image.dll
File ..\bin\SDL.dll
File ..\bin\libfreetype-6.dll
File ..\bin\SDL_ttf.dll
File ..\bin\zlib1.dll
File ..\bin\libpng14-14.dll
SetOutPath "$INSTDIR\share\grafx2"
File ..\share\grafx2\gfx2.gif
File ..\share\grafx2\gfx2def.ini
SetOutPath "$INSTDIR\share\grafx2\skins"
File ..\share\grafx2\skins\*.png
SetOutPath "$INSTDIR\share\grafx2\scripts\samples_2.4"
File /r ..\share\grafx2\scripts\samples_2.4\*.*
SetOutPath "$INSTDIR\doc"
File ..\doc\*.txt
SetOutPath "$INSTDIR\share\grafx2\fonts"
File ..\share\grafx2\fonts\8pxfont.png
File ..\share\grafx2\fonts\Tuffy.ttf
File ..\share\grafx2\fonts\PF_Arma_5__.png
File ..\share\grafx2\fonts\PF_Easta_7_.png
File ..\share\grafx2\fonts\PF_Easta_7__.png
File ..\share\grafx2\fonts\PF_Ronda_7__.png
File ..\share\grafx2\fonts\PF_Tempesta_5.png
File ..\share\grafx2\fonts\PF_Tempesta_5_.png
File ..\share\grafx2\fonts\PF_Tempesta_5__.png
File ..\share\grafx2\fonts\PF_Tempesta_5___.png
File ..\share\grafx2\fonts\PF_Tempesta_7.png
File ..\share\grafx2\fonts\PF_Tempesta_7_.png
File ..\share\grafx2\fonts\PF_Tempesta_7__.png
File ..\share\grafx2\fonts\PF_Tempesta_7___.png
File ..\share\grafx2\fonts\PF_Westa_7_.png
File ..\share\grafx2\fonts\PF_Westa_7__.png
; Register in Add/Remove programs
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"DisplayName" "GrafX2 (GNU GPL)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"Publisher" "GrafX2 Project Team"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"InstalledProductName" "GrafX2"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"InstalledLocation" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"DisplayIcon" "$INSTDIR\gfx2.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"URLInfoAbout" "http://grafx2.tk"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"DisplayVersion" "${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"NoModify" 1
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL" \
"NoRepair" 1
;Store installation folder
WriteRegStr HKLM "Software\Grafx2" "" $INSTDIR
;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
Section "Desktop shortcut" SecShortcut
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\Grafx2.lnk" "$INSTDIR\bin\grafx2.exe" "" "" "" SW_SHOWNORMAL
SectionEnd
;--------------------------------
;Descriptions
;Language strings
LangString DESC_SecProgram ${LANG_ENGLISH} "Grafx2 application and runtime data."
LangString DESC_SecShortcut ${LANG_ENGLISH} "Desktop shortcut."
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecProgram} $(DESC_SecProgram)
!insertmacro MUI_DESCRIPTION_TEXT ${SecShortcut} $(DESC_SecShortcut)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
;Uninstaller Section
Section "un.SecProgram"
;ADD YOUR OWN FILES HERE...
Delete "$INSTDIR\gfx2.ico"
Delete "$INSTDIR\bin\grafx2.exe"
Delete "$INSTDIR\src-${VERSION}-HEAD.tgz"
Delete "$INSTDIR\share\grafx2\gfx2.gif"
Delete "$INSTDIR\share\grafx2\gfx2def.ini"
Delete "$INSTDIR\bin\SDL_image.dll"
Delete "$INSTDIR\bin\SDL.dll"
Delete "$INSTDIR\bin\libfreetype-6.dll"
Delete "$INSTDIR\bin\SDL_ttf.dll"
Delete "$INSTDIR\bin\zlib1.dll"
Delete "$INSTDIR\bin\libpng14-14.dll"
Delete "$INSTDIR\bin\stdout.txt"
Delete "$INSTDIR\bin\stderr.txt"
RMDir "$INSTDIR\bin"
RMDir /r "$INSTDIR\doc"
RMDir /r "$INSTDIR\share\grafx2\fonts"
RMDir /r "$INSTDIR\share\grafx2\skins"
RMDir /r "$INSTDIR\share\grafx2\scripts\samples_2.4"
RMDir "$INSTDIR\share\grafx2\scripts"
RMDir "$INSTDIR\share\grafx2"
RMDir "$INSTDIR\share"
Delete "$INSTDIR\Uninstall.exe"
MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION "Do you wish to keep your configuration settings ?" IDYES keepconfig IDNO deleteconfig
deleteconfig:
Delete "$INSTDIR\gfx2.cfg"
Delete "$INSTDIR\gfx2.ini"
Delete "$APPDATA\Grafx2\gfx2.cfg"
Delete "$APPDATA\Grafx2\gfx2.ini"
RMDir "$APPDATA\Grafx2"
keepconfig:
RMDir "$INSTDIR"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Grafx2-SDL"
DeleteRegKey /ifempty HKLM "Software\Grafx2"
SectionEnd
Section "un.SecShortcut"
Delete "$DESKTOP\Grafx2.lnk"
SectionEnd