installer: write shortcuts to all-users, show uninstall notes, naming cleanups
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2811 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
+105
-31
@@ -35,6 +35,40 @@ Function openLinkNewWindow
|
||||
Pop $3
|
||||
FunctionEnd
|
||||
|
||||
# Uses $0
|
||||
Function un.openLinkNewWindow
|
||||
Push $3
|
||||
Push $2
|
||||
Push $1
|
||||
Push $0
|
||||
ReadRegStr $0 HKCR "http\shell\open\command" ""
|
||||
# Get browser path
|
||||
DetailPrint $0
|
||||
StrCpy $2 '"'
|
||||
StrCpy $1 $0 1
|
||||
StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char
|
||||
StrCpy $2 ' '
|
||||
StrCpy $3 1
|
||||
loop:
|
||||
StrCpy $1 $0 1 $3
|
||||
DetailPrint $1
|
||||
StrCmp $1 $2 found
|
||||
StrCmp $1 "" found
|
||||
IntOp $3 $3 + 1
|
||||
Goto loop
|
||||
|
||||
found:
|
||||
StrCpy $1 $0 $3
|
||||
StrCmp $2 " " +2
|
||||
StrCpy $1 '$1"'
|
||||
|
||||
Pop $0
|
||||
Exec '$1 $0'
|
||||
Pop $1
|
||||
Pop $2
|
||||
Pop $3
|
||||
FunctionEnd
|
||||
|
||||
|
||||
; CONFIGURATION
|
||||
|
||||
@@ -43,12 +77,17 @@ SetCompressor /SOLID lzma
|
||||
|
||||
!define CURPATH "R:\projects\ActionCube\ac\source\vcpp\buildEnv" ; CHANGE ME
|
||||
!define AC_VERSION "v1.0"
|
||||
!define AC_SHORTNAME "AssaultCube"
|
||||
!define AC_FULLNAME "AssaultCube v1.0"
|
||||
!define AC_FULLNAMESAVE "AssaultCube_v1.0"
|
||||
|
||||
; general
|
||||
|
||||
Name "AssaultCube"
|
||||
OutFile "AssaultCube_${AC_VERSION}.exe"
|
||||
InstallDir "$PROGRAMFILES\AssaultCube"
|
||||
InstallDirRegKey HKCU "Software\AssaultCube" ""
|
||||
|
||||
InstallDir "$PROGRAMFILES\${AC_FULLNAMESAVE}"
|
||||
InstallDirRegKey HKCU "Software\${AC_FULLNAMESAVE}" ""
|
||||
RequestExecutionLevel admin ; require admin in vista
|
||||
|
||||
; Interface Configuration
|
||||
|
||||
@@ -80,7 +119,7 @@ UninstallIcon "${CURPATH}\icon.ico"
|
||||
|
||||
; Installer Sections
|
||||
|
||||
Section "AssaultCube 1.0" AC
|
||||
Section "AssaultCube v1.0" AC
|
||||
|
||||
SectionIn RO
|
||||
|
||||
@@ -88,23 +127,23 @@ Section "AssaultCube 1.0" AC
|
||||
|
||||
File /r ac\*.*
|
||||
|
||||
WriteRegStr HKCU "Software\AssaultCube" "" $INSTDIR
|
||||
WriteRegStr HKCU "Software\${AC_FULLNAMESAVE}" "" $INSTDIR
|
||||
|
||||
; Create uninstaller
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "DisplayName" "AssaultCube ${AC_VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "DisplayIcon" '"$INSTDIR\icon.ico"'
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "DisplayName" "${AC_FULLNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "DisplayIcon" '"$INSTDIR\icon.ico"'
|
||||
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "HelpLink" "http://assault.cubers.net/help.html"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "URLInfoAbout" "http://assault.cubers.net"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "URLUpdateInfo" "http://assault.cubers.net/download.html"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "HelpLink" "http://assault.cubers.net/help.html"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "URLInfoAbout" "http://assault.cubers.net"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "URLUpdateInfo" "http://assault.cubers.net/download.html"
|
||||
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "DisplayVersion" "v1.0"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "VersionMajor" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "VersionMinor" 0
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "DisplayVersion" "v1.0"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "VersionMajor" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "VersionMinor" 0
|
||||
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube" "NoRepair" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}" "NoRepair" 1
|
||||
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
@@ -132,21 +171,24 @@ Section "Multiuser Support (recommended)" MULTIUSER
|
||||
; configures the .bat file to store configs in the appdata directory
|
||||
|
||||
FileOpen $9 "$INSTDIR\AssaultCube.bat" w
|
||||
FileWrite $9 "bin_win32\ac_client.exe --home=$\"%appdata%\AssaultCube_v1.0$\" --init %1 %2 %3 %4 %5$\r$\n"
|
||||
FileWrite $9 "bin_win32\ac_client.exe --home=$\"%appdata%\${AC_FULLNAMESAVE}$\" --init %1 %2 %3 %4 %5$\r$\n"
|
||||
FileWrite $9 "pause$\r$\n"
|
||||
FileClose $9
|
||||
|
||||
; link to it
|
||||
CreateShortCut "$INSTDIR\User Directory.lnk" "%appdata%\AssaultCube_v1.0" "" "" 0
|
||||
|
||||
CreateShortCut "$INSTDIR\User Data.lnk" "%appdata%\${AC_FULLNAMESAVE}" "" "" 0
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Start Menu Shortcuts" SHORTCUTS
|
||||
Section "Start Menu Shortcuts" PROGSHORTCUTS
|
||||
|
||||
CreateDirectory "$SMPROGRAMS\AssaultCube"
|
||||
CreateShortCut "$SMPROGRAMS\AssaultCube\AssaultCube.lnk" "$INSTDIR\AssaultCube.bat" "" "$INSTDIR\icon.ico" 0 SW_SHOWMINIMIZED
|
||||
CreateShortCut "$SMPROGRAMS\AssaultCube\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
||||
CreateShortCut "$SMPROGRAMS\AssaultCube\README.lnk" "$INSTDIR\README.html" "" "" 0
|
||||
SetShellVarContext all
|
||||
|
||||
CreateDirectory "$SMPROGRAMS\${AC_SHORTNAME}"
|
||||
CreateShortCut "$SMPROGRAMS\${AC_SHORTNAME}\${AC_SHORTNAME}.lnk" "$INSTDIR\AssaultCube.bat" "" "$INSTDIR\icon.ico" 0 SW_SHOWMINIMIZED
|
||||
CreateShortCut "$SMPROGRAMS\${AC_SHORTNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
||||
CreateShortCut "$SMPROGRAMS\${AC_SHORTNAME}\README.lnk" "$INSTDIR\README.html" "" "" 0
|
||||
|
||||
; create link to user settings dir if the multiuser-setting is selected
|
||||
|
||||
@@ -155,20 +197,51 @@ Section "Start Menu Shortcuts" SHORTCUTS
|
||||
IntCmp $0 ${SF_SELECTED} CreateUserSettingsShortCut SkipCreateUserSettingsShortCut
|
||||
|
||||
CreateUserSettingsShortCut:
|
||||
CreateShortCut "$SMPROGRAMS\AssaultCube\User Directory.lnk" "%appdata%\AssaultCube_v1.0" "" "" 0
|
||||
CreateShortCut "$SMPROGRAMS\AssaultCube\AssaultCube User Data.lnk" "%appdata%\${AC_FULLNAMESAVE}" "" "" 0
|
||||
SkipCreateUserSettingsShortCut:
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Desktop Shortcuts" DESKSHORTCUTS
|
||||
|
||||
SetShellVarContext all
|
||||
|
||||
CreateShortCut "$DESKTOP\${AC_SHORTNAME}.lnk" "$INSTDIR\AssaultCube.bat" "" "$INSTDIR\icon.ico" 0 SW_SHOWMINIMIZED
|
||||
|
||||
; create link to user settings dir if the multiuser-setting is selected
|
||||
|
||||
SectionGetFlags ${Multiuser} $0
|
||||
IntOp $0 $0 & ${SF_SELECTED}
|
||||
IntCmp $0 ${SF_SELECTED} CreateUserSettingsShortCut SkipCreateUserSettingsShortCut
|
||||
|
||||
CreateUserSettingsShortCut:
|
||||
CreateShortCut "$DESKTOP\AssaultCube User Data.lnk" "%appdata%\${AC_FULLNAMESAVE}" "" "" 0
|
||||
SkipCreateUserSettingsShortCut:
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Uninstall"
|
||||
|
||||
SetShellVarContext all
|
||||
|
||||
; delete reg keys
|
||||
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AC_FULLNAMESAVE}"
|
||||
DeleteRegKey HKLM "SOFTWARE\${AC_FULLNAMESAVE}"
|
||||
DeleteRegKey /ifempty HKCU "SOFTWARE\${AC_FULLNAMESAVE}"
|
||||
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AssaultCube"
|
||||
DeleteRegKey HKLM SOFTWARE\AssaultCube
|
||||
|
||||
RMDir /r "$SMPROGRAMS\AssaultCube"
|
||||
; delete directory
|
||||
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
DeleteRegKey /ifempty HKCU "Software\AssaultCube"
|
||||
; delete shortcuts
|
||||
|
||||
RMDir /r "$SMPROGRAMS\${AC_SHORTNAME}"
|
||||
Delete "$DESKTOP\AssaultCube.lnk"
|
||||
Delete "$DESKTOP\AssaultCube User Data.lnk"
|
||||
|
||||
StrCpy $0 "http://assault.cubers.net/uninstallnotes/v1.0/"
|
||||
Call un.openLinkNewWindow
|
||||
|
||||
SectionEnd
|
||||
|
||||
@@ -180,8 +253,9 @@ SectionEnd
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${AC} "Installs the required AssaultCube core files"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${VCPP} "Installs the runtime to make AssaultCube run on your computer"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${OAL} "Installs a sound library for 3D audio"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SHORTCUTS} "Creates shortcuts in your Startmenu"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${MULTIUSER} "Configures AssaultCube to store its configuration in user-profiles"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${MULTIUSER} "Stores configuration and downloaded maps in %APPDATA%"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${PROGSHORTCUTS} "Creates shortcuts in your Startmenu"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${DESKSHORTCUTS} "Creates shortcuts on your Desktop"
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
|
||||
Reference in New Issue
Block a user