2008-02-21 03:33:47 +00:00
; Before you start you will need the shelllink plugin for NSIS
; Download it from the nsis webpage, and unzip it in the NSIS
; install dir.
2008-02-21 00:43:13 +00:00
;
2008-02-21 03:33:47 +00:00
; To use just put this in a directory below the supertuxkart directory
; which should be called "supertuxkart" and then copy the
; GPL in the supertuxkart directory to 'license.txt'.
; Next to supertuxkart create a subdirectory called 'prerequisites'
; and copy the VC++ (vcredist_x86.exe) and OpenAL (oalinst.exe)
; redistributables.
2008-02-21 00:43:13 +00:00
; You will then need to make an icon, you can use:
2008-02-21 03:33:47 +00:00
; http://tools.dynamicdrive.com/favicon/ to convert a png to an icon.
; Once you have made an icon put it in the supertuxkart dir and call it
; icon.ico. You will need to do the same for install.ico nd uninstall.ico
; Once there done then all you need to do is compile with NSIS.
2008-02-21 00:43:13 +00:00
;--------------------------------
;Include Modern UI
2013-11-17 23:58:42 +00:00
!include " MUI2.nsh "
2008-02-21 00:43:13 +00:00
;--------------------------------
;General
;Name and file
Name " SuperTuxKart for Windows "
2013-11-17 23:58:42 +00:00
OutFile " supertuxkart.exe "
2008-02-21 00:43:13 +00:00
;Default installation folder
InstallDir " $PROGRAMFILES \SuperTuxKart "
;Get installation folder from registry if available
InstallDirRegKey HKCU " Software\SuperTuxKart " " "
;Sets the text in the bottom corner
BrandingText " SuperTuxKart Installer "
;Set the icon
!define MUI_ICON " SuperTuxKart\install.ico "
!define MUI_UNICON " SuperTuxKart\uninstall.ico "
2013-11-17 23:58:42 +00:00
!define MUI_HEADERIMAGE
!define MUI_WELCOMEFINISHPAGE_BITMAP " supertuxkart\stk_installer.bmp "
!define MUI_HEADERIMAGE_BITMAP " supertuxkart\logo_slim.bmp "
;!define MUI_TEXT_INSTALLING_SUBTITLE "Please vote for SuperTuxKart to become SourceForge's Project of the month at vote.supertuxkart.net"
;!define MUI_TEXT_FINISH_INFO_TEXT "Please vote for SuperTuxKart to become $\"Project of the Month$\" at vote.supertuxkart.net"
2008-02-21 00:43:13 +00:00
;Sets the compressor to /SOLID lzma which when I tested was the best
SetCompressor /SOLID lzma
;Vista redirects $SMPROGRAMS to all users without this
RequestExecutionLevel admin
;--------------------------------
;Variables
Var MUI_TEMP
Var STARTMENU_FOLDER
;--------------------------------
;Interface Settings
!define MUI_ABORTWARNING
2012-11-15 11:38:57 +00:00
;--------------------------------
Function validate_dir
IfFileExists $INSTDIR \ data\ * .* 0 return
IfFileExists $INSTDIR \ Uninstall.exe 0 dont_uninstall
2013-11-17 23:58:42 +00:00
MessageBox MB_YESNO " You can't install SuperTuxKart 0.8.1-rc1 in an existing directory. Do you wish to run the uninstaller in $INSTDIR? " IDNO dont_uninstall
2012-11-15 11:38:57 +00:00
; -?=$INSTDIR makes sure that this installer waits for the uninstaller
; to finish. The uninstaller (and directory) are not removed, but the
; uninstaller will be overwritten by our installer anyway.
ExecWait '"$INSTDIR\Uninstall.exe" _?=$INSTDIR'
goto return
dont_uninstall :
2013-11-17 23:58:42 +00:00
MessageBox MB_OK " You can't install SuperTuxKart 0.8.1-rc1 in an existing directory. Please select a new directory. "
2012-11-15 11:38:57 +00:00
abort
return :
FunctionEnd
2008-02-21 00:43:13 +00:00
;--------------------------------
;Pages
;Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE " SuperTuxKart\License.txt "
2012-11-15 11:38:57 +00:00
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE validate_dir
2008-02-21 00:43:13 +00:00
!insertmacro MUI_PAGE_DIRECTORY
;Start Menu Folder Page Configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT " HKCU "
!define MUI_STARTMENUPAGE_REGISTRY_KEY " Software\SuperTuxKart "
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME " Start Menu Folder "
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU _FOLDER
!insertmacro MUI_PAGE_INSTFILES
2013-11-17 23:58:42 +00:00
;!define MUI_FINISHPAGE_LINK "Please vote for SuperTuxkart here"
;!define MUI_FINISHPAGE_LINK_LOCATION "http://vote.supertuxkart.net"
2008-02-21 00:43:13 +00:00
!insertmacro MUI_PAGE_FINISH
;Uninstaller pages
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE " English "
;--------------------------------
2013-11-17 23:58:42 +00:00
function ChangeFont
CreateFont $0 " $(^Font) " " 20 " " 700 "
SendMessage $mui .Line.Standard ${WM_SETFONT} $0 0
functionend
2008-02-21 00:43:13 +00:00
;Installer Sections
Section " Main Section " SecMain
SetOutPath " $INSTDIR "
2012-11-15 11:38:57 +00:00
; Adds all SuperTuxKart files
2008-02-21 00:43:13 +00:00
File /r supertuxkart\ * .*
;Store installation folder
WriteRegStr HKCU " Software\SuperTuxKart " " " $INSTDIR
;Create uninstaller
WriteUninstaller " $INSTDIR \Uninstall.exe "
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
;Create shortcuts
2012-12-10 03:06:29 +00:00
SetShellVarContext all
2008-02-21 00:43:13 +00:00
CreateDirectory " $SMPROGRAMS \$STARTMENU_FOLDER "
CreateShortCut " $SMPROGRAMS \$STARTMENU_FOLDER\Uninstall.lnk " " $INSTDIR \Uninstall.exe " " " " $INSTDIR \uninstall.ico "
2011-07-05 01:20:14 +00:00
CreateShortCut " $SMPROGRAMS \$STARTMENU_FOLDER\supertuxkart.lnk " " $INSTDIR \supertuxkart.exe " " " " $INSTDIR \icon.ico "
ShellLink :: SetShortCutShowMode $SMPROGRAMS \ $STARTMENU _FOLDER\ supertuxkart.lnk 0
2008-02-21 00:43:13 +00:00
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
2008-02-21 03:33:47 +00:00
Section - Prerequisites
SetOutPath $INSTDIR \ Prerequisites
MessageBox MB_YESNO " Install Microsoft VC++ runtime libraries? " /SD IDYES IDNO endVC
File " prerequisites\vcredist_x86.exe "
ExecWait " $INSTDIR \prerequisites\vcredist_x86.exe "
Goto endVC
endVC :
MessageBox MB_YESNO " Install OpenAL sound libraries? " /SD IDYES IDNO endOA
File " prerequisites\oalinst.exe "
ExecWait " $INSTDIR \prerequisites\oalinst.exe "
Goto endOA
endOA :
SectionEnd
2008-02-21 00:43:13 +00:00
;--------------------------------
;Uninstaller Section
2008-02-21 03:33:47 +00:00
Section " Uninstall " redist
2008-02-21 00:43:13 +00:00
;Removes all the supertuxkart data files
RMDir /r /REBOOTOK $INSTDIR
Delete " $INSTDIR \Uninstall.exe "
RMDir " $INSTDIR "
;Remove start menuy items
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
Delete " $SMPROGRAMS \$MUI_TEMP\Uninstall.lnk "
2011-07-05 01:20:14 +00:00
Delete " $SMPROGRAMS \$MUI_TEMP\supertuxkart.lnk "
2008-02-21 00:43:13 +00:00
;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\SuperTuxKart "
SectionEnd