1 |
; gigedit Windows installer |
2 |
|
3 |
; The name of the installer |
4 |
Name "gigedit @GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@" |
5 |
|
6 |
; The file to write |
7 |
OutFile "gigedit_@GIGEDIT_VER_MAJOR@_@GIGEDIT_VER_MINOR@_@GIGEDIT_VER_RELEASE@_setup.exe" |
8 |
|
9 |
; The default installation directory |
10 |
InstallDir $PROGRAMFILES\gigedit |
11 |
|
12 |
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" |
13 |
|
14 |
; Probably the best compression ratio |
15 |
SetCompressor lzma |
16 |
|
17 |
;-------------------------------- |
18 |
;Version Information |
19 |
|
20 |
VIProductVersion "@GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@.0" |
21 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "gigedit" |
22 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "a Gigasampler file editor" |
23 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project" |
24 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "" |
25 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2006,2007 Andreas Persson" |
26 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "gigedit @GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@ installer" |
27 |
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "@GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@" |
28 |
|
29 |
;-------------------------------- |
30 |
|
31 |
; Pages |
32 |
|
33 |
Page components |
34 |
Page directory |
35 |
Page instfiles |
36 |
|
37 |
UninstPage uninstConfirm |
38 |
UninstPage instfiles |
39 |
|
40 |
;-------------------------------- |
41 |
|
42 |
; Check for the presence of gtkmm, and if false, ask the user whether to |
43 |
; download and install gtkmm now from the internet. |
44 |
Function .onInit |
45 |
Var /GLOBAL gtkmmSetupFile |
46 |
|
47 |
; This is just a lazy check for the presence of gtkmm, we should better use: |
48 |
; System::Call function (NSI internal function) to actually call an arbitrary |
49 |
; gtkmm function (/method) from a gtkmm DLL to make it certain |
50 |
ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language" |
51 |
IfErrors +2 0 |
52 |
goto NoAbort |
53 |
MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm |
54 |
MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort |
55 |
Abort ; causes installer to quit |
56 |
InstallGtkmm: |
57 |
ClearErrors |
58 |
StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe |
59 |
NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile |
60 |
IfErrors 0 +2 |
61 |
Goto InstallGtkmmFailed |
62 |
ExecWait $gtkmmSetupFile |
63 |
Delete $gtkmmSetupFile ; we don't need it anymore |
64 |
IfErrors 0 +2 |
65 |
Goto InstallGtkmmFailed |
66 |
Goto NoAbort |
67 |
InstallGtkmmFailed: |
68 |
MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort |
69 |
Abort ; causes installer to quit |
70 |
NoAbort: |
71 |
FunctionEnd |
72 |
|
73 |
;-------------------------------- |
74 |
|
75 |
; The stuff to install |
76 |
Section "gigedit @GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@" |
77 |
|
78 |
SectionIn RO |
79 |
|
80 |
; Set output path to the installation directory. |
81 |
SetOutPath $INSTDIR |
82 |
|
83 |
; Put files there |
84 |
File gigedit.exe |
85 |
File libgigedit.dll |
86 |
File libgig.dll |
87 |
File libsndfile-1.dll |
88 |
File ..\COPYING |
89 |
File ..\README |
90 |
File ..\NEWS |
91 |
File ..\ChangeLog |
92 |
File ..\AUTHORS |
93 |
|
94 |
; Write the uninstall keys for Windows |
95 |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\gigedit" "DisplayName" "gigedit @GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@" |
96 |
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\gigedit" "UninstallString" '"$INSTDIR\uninstall.exe"' |
97 |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\gigedit" "NoModify" 1 |
98 |
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\gigedit" "NoRepair" 1 |
99 |
WriteUninstaller "uninstall.exe" |
100 |
|
101 |
SectionEnd ; end the section |
102 |
|
103 |
; Optional section (can be disabled by the user) |
104 |
Section "Start Menu Shortcuts" |
105 |
|
106 |
CreateDirectory "$SMPROGRAMS\gigedit" |
107 |
CreateShortCut "$SMPROGRAMS\gigedit\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 |
108 |
CreateShortCut "$SMPROGRAMS\gigedit\gigedit @GIGEDIT_VER_MAJOR@.@GIGEDIT_VER_MINOR@.@GIGEDIT_VER_RELEASE@.lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0 |
109 |
|
110 |
SectionEnd |
111 |
|
112 |
;-------------------------------- |
113 |
|
114 |
; Uninstaller |
115 |
|
116 |
Section "Uninstall" |
117 |
|
118 |
; Remove registry keys |
119 |
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\gigedit" |
120 |
|
121 |
; Remove files and uninstaller |
122 |
Delete $INSTDIR\uninstall.exe |
123 |
Delete $INSTDIR\gigedit.exe |
124 |
Delete $INSTDIR\libgigedit.dll |
125 |
Delete $INSTDIR\libgig.dll |
126 |
Delete $INSTDIR\libsndfile-1.dll |
127 |
Delete $INSTDIR\COPYING |
128 |
Delete $INSTDIR\README |
129 |
Delete $INSTDIR\NEWS |
130 |
Delete $INSTDIR\ChangeLog |
131 |
Delete $INSTDIR\AUTHORS |
132 |
|
133 |
; Remove shortcuts, if any |
134 |
Delete "$SMPROGRAMS\gigedit\*.*" |
135 |
|
136 |
; Remove directories used |
137 |
RMDir "$SMPROGRAMS\gigedit" |
138 |
RMDir "$INSTDIR" |
139 |
|
140 |
SectionEnd |