-
Notifications
You must be signed in to change notification settings - Fork 1
/
install.nsi
118 lines (84 loc) · 3.17 KB
/
install.nsi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
!include "Sections.nsh"
; The name of the installer
Name "Serenity Audio Player"
SetCompressor LZMA
!define /date BUILDDATE "%Y%m%d"
!IFNDEF PACKARCH
!define PACKARCH "-win32"
!ENDIF
!IFDEF SHIPPDB
!define DEBUGTAG "-debug"
!ELSE
!define DEBUGTAG ""
!ENDIF
!IFDEF UNICODE
!define UNICODETAG "-unicode"
!ELSE
!define UNICODETAG ""
!ENDIF
; The file to write
OutFile "serenity${PACKARCH}-installer${UNICODETAG}${DEBUGTAG}-${BUILDDATE}.exe"
; The default installation directory
InstallDir $PROGRAMFILES\Serenity
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Serenity Audio Player" "Install_Dir"
;--------------------------------
; Pages
Page license
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
LicenseText "This software is licensed under the GPL, which attaches some conditions to modification and distribution (but not to use.) Please read the full text for these conditions."
LicenseData "LICENSE"
;--------------------------------
RequestExecutionLevel user
; The stuff to install
Section "Serenity (required)"
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Install to per-user start menu so we don't require admin privs
; Note admin is still required for add/remove programs support
SetShellVarContext current
; Put file there
File "serenity.exe"
!IFDEF SHIPPDB
File "serenity.pdb"
!ENDIF
; Write the installation path into the registry
WriteRegStr HKLM "SOFTWARE\Serenity Audio Player" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SerenityAudio" "DisplayName" "Serenity Audio Player"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SerenityAudio" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SerenityAudio" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SerenityAudio" "NoRepair" 1
WriteUninstaller "uninstall.exe"
CreateDirectory "$SMPROGRAMS\Serenity Audio Player"
CreateShortCut "$SMPROGRAMS\Serenity Audio Player\Serenity Audio Player.lnk" "$INSTDIR\serenity.exe" "" "$INSTDIR\serenity.exe" 0
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Install to per-user start menu so we don't require admin privs
; Note admin is still required for add/remove programs support
SetShellVarContext current
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\SerenityAudio"
DeleteRegKey HKLM "SOFTWARE\Serenity Audio Player"
; Remove files and uninstaller
Delete $INSTDIR\serenity.exe
!IFDEF SHIPPDB
Delete $INSTDIR\serenity.pdb
!ENDIF
Delete $INSTDIR\uninstall.exe
; Remove shortcuts, if any
Delete "$SMPROGRAMS\Serenity Audio Player\Serenity Audio Player.lnk"
Delete "$SMPROGRAMS\Serenity Audio Player\*.*"
; Remove directories used
RMDir "$SMPROGRAMS\Serenity Audio Player"
RMDir "$INSTDIR"
SectionEnd