mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
219 lines
6.5 KiB
NSIS
219 lines
6.5 KiB
NSIS
!include "MUI.nsh" # Modern look, plxz
|
|
|
|
Name "LOVE"
|
|
OutFile "love-0.5-0.exe"
|
|
Icon "love.ico" # this doesn't seem to work
|
|
|
|
InstallDir $PROGRAMFILES\LOVE
|
|
InstallDirRegKey HKCU "Software\LOVE" ""
|
|
|
|
# Graphics
|
|
!define MUI_ABORTWARNING
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP "top.bmp" # optional
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "left.bmp"
|
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "left.bmp"
|
|
|
|
# Pages
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "..\..\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
|
|
|
|
# Program
|
|
File ..\..\platform\msvc\Release\love.exe
|
|
|
|
# Modules
|
|
#File ..\..\platform\msvc\Release\love_chipmunk.dll
|
|
#File ..\..\platform\msvc\Release\love_opengl.dll
|
|
#File ..\..\platform\msvc\Release\love_physfs.dll
|
|
#File ..\..\platform\msvc\Release\love_sdlkeyboard.dll
|
|
#File ..\..\platform\msvc\Release\love_sdlmixer.dll
|
|
#File ..\..\platform\msvc\Release\love_sdlmouse.dll
|
|
#File ..\..\platform\msvc\Release\love_sdltimer.dll
|
|
#File ..\..\platform\msvc\Release\love_system.dll
|
|
|
|
# DLLs
|
|
File ..\..\platform\msvc\DevIL.dll
|
|
File ..\..\platform\msvc\ILU.dll
|
|
File ..\..\platform\msvc\SDL.dll
|
|
File ..\..\platform\msvc\SDL_mixer.dll
|
|
File ..\..\platform\msvc\Microsoft.VC80.CRT.manifest
|
|
File ..\..\platform\msvc\msvcp80.dll
|
|
File ..\..\platform\msvc\msvcr80.dll
|
|
|
|
# Delete old DLLS (from 0.2.1 - 0.3.1)
|
|
Delete $INSTDIR\love_chipmunk.dll
|
|
Delete $INSTDIR\love_opengl.dll
|
|
Delete $INSTDIR\love_physfs.dll
|
|
Delete $INSTDIR\love_sdlkeyboard.dll
|
|
Delete $INSTDIR\love_sdlmixer.dll
|
|
Delete $INSTDIR\love_sdlmouse.dll
|
|
Delete $INSTDIR\love_sdltimer.dll
|
|
Delete $INSTDIR\love_system.dll
|
|
Delete $INSTDIR\freetype6.dll
|
|
Delete $INSTDIR\ILUT.dll
|
|
Delete $INSTDIR\libogg-0.dll
|
|
Delete $INSTDIR\libvorbis-0.dll
|
|
Delete $INSTDIR\libvorbisfile-3.dll
|
|
Delete $INSTDIR\lua5.1.dll
|
|
Delete $INSTDIR\physfs.dll
|
|
Delete $INSTDIR\smpeg.dll
|
|
Delete $INSTDIR\zlib1.dll
|
|
|
|
# Delete old demos.
|
|
Delete $INSTDIR\demos\kkav.love
|
|
Delete $INSTDIR\demos\passingclouds.love
|
|
Delete $INSTDIR\demos\sinescroller.love
|
|
Delete $INSTDIR\demos\no.love
|
|
Delete $INSTDIR\demos\particles.love
|
|
|
|
# Icons
|
|
File love.ico
|
|
File game.ico
|
|
# Text
|
|
File ..\..\changes.txt
|
|
File ..\..\license.txt
|
|
File ..\..\readme.txt
|
|
|
|
# Uninstaller
|
|
WriteUninstaller $INSTDIR\Uninstall.exe
|
|
|
|
# Start Menu
|
|
# Remove old menu items (from 0.2.0)
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Animation Demo.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Chinchilla.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Color Blend Demo.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Hello LOVE.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Mouse and Image Basics.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Movement.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Passing Clouds.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Sound.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Demos\Text Demo.lnk"
|
|
RMDir "$SMPROGRAMS\LOVE\Demos"
|
|
Delete "$SMPROGRAMS\LOVE\LOVE.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Uninstall.lnk"
|
|
Delete "$SMPROGRAMS\LOVE\Documentation.url"
|
|
# 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://love.sourceforge.net/docs/"
|
|
|
|
# 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
|
|
|
|
# Demos
|
|
Section "Demos" Demos
|
|
|
|
SetOutPath $INSTDIR\demos
|
|
|
|
# Files
|
|
File ..\..\demos\lovalanche.love
|
|
File ..\..\demos\no.love
|
|
File ..\..\demos\particles.love
|
|
|
|
# Start menu
|
|
CreateShortCut "$SMPROGRAMS\LOVE\Demos.lnk" "$INSTDIR\demos"
|
|
|
|
SectionEnd
|
|
|
|
# Descriptions
|
|
LangString DESC_MainProg ${LANG_ENGLISH} "Main program."
|
|
LangString DESC_Demos ${LANG_ENGLISH} "A series of demos to show what LOVE can do."
|
|
|
|
# Assign language strings to sections
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${MainProg} $(DESC_MainProg)
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${Demos} $(DESC_Demos)
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
|
# Uninstall
|
|
Section "Uninstall"
|
|
|
|
# Delete Demos
|
|
Delete $INSTDIR\demos\lovalanche.love
|
|
Delete $INSTDIR\demos\no.love
|
|
Delete $INSTDIR\demos\particles.love
|
|
|
|
RMDir $INSTDIR\demos
|
|
# Program
|
|
Delete $INSTDIR\love.exe
|
|
# Modules
|
|
# Delete $INSTDIR\love_chipmunk.dll
|
|
# Delete $INSTDIR\love_opengl.dll
|
|
# Delete $INSTDIR\love_physfs.dll
|
|
# Delete $INSTDIR\love_sdlkeyboard.dll
|
|
# Delete $INSTDIR\love_sdlmixer.dll
|
|
# Delete $INSTDIR\love_sdlmouse.dll
|
|
# Delete $INSTDIR\love_sdltimer.dll
|
|
# Delete $INSTDIR\love_system.dll
|
|
# DLLs
|
|
Delete $INSTDIR\DevIL.dll
|
|
Delete $INSTDIR\ILU.dll
|
|
Delete $INSTDIR\SDL.dll
|
|
Delete $INSTDIR\SDL_mixer.dll
|
|
Delete $INSTDIR\Microsoft.VC80.CRT.manifest
|
|
Delete $INSTDIR\msvcp80.dll
|
|
Delete $INSTDIR\msvcr80.dll
|
|
# Icons
|
|
Delete $INSTDIR\love.ico
|
|
Delete $INSTDIR\game.ico
|
|
# Text
|
|
Delete $INSTDIR\changes.txt
|
|
Delete $INSTDIR\license.txt
|
|
Delete $INSTDIR\readme.txt
|
|
RMDir $INSTDIR
|
|
|
|
# Start menu
|
|
Delete "$SMPROGRAMS\LOVE\Demos.lnk"
|
|
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 |