1 #------------------------------------------------------------------------------
3 !include "LogicLib.nsh"
5 !define UNINSTALL_REG_ROOT \
6 "Software\Microsoft\Windows\CurrentVersion\Uninstall\Neverball"
8 #------------------------------------------------------------------------------
10 OutFile "../neverball-${VERSION}-setup.exe"
11 Name "Neverball ${VERSION}"
12 LicenseData "COPYING.txt"
13 InstallDir "$PROGRAMFILES\Neverball"
17 #------------------------------------------------------------------------------
28 SetShellVarContext all
32 Section "Neverball/Neverputt"
38 File /oname=AUTHORS.txt doc\AUTHORS.txt
39 File /oname=MANUAL.txt doc\MANUAL.txt
41 File /r /x .svn /x *.map /x obj data
44 File neverball.exe neverputt.exe *.dll
46 File /oname=data\icon\neverball.ico dist\newneverball.ico
47 File /oname=data\icon\neverputt.ico dist\newneverputt.ico
49 WriteUninstaller $INSTDIR\uninstall.exe
52 # http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs
54 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
55 "DisplayName" "Neverball ${VERSION}"
56 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
57 "DisplayVersion" "${VERSION}"
58 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
59 "DisplayIcon" "$INSTDIR\data\icon\neverball.ico"
60 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
61 "UninstallString" "$INSTDIR\uninstall.exe"
62 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
63 "URLInfoAbout" "http://www.neverball.org/"
64 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
65 "URLUpdateInfo" "http://www.neverball.org/"
66 WriteRegStr SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
67 "HelpLink" "http://www.nevercorner.net/"
68 WriteRegDWORD SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
70 WriteRegDWORD SHELL_CONTEXT ${UNINSTALL_REG_ROOT} \
74 Section "Mapping tools (compiler, maps, ...)"
79 SetOutPath "$INSTDIR\data"
81 File /r /x ".svn" data\*.map
82 File /r /x ".svn" data\obj
85 SectionGroup "Create shortcuts"
86 Section "In Start menu"
87 # Reset to get a proper working directory for short-cuts
90 CreateDirectory "$SMPROGRAMS\Games"
93 "$SMPROGRAMS\Games\Neverball.lnk" \
94 "$INSTDIR\neverball.exe" "" \
95 "$INSTDIR\data\icon\neverball.ico"
98 "$SMPROGRAMS\Games\Neverputt.lnk" \
99 "$INSTDIR\neverputt.exe" "" \
100 "$INSTDIR\data\icon\neverputt.ico"
104 # Reset to get a proper working directory for short-cuts
108 "$DESKTOP\Neverball.lnk" \
109 "$INSTDIR\neverball.exe" "" \
110 "$INSTDIR\data\icon\neverball.ico"
113 "$DESKTOP\Neverputt.lnk" \
114 "$INSTDIR\neverputt.exe" "" \
115 "$INSTDIR\data\icon\neverputt.ico"
119 #------------------------------------------------------------------------------
121 UninstPage uninstConfirm
128 SetShellVarContext all
133 Delete "$SMPROGRAMS\Games\Neverball.lnk"
134 Delete "$SMPROGRAMS\Games\Neverputt.lnk"
135 RMDir "$SMPROGRAMS\Games"
136 Delete "$DESKTOP\Neverball.lnk"
137 Delete "$DESKTOP\Neverputt.lnk"
139 DeleteRegKey SHELL_CONTEXT ${UNINSTALL_REG_ROOT}
141 # FIXME: unsafe if the directory contains other-than-installed stuff
145 #------------------------------------------------------------------------------
147 # URL: http://nsis.sourceforge.net/IsUserAdmin
148 # Author: Lilla (lilla@earthlink.net) 2003-06-13
150 !macro IsUserAdmin un
151 Function ${un}IsUserAdmin
160 UserInfo::GetAccountType
163 StrCmp $R2 "Admin" 0 Continue
183 !insertmacro IsUserAdmin ""
184 !insertmacro IsUserAdmin "un."
186 #------------------------------------------------------------------------------
188 # vim:sts=4:sw=4:et:nowrap: