/[svn]/misc/trunk/win32_installer/linuxsampler_all.nsi
ViewVC logotype

Contents of /misc/trunk/win32_installer/linuxsampler_all.nsi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1587 - (show annotations) (download)
Tue Dec 11 16:39:05 2007 UTC (11 years, 8 months ago) by schoenebeck
File size: 10100 byte(s)
* added Windows icon for QSampler

1 ; LinuxSampler Windows installer
2 ;
3 ; Copyright (C) 2007, The LinuxSampler Developers
4 ;
5 ; All-in-one Installer for all subprojects / software components of the
6 ; LinuxSampler Project.
7
8 ; Probably the best compression ratio
9 SetCompressor lzma
10
11 ;Include Modern UI
12 !include "MUI.nsh"
13
14 !define RELEASE_DATE "20071207"
15
16 ; The name of the installer
17 Name "LinuxSampler (${RELEASE_DATE})"
18
19 ; The file to write
20 OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
21
22 ; Java Runtime Environment, needed for JSampler
23 !define JRE_VERSION "1.6"
24 !define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=11292"
25
26 ; The default installation directory
27 InstallDir $PROGRAMFILES\LinuxSampler
28
29 ; Get installation folder from registry if available
30 InstallDirRegKey HKCU "Software\LinuxSampler" ""
31
32 ;--------------------------------
33 ;Interface Settings
34
35 !define MUI_HEADERIMAGE
36 !define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp"
37 !define MUI_ABORTWARNING
38
39 ;--------------------------------
40 ;Version Information
41
42 VIProductVersion "0.0.0.0"
43 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer"
44 VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"
45 VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"
46 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""
47 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "� 2003-2007 The LinuxSampler Project"
48 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"
49 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"
50
51 ;--------------------------------
52 ; Pages
53
54 !insertmacro MUI_PAGE_LICENSE "license.rtf"
55 !insertmacro MUI_PAGE_COMPONENTS
56 !insertmacro MUI_PAGE_DIRECTORY
57 !insertmacro MUI_PAGE_INSTFILES
58 !insertmacro MUI_UNPAGE_CONFIRM
59 !insertmacro MUI_UNPAGE_INSTFILES
60
61 ;--------------------------------
62 ;Languages
63
64 !insertmacro MUI_LANGUAGE "English"
65
66 ;--------------------------------
67
68 Function .onInit
69 Var /GLOBAL installingLinuxSampler
70 Var /GLOBAL installingJSampler
71 Var /GLOBAL installingQSampler
72 Var /GLOBAL installinggigedit
73 StrCpy $installingLinuxSampler "0"
74 StrCpy $installingJSampler "0"
75 StrCpy $installingQSampler "0"
76 StrCpy $installinggigedit "0"
77 FunctionEnd
78
79 ; Check for the presence of gtkmm, and if false, ask the user whether to
80 ; download and install gtkmm now from the internet.
81 Function CheckForGtkmm
82 Var /GLOBAL gtkmmSetupFile
83
84 ClearErrors
85 ; This is just a lazy check for the presence of gtkmm, we should better use:
86 ; System::Call function (NSI internal function) to actually call an arbitrary
87 ; gtkmm function (/method) from a gtkmm DLL to make it certain
88 ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language"
89 IfErrors +2 0
90 goto NoAbort
91 MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm
92 MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
93 Abort ; causes installer to quit
94 InstallGtkmm:
95 ClearErrors
96 StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe
97 NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile
98 IfErrors 0 +2
99 Goto InstallGtkmmFailed
100 ExecWait $gtkmmSetupFile
101 Delete $gtkmmSetupFile ; we don't need it anymore
102 IfErrors 0 +2
103 Goto InstallGtkmmFailed
104 Goto NoAbort
105 InstallGtkmmFailed:
106 MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
107 Abort ; causes installer to quit
108 NoAbort:
109 FunctionEnd
110
111 ; Downloads and launches the JRE installer from the internet
112 Function GetJRE
113 MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \
114 be downloaded and installed"
115
116 StrCpy $2 "$TEMP\Java Runtime Environment.exe"
117 nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
118 Pop $R0 ;Get the return value
119 StrCmp $R0 "success" +3
120 MessageBox MB_OK "Download failed: $R0"
121 Quit
122 ExecWait $2
123 Delete $2
124 FunctionEnd
125
126 ; Checks if the JRE is already installed, if not it will download and install it from the internet
127 Function DetectJRE
128 ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
129 "CurrentVersion"
130 StrCmp $2 ${JRE_VERSION} done
131
132 Call GetJRE
133
134 done:
135 FunctionEnd
136
137 ;--------------------------------
138
139 ; The stuff to install
140 Section "LinuxSampler 0.5.1" SecLinuxSampler
141 StrCpy $installingLinuxSampler "1"
142 ; Set output path to the installation directory.
143 SetOutPath $INSTDIR
144 ; Files to install
145 File linuxsampler.exe
146 File liblinuxsampler-1.dll
147 SectionEnd
148
149 Section "JSampler 'Fantasia' 0.8a" SecJSampler
150 ; make sure JRE is installed
151 Call DetectJRE
152 StrCpy $installingJSampler "1"
153 ; Set output path to the installation directory.
154 SetOutPath $INSTDIR
155 ; Files to install
156 File Fantasia-0.8a.jar
157 File jsampler.ico
158 SectionEnd
159
160 Section "QSampler 0.2.1" SecQSampler
161 StrCpy $installingQSampler "1"
162 ; Set output path to the installation directory.
163 SetOutPath $INSTDIR
164 ; Files to install
165 File qsampler.exe
166 File QtCore4.dll
167 File QtGui4.dll
168 File mingwm10.dll
169 File qsampler.ico
170 SectionEnd
171
172 Section "gigedit 0.1.1" Secgigedit
173 StrCpy $installinggigedit "1"
174 ; make sure gtkmm is installed
175 Call CheckForGtkmm
176 ; Set output path to the installation directory.
177 SetOutPath $INSTDIR
178 ; Files to install
179 File gigedit.exe
180 File libsndfile-1.dll
181 SetOutPath "$INSTDIR\plugins"
182 File libgigedit.dll
183 SectionEnd
184
185 Section "libgig 3.2.1" Seclibgig
186 ; We make this a mandatory component
187 SectionIn RO
188 ; Set output path to the installation directory.
189 SetOutPath $INSTDIR
190 ; Files to install
191 File libgig-6.dll
192 File rifftree.exe
193 File dlsdump.exe
194 File gigdump.exe
195 File gigextract.exe
196 ; As this is a mandatory component, we misuse it to install the uninstaller as well ...
197 ; Write the uninstall keys for Windows
198 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
199 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
200 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
201 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
202 WriteUninstaller "uninstall.exe"
203 ;Store installation folder
204 WriteRegStr HKCU "Software\LinuxSampler" "" $INSTDIR
205 SectionEnd
206
207 Section "Start Menu Shortcuts" SecShortcuts
208
209 CreateDirectory "$SMPROGRAMS\LinuxSampler"
210
211 CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
212
213 StrCmp $installingLinuxSampler '1' 0 +2
214 CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1 (backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0
215
216 StrCmp $installingJSampler '1' 0 +2
217 CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.8a (frontend).lnk' 'javaw' '-jar "$INSTDIR\Fantasia-0.8a.jar"' '$INSTDIR\jsampler.ico' 0
218
219 StrCmp $installingQSampler '1' 0 +2
220 CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
221
222 StrCmp $installinggigedit '1' 0 +2
223 CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.1.1 (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0
224
225 SectionEnd
226
227 ;--------------------------------
228
229 ; Uninstaller
230
231 Section "Uninstall"
232 ; Remove registry keys
233 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
234 ; Remove files and uninstaller
235 Delete $INSTDIR\*.*
236 Delete $INSTDIR\plugins\*.*
237 ; Remove shortcuts, if any
238 Delete "$SMPROGRAMS\LinuxSampler\*.*"
239 ; Remove directories used
240 RMDir "$SMPROGRAMS\LinuxSampler"
241 RMDir "$INSTDIR\plugins"
242 RMDir "$INSTDIR"
243 SectionEnd
244
245 ;--------------------------------
246 ;Descriptions
247
248 ;Language strings
249 LangString DESC_SecLinuxSampler ${LANG_ENGLISH} "Sampler backend, including sampler engine, MIDI and audio drivers, native C++ API as well as network (LSCP) API. Use a frontend application like JSampler or QSampler to control the sampler."
250 LangString DESC_SecJSampler ${LANG_ENGLISH} "Graphical frontend (user interface) for LinuxSampler written in Java, supporting all current features of LinuxSampler. This is the 'Fantasia' distribution of JSampler, offering a modern skin based look."
251 LangString DESC_SecQSampler ${LANG_ENGLISH} "Graphical light-weight frontend (user interface) for LinuxSampler written in C++, offering a fast native user interface. NOTE: QSampler doesn't support all LinuxSampler features yet!"
252 LangString DESC_Secgigedit ${LANG_ENGLISH} "Graphical instrument editor for Gigasampler format v2 and v3 files. Can be used stand-alone or in conjunction with LinuxSampler. NOTE: this is yet an early development version!"
253 LangString DESC_Seclibgig ${LANG_ENGLISH} "C++ program library for accessing DLS (Level 1 and Level 2) and Gigasampler format (v2 and v3) files. This library is required by LinuxSampler, gigedit and QSampler."
254 LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
255
256 ;Assign language strings to sections
257 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
258 !insertmacro MUI_DESCRIPTION_TEXT ${SecLinuxSampler} $(DESC_SecLinuxSampler)
259 !insertmacro MUI_DESCRIPTION_TEXT ${SecJSampler} $(DESC_SecJSampler)
260 !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
261 !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
262 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
263 !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
264 !insertmacro MUI_FUNCTION_DESCRIPTION_END

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC