Files
love/extra/nsis/love.nsi
T
2011-01-14 17:39:54 +01:00

115 lines
3.5 KiB
NSIS

!include "MUI2.nsh" # Modern look, plxz
Name "LOVE"
OutFile ${LOVEEXE}
InstallDir $PROGRAMFILES\LOVE
InstallDirRegKey HKCU "Software\LOVE" ""
# Graphics
!define MUI_ICON "love\extra\nsis\love.ico"
!define MUI_UNICON "love\extra\nsis\love.ico"
!define MUI_ABORTWARNING
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "love\extra\nsis\top.bmp" # optional
!define MUI_WELCOMEFINISHPAGE_BITMAP "love\extra\nsis\left.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "love\extra\nsis\left.bmp"
!define MUI_WELCOMEPAGE_TITLE "LÖVE Setup"
!define MUI_WELCOMEPAGE_TEXT "This will install LÖVE, the unquestionably awesome Lua game framework."
# Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "love\license.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Languages
!insertmacro MUI_LANGUAGE "English"
# Main Program
Section "LOVE" MainProg
SectionIn RO
SetOutPath $INSTDIR
File "love\platform\msvc2010\Release\love.exe"
File "love\platform\msvc2010\DevIL.dll"
File "love\platform\msvc2010\SDL.dll"
File "love\platform\msvc2010\OpenAL32.dll"
File "love\extra\nsis\love.ico"
File "love\extra\nsis\game.ico"
# Uninstaller
WriteUninstaller $INSTDIR\Uninstall.exe
# Add new start menu items
CreateDirectory "$SMPROGRAMS\LOVE"
CreateShortCut "$SMPROGRAMS\LOVE\LOVE.lnk" "$INSTDIR\love.exe"
CreateShortCut "$SMPROGRAMS\LOVE\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
WriteINIStr "$SMPROGRAMS\LOVE\Documentation.url" "InternetShortcut" "URL" "http://love2d.org/wiki/"
# Desktop
CreateShortCut "$DESKTOP\LOVE.lnk" "$INSTDIR\love.exe" ""
# Registry
WriteRegStr HKCU "Software\LOVE" "" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LOVE" "DisplayName" "LOVE (remove only)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LOVE" "UninstallString" "$INSTDIR\Uninstall.exe"
# love file association
WriteRegStr HKCR ".love" "" "LOVE"
WriteRegStr HKCR "LOVE" "" "LOVE Game File"
WriteRegStr HKCR "LOVE\DefaultIcon" "" "$INSTDIR\game.ico"
WriteRegStr HKCR "LOVE\shell" "" "open"
WriteRegStr HKCR "LOVE\shell\open" "" "Open in LOVE"
WriteRegStr HKCR "LOVE\shell\open\command" "" "$INSTDIR\love.exe $\"%1$\""
# Refresh shell icons
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
SectionEnd
# Descriptions
LangString DESC_MainProg ${LANG_ENGLISH} "Main program."
# Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${MainProg} $(DESC_MainProg)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
# Uninstall
Section "Uninstall"
Delete $INSTDIR\"DevIL.dll"
Delete $INSTDIR\"SDL.dll"
Delete $INSTDIR\"love.exe"
Delete $INSTDIR\"OpenAL32.dll"
Delete $INSTDIR\"game.ico"
Delete $INSTDIR\"love.ico"
RMDir $INSTDIR
# Start menu
Delete "$SMPROGRAMS\LOVE\LOVE.lnk"
Delete "$SMPROGRAMS\LOVE\Uninstall.lnk"
Delete "$SMPROGRAMS\LOVE\Documentation.url"
RMDir "$SMPROGRAMS\LOVE"
# Desktop
Delete "$DESKTOP\LOVE.lnk"
# Uninstall keys
DeleteRegKey /ifempty HKCU "Software\LOVE"
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LOVE"
# love file association
DeleteRegKey HKCR "LOVE"
DeleteRegKey HKCR ".love"
# Refresh shell icons
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
SectionEnd