179 lines
5.5 KiB
Plaintext
179 lines
5.5 KiB
Plaintext
; Synergy.nsi
|
|
;
|
|
; This script is based on example1.nsi, but it remember the directory,
|
|
; has uninstall support and (optionally) installs start menu shortcuts.
|
|
;
|
|
; It will install makensisw.exe into a directory that the user selects,
|
|
|
|
;--------------------------------
|
|
|
|
; Path to root of tree
|
|
!define DEPTH "..\.."
|
|
|
|
; The name of the installer
|
|
Name "Synergy"
|
|
|
|
; The file to write
|
|
OutFile "${DEPTH}\build\SynergyInstaller.exe"
|
|
|
|
; The default installation directory
|
|
InstallDir $PROGRAMFILES\Synergy
|
|
|
|
; Registry key to check for directory (so if you install again, it will
|
|
; overwrite the old one automatically)
|
|
InstallDirRegKey HKLM "Software\Synergy" "Install_Dir"
|
|
|
|
;--------------------------------
|
|
|
|
; Pages
|
|
|
|
Page components
|
|
Page license
|
|
Page directory
|
|
Page instfiles
|
|
|
|
UninstPage uninstConfirm
|
|
UninstPage instfiles
|
|
|
|
;--------------------------------
|
|
|
|
; Text
|
|
ComponentText "This will install Synergy on your computer. Select the optional components you want to install."
|
|
DirText "Choose a directory to install Synergy to:"
|
|
UninstallText "This will uninstall Synergy from your computer."
|
|
LicenseText "Synergy is distributed under the GNU GPL:"
|
|
LicenseData "COPYING.txt"
|
|
|
|
;--------------------------------
|
|
|
|
; The stuff to install
|
|
Section "Synergy (required)"
|
|
|
|
SectionIn RO
|
|
|
|
; Set output path to the installation directory.
|
|
SetOutPath $INSTDIR
|
|
|
|
; Put files there
|
|
File "${DEPTH}\build\synergy.exe"
|
|
File "${DEPTH}\build\synergyc.exe"
|
|
File "${DEPTH}\build\synergys.exe"
|
|
File "${DEPTH}\build\*.dll"
|
|
File COPYING.txt
|
|
File ChangeLog.txt
|
|
File ${DEPTH}\doc\PORTING
|
|
File ${DEPTH}\doc\about.html
|
|
File ${DEPTH}\doc\authors.html
|
|
File ${DEPTH}\doc\autostart.html
|
|
File ${DEPTH}\doc\banner.html
|
|
File ${DEPTH}\doc\compiling.html
|
|
File ${DEPTH}\doc\configuration.html
|
|
File ${DEPTH}\doc\contact.html
|
|
File ${DEPTH}\doc\developer.html
|
|
File ${DEPTH}\doc\faq.html
|
|
File ${DEPTH}\doc\history.html
|
|
File ${DEPTH}\doc\home.html
|
|
File ${DEPTH}\doc\index.html
|
|
File ${DEPTH}\doc\license.html
|
|
File ${DEPTH}\doc\news.html
|
|
File ${DEPTH}\doc\roadmap.html
|
|
File ${DEPTH}\doc\running.html
|
|
File ${DEPTH}\doc\security.html
|
|
File ${DEPTH}\doc\synergy.css
|
|
File ${DEPTH}\doc\tips.html
|
|
File ${DEPTH}\doc\toc.html
|
|
File ${DEPTH}\doc\trouble.html
|
|
|
|
SetOutPath $INSTDIR\images
|
|
File ${DEPTH}\doc\images\logo.gif
|
|
File ${DEPTH}\doc\images\warp.gif
|
|
|
|
; Write the installation path into the registry
|
|
WriteRegStr HKLM SOFTWARE\Synergy "Install_Dir" "$INSTDIR"
|
|
|
|
; Write the uninstall keys for Windows
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "DisplayName" "Synergy"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoModify" 1
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoRepair" 1
|
|
WriteUninstaller "uninstall.exe"
|
|
|
|
SectionEnd
|
|
|
|
; Optional section (can be disabled by the user)
|
|
Section "Start Menu Shortcuts"
|
|
|
|
CreateDirectory "$SMPROGRAMS\Synergy"
|
|
CreateShortCut "$SMPROGRAMS\Synergy\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
|
|
CreateShortCut "$SMPROGRAMS\Synergy\README.lnk" "$INSTDIR\index.html"
|
|
CreateShortCut "$SMPROGRAMS\Synergy\Synergy Folder.lnk" "$INSTDIR"
|
|
CreateShortCut "$SMPROGRAMS\Synergy\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
|
|
|
SectionEnd
|
|
|
|
; Optional section (can be disabled by the user)
|
|
Section "Desktop Icon"
|
|
|
|
CreateShortCut "$DESKTOP\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
|
|
|
|
SectionEnd
|
|
|
|
;--------------------------------
|
|
|
|
; Uninstaller
|
|
|
|
Section "Uninstall"
|
|
; Stop and uninstall the daemons
|
|
ExecWait '"$INSTDIR\synergy.exe" /uninstall'
|
|
|
|
; Remove autorun registry keys for synergy
|
|
DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Server"
|
|
DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Client"
|
|
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Server"
|
|
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Client"
|
|
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Server"
|
|
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Client"
|
|
|
|
; not all keys will have existed, so errors WILL have happened
|
|
ClearErrors
|
|
|
|
; Remove registry keys
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy"
|
|
DeleteRegKey HKLM SOFTWARE\Synergy
|
|
|
|
ClearErrors
|
|
|
|
; First try to remove files that might be locked (if synergy is running)
|
|
Delete /REBOOTOK $INSTDIR\synergy.exe
|
|
Delete /REBOOTOK $INSTDIR\synergyc.exe
|
|
Delete /REBOOTOK $INSTDIR\synergys.exe
|
|
Delete /REBOOTOK $INSTDIR\synrgyhk.dll
|
|
|
|
; Remove files and directory
|
|
Delete $INSTDIR\*.*
|
|
RMDir $INSTDIR
|
|
|
|
; Remove shortcuts, if any
|
|
Delete "$SMPROGRAMS\Synergy\*.*"
|
|
Delete "$DESKTOP\Synergy.lnk"
|
|
|
|
; Remove directories used
|
|
RMDir "$SMPROGRAMS\Synergy"
|
|
RMDir "$INSTDIR"
|
|
|
|
IfRebootFlag 0 EndOfAll
|
|
MessageBox MB_OKCANCEL "Uninstaller needs to reboot to finish cleaning up. reboot now?" IDCANCEL NoReboot
|
|
ClearErrors
|
|
Reboot
|
|
IfErrors 0 EndOfAll
|
|
MessageBox MB_OK "Uninstaller could not reboot. Please reboot manually. Thank you."
|
|
Abort "Uninstaller could not reboot. Please reboot manually. Thank you."
|
|
NoReboot:
|
|
DetailPrint ""
|
|
DetailPrint "Uninstaller could not reboot. Please reboot manually. Thank you."
|
|
DetailPrint ""
|
|
SetDetailsView show
|
|
EndOfAll:
|
|
|
|
SectionEnd
|