/[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 1926 - (show annotations) (download)
Thu Jul 2 16:11:49 2009 UTC (14 years, 8 months ago) by schoenebeck
File size: 22765 byte(s)
* changes for the 2nd Windows pre-release installer (now including
  DB instruments support for Windows)

1 ; LinuxSampler Windows installer
2 ;
3 ; Copyright (C) 2007-2009, The LinuxSampler Developers
4 ;
5 ; All-in-one Installer for all subprojects / software components of the
6 ; LinuxSampler Project.
7 ;
8 ; PREREQUISITES:
9 ;
10 ; -> You must install the file cpudesc\cpudesc.dll into the NSIS's
11 ; plugin directory before being able to compile this installer!
12 ;
13 ; -> The compiled binaries must be placed into the respective directories
14 ; under bin\ (you have to read this file in order to get those exact
15 ; locations and expected file names).
16
17 ; Probably the best compression ratio
18 SetCompressor lzma
19
20 ;Include Modern UI
21 !include "MUI.nsh"
22 !include "EnvVarUpdate.nsh"
23
24 !define RELEASE_DATE "20090623"
25
26 ; The name of the installer
27 Name "LinuxSampler (${RELEASE_DATE})"
28
29 ; The file to write
30 OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
31
32 ; Java Runtime Environment, needed for JSampler
33 !define JRE_VERSION "1.6"
34 !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31621"
35 !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31623"
36
37 ; The default installation directory
38 InstallDir "$PROGRAMFILES64\LinuxSampler"
39
40 !define DEFAULT_VST_DIR "$PROGRAMFILES64\Steinberg\VstPlugins"
41
42 ; Get installation folder from registry if available
43 InstallDirRegKey HKLM "Software\LinuxSampler" "Main Directory"
44
45 ;--------------------------------
46 ;Interface Settings
47
48 !define MUI_HEADERIMAGE
49 !define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp"
50 !define MUI_ABORTWARNING
51
52 ;--------------------------------
53 ;Version Information
54
55 VIProductVersion "0.0.0.0"
56 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer"
57 VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"
58 VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"
59 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""
60 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "� 2003-2009 The LinuxSampler Project"
61 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"
62 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"
63
64 !define BIN_TYPE_64BIT "64 bit"
65 !define BIN_TYPE_686SSE "686 SSE"
66 !define BIN_TYPE_686 "686"
67
68 Var /GLOBAL binType
69
70 ;--------------------------------
71 ; Pages
72
73 !insertmacro MUI_PAGE_LICENSE "license.rtf"
74 !insertmacro MUI_PAGE_COMPONENTS
75 !insertmacro MUI_PAGE_DIRECTORY
76 !insertmacro MUI_PAGE_INSTFILES
77 !insertmacro MUI_UNPAGE_CONFIRM
78 !insertmacro MUI_UNPAGE_INSTFILES
79
80 ;--------------------------------
81 ;Languages
82
83 !insertmacro MUI_LANGUAGE "English"
84
85 ;--------------------------------
86
87 Function .onInit
88 Var /GLOBAL installingLinuxSampler
89 Var /GLOBAL installingJSampler
90 Var /GLOBAL installingQSampler
91 Var /GLOBAL installinggigedit
92 StrCpy $installingLinuxSampler "0"
93 StrCpy $installingJSampler "0"
94 StrCpy $installingQSampler "0"
95 StrCpy $installinggigedit "0"
96 FunctionEnd
97
98 ; detects CPU capabilities, determmines which native binary type to install
99 ; and selects the appropriate windows registry view (32 bit or 64 bit)
100 !macro DetectSystemType un
101 Function ${un}DetectSystemType
102 ; check if this is a 64 bit windows
103 System::Call "kernel32::GetCurrentProcess() i .s"
104 System::Call "kernel32::IsWow64Process(i s, *i .r0)"
105 IntCmp $0 0 not64bit
106 StrCpy $binType BIN_TYPE_64BIT
107 DetailPrint "64 bit Windows detected."
108 SetRegView 64
109 Goto DetectSystemDone
110
111 not64bit: ; a 32 bit system
112
113 SetRegView 32
114
115 ; check if CPU supports SSE
116 cpudesc::tell
117 Pop $0 ; full identification string in $0
118 StrCpy $1 $0 1, 34 ; pull out one character after SSE=
119 IntFmt $2 "%u" $1 ; and turn it into a number
120 IntCmpU $2 1 +1 +4 +4
121 StrCpy $binType BIN_TYPE_686SSE
122 DetailPrint "32 bit Windows, SSE CPU detected."
123 Goto DetectSystemDone
124 StrCpy $binType BIN_TYPE_686
125 DetailPrint "32 bit Windows (no SSE support) detected."
126
127 DetectSystemDone:
128 FunctionEnd
129 !macroend
130 !insertmacro DetectSystemType ""
131 !insertmacro DetectSystemType "un."
132
133 ; Check for the presence of gtkmm, and if false, ask the user whether to
134 ; download and install gtkmm now from the internet.
135 Function CheckForGtkmm
136 Var /GLOBAL gtkmmSetupFile
137
138 ClearErrors
139 ; This is just a lazy check for the presence of gtkmm, we should better use:
140 ; System::Call function (NSI internal function) to actually call an arbitrary
141 ; gtkmm function (/method) from a gtkmm DLL to make it certain
142 ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language"
143 IfErrors +2 0
144 goto NoAbort
145 MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm
146 MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
147 Abort ; causes installer to quit
148 InstallGtkmm:
149 ClearErrors
150 StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe
151 NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile
152 IfErrors 0 +2
153 Goto InstallGtkmmFailed
154 ExecWait $gtkmmSetupFile
155 Delete $gtkmmSetupFile ; we don't need it anymore
156 IfErrors 0 +2
157 Goto InstallGtkmmFailed
158 Goto NoAbort
159 InstallGtkmmFailed:
160 MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
161 Abort ; causes installer to quit
162 NoAbort:
163 FunctionEnd
164
165 ; Downloads and launches the JRE installer from the internet
166 Function GetJRE
167 Var /GLOBAL jreUri
168
169 StrCmp $binType BIN_TYPE_64BIT 0 +3
170 StrCpy $jreUri ${JRE_64_URL}
171 Goto +2
172 StrCpy $jreUri ${JRE_32_URL}
173
174 DetailPrint "Downloading JRE from: $jreUri"
175
176 MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \
177 be downloaded and installed"
178
179 StrCpy $2 "$TEMP\Java Runtime Environment.exe"
180 nsisdl::download /TIMEOUT=30000 "$jreUri" $2
181 Pop $R0 ; Get the return value
182 StrCmp $R0 "success" +3
183 MessageBox MB_OK "Download failed: $R0"
184 Quit
185 ExecWait $2
186 Delete $2
187 FunctionEnd
188
189 ; Checks if the JRE is already installed, if not it will download and install it from the internet
190 Function DetectJRE
191 ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
192 "CurrentVersion"
193 StrCmp $2 ${JRE_VERSION} done
194
195 StrCmp $binType BIN_TYPE_64BIT 0 downloadjre
196
197 ; on 64 bit systems also check the 32 bit view of the registry, maybe
198 ; a 32 bit JRE was already installed
199 SetRegView 32
200 ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
201 "CurrentVersion"
202 SetRegView 64 ; restore 64 bit view
203 StrCmp $3 ${JRE_VERSION} done
204
205 downloadjre:
206 Call GetJRE
207
208 done:
209 FunctionEnd
210
211 ; Tries to find the location where VST plugins should be installed to
212 Function DetectVstPath
213 Var /GLOBAL vstPluginPath
214
215 ClearErrors
216 ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
217 IfErrors check2ndRegistryKey 0
218 StrCpy $vstPluginPath $0
219 DetailPrint "Found VST plugin directory in HKCU registry."
220 Goto done
221
222 check2ndRegistryKey:
223 ClearErrors
224 ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
225 IfErrors noRegistryKeyExists 0
226 StrCpy $vstPluginPath $0
227 DetailPrint "Found VST plugin directory in HKLM registry."
228 Goto done
229
230 noRegistryKeyExists:
231 ClearErrors
232 DetailPrint "No VST plugin directory defined in registry."
233 StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
234
235 done:
236 DetailPrint "Using the following as VST plugin directory: $vstPluginPath"
237 FunctionEnd
238
239 ;--------------------------------
240
241 ; primer things to do (before installing, not called on uninstall)
242 Section ""
243 Call DetectSystemType
244 Call DetectVstPath
245 SectionEnd
246
247 ;--------------------------------
248
249 ; The stuff to install
250 Section "LinuxSampler 0.5.1.12cvs" SecLinuxSampler
251 DetailPrint "Installing LinuxSampler binaries ..."
252 StrCpy $installingLinuxSampler "1"
253
254 ; Set output path to the installation directory.
255 SetOutPath $INSTDIR
256
257 StrCmp $binType BIN_TYPE_64BIT linuxsampler64
258 StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
259 Goto linuxsampler686
260
261 ; Files to install
262
263 linuxsampler64:
264 File bin\64\linuxsampler.exe
265 File bin\64\liblinuxsampler-1.dll
266 File bin\64\libsqlite3-0.dll
267 SetOutPath $vstPluginPath
268 File bin\64\LinuxSampler.dll
269 Goto done
270
271 linuxsampler686sse:
272 File bin\686sse\linuxsampler.exe
273 File bin\686sse\liblinuxsampler-1.dll
274 File bin\686\libsqlite3-0.dll
275 SetOutPath $vstPluginPath
276 File bin\686sse\LinuxSampler.dll
277 Goto done
278
279 linuxsampler686:
280 File bin\686\linuxsampler.exe
281 File bin\686\liblinuxsampler-1.dll
282 File bin\686\libsqlite3-0.dll
283 SetOutPath $vstPluginPath
284 File bin\686\LinuxSampler.dll
285 Goto done
286
287 done:
288 SectionEnd
289
290 Section "JSampler 'Fantasia' 0.8a-cvs8" SecJSampler
291 DetailPrint "Installing JSampler binaries ..."
292 ; make sure JRE is installed
293 Call DetectJRE
294 StrCpy $installingJSampler "1"
295 ; Set output path to the installation directory.
296 SetOutPath $INSTDIR
297 ; Files to install
298 File bin\Fantasia-0.8a-cvs8.jar
299 File jsampler.ico
300 SectionEnd
301
302 Section "QSampler 0.2.1.26" SecQSampler
303 DetailPrint "Installing QSampler binaries ..."
304 StrCpy $installingQSampler "1"
305 ; Set output path to the installation directory.
306 SetOutPath $INSTDIR
307 ; Files to install
308 File bin\686\qsampler.exe
309 File bin\686\QtCore4.dll
310 File bin\686\QtGui4.dll
311 File bin\686\mingwm10.dll
312 File qsampler.ico
313 SetOutPath $INSTDIR\share\locale
314 File bin\686\share\locale\qsampler_ru.qm
315 SectionEnd
316
317 Section "gigedit 0.1.1.x (cvs2009-05-10)" Secgigedit
318 DetailPrint "Installing gigedit binaries ..."
319 StrCpy $installinggigedit "1"
320
321 ; make sure gtkmm is installed
322 ; (commented out for now, since we include gtk(mm) DLLs with this
323 ; installer, so no check and no download necessary ATM)
324 ;Call CheckForGtkmm
325
326 ; Set output path to the installation directory.
327 SetOutPath $INSTDIR
328
329 StrCmp $binType BIN_TYPE_64BIT gigedit64
330 ; I think we don't need a SSE optimized 32 bit binary for gigedit, one 64bit and one simple 32 bit version should be sufficient
331 ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
332 Goto gigedit686
333
334 ; Files to install
335
336 gigedit64:
337 File bin\64\gigedit.exe
338 File bin\64\libgigedit-1.dll
339 SetOutPath "$INSTDIR\plugins"
340 File bin\64\plugins\libgigeditlinuxsamplerplugin-1.dll
341 SetOutPath $INSTDIR
342 File bin\64\libatk-1.0-0.dll
343 File bin\64\libatkmm-1.6-1.dll
344 File bin\64\libcairo-2.dll
345 File bin\64\libcairomm-1.0-1.dll
346 File bin\64\libgdkmm-2.4-1.dll
347 File bin\64\libgdk_pixbuf-2.0-0.dll
348 File bin\64\libgdk-win32-2.0-0.dll
349 File bin\64\libgio-2.0-0.dll
350 File bin\64\libgiomm-2.4-1.dll
351 File bin\64\libglib-2.0-0.dll
352 File bin\64\libglibmm-2.4-1.dll
353 File bin\64\libgmodule-2.0-0.dll
354 File bin\64\libgobject-2.0-0.dll
355 File bin\64\libgthread-2.0-0.dll
356 File bin\64\libgtkmm-2.4-1.dll
357 File bin\64\libgtk-win32-2.0-0.dll
358 File bin\64\libintl-8.dll
359 File bin\64\libjpeg-62.dll
360 File bin\64\libpango-1.0-0.dll
361 File bin\64\libpangocairo-1.0-0.dll
362 File bin\64\libpangomm-1.4-1.dll
363 File bin\64\libpangowin32-1.0-0.dll
364 File bin\64\libpng12-0.dll
365 File bin\64\libsigc-2.0-0.dll
366 File bin\64\libtiff.dll
367 File bin\64\zlib1.dll
368 SetOutPath $INSTDIR\etc\gtk-2.0
369 File bin\64\etc\gtk-2.0\gtkrc
370 SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
371 File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
372 SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
373 File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
374 File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
375 SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
376 File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
377 File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
378 SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
379 File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
380 Goto done
381
382 gigedit686:
383 File bin\686\gigedit.exe
384 File bin\686\libgigedit-1.dll
385 SetOutPath "$INSTDIR\plugins"
386 File bin\686\plugins\libgigeditlinuxsamplerplugin-1.dll
387 SetOutPath $INSTDIR
388 File bin\686\intl.dll
389 File bin\686\jpeg62.dll
390 File bin\686\libatk-1.0-0.dll
391 File bin\686\libatkmm-1.6-1.dll
392 File bin\686\libcairo-2.dll
393 File bin\686\libcairomm-1.0-1.dll
394 File bin\686\libgdkmm-2.4-1.dll
395 File bin\686\libgdk_pixbuf-2.0-0.dll
396 File bin\686\libgdk-win32-2.0-0.dll
397 File bin\686\libgio-2.0-0.dll
398 File bin\686\libgiomm-2.4-1.dll
399 File bin\686\libglib-2.0-0.dll
400 File bin\686\libglibmm-2.4-1.dll
401 File bin\686\libgmodule-2.0-0.dll
402 File bin\686\libgobject-2.0-0.dll
403 File bin\686\libgthread-2.0-0.dll
404 File bin\686\libgtkmm-2.4-1.dll
405 File bin\686\libgtk-win32-2.0-0.dll
406 File bin\686\libpango-1.0-0.dll
407 File bin\686\libpangocairo-1.0-0.dll
408 File bin\686\libpangomm-1.4-1.dll
409 File bin\686\libpangowin32-1.0-0.dll
410 File bin\686\libpng12-0.dll
411 File bin\686\libsigc-2.0-0.dll
412 File bin\686\libtiff3.dll
413 File bin\686\zlib1.dll
414 SetOutPath $INSTDIR\etc\gtk-2.0
415 File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
416 File bin\686\etc\gtk-2.0\gtkrc
417 SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
418 File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
419 SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\loaders
420 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
421 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
422 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
423 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
424 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
425 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
426 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
427 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
428 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
429 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
430 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
431 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
432 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
433 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
434 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
435 SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
436 File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
437 File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
438 SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
439 File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
440 File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
441 SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
442 File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
443 Goto done
444
445 done:
446 SectionEnd
447
448 Section "libgig 3.2.1.x (cvs2009-05-03)" Seclibgig
449 DetailPrint "Installing libgig binaries ..."
450 ; We make this a mandatory component
451 SectionIn RO
452 ; Set output path to the installation directory.
453 SetOutPath $INSTDIR
454
455 StrCmp $binType BIN_TYPE_64BIT libgig64
456 StrCmp $binType BIN_TYPE_686SSE libgig686sse
457 Goto libgig686
458
459 ; Files to install
460
461 libgig64:
462 File bin\64\libgig-6.dll
463 File bin\64\rifftree.exe
464 File bin\64\dlsdump.exe
465 File bin\64\gigdump.exe
466 File bin\64\gigextract.exe
467 ; special dependency for the 64 bit version
468 File bin\64\libgcc_s_sjlj-1.dll
469 Goto done
470
471 libgig686sse:
472 File bin\686sse\libgig-6.dll
473 File bin\686sse\rifftree.exe
474 File bin\686sse\dlsdump.exe
475 File bin\686sse\gigdump.exe
476 File bin\686sse\gigextract.exe
477 Goto done
478
479 libgig686:
480 File bin\686\libgig-6.dll
481 File bin\686\rifftree.exe
482 File bin\686\dlsdump.exe
483 File bin\686\gigdump.exe
484 File bin\686\gigextract.exe
485 Goto done
486
487 done:
488
489 ; As this is a mandatory component, we misuse is for the following
490 ; common tasks as well ...
491
492 ; Add LinuxSampler and friends to the system's PATH variable
493 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
494
495 ; Write the uninstall keys for Windows
496 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
497 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
498 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
499 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
500 WriteUninstaller "uninstall.exe"
501
502 ; Store installation folders
503 WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
504 WriteRegStr HKLM "Software\LinuxSampler" "VST Directory" $vstPluginPath
505
506 ; Just for info, store the release date as well
507 WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
508 SectionEnd
509
510 Section "libsndfile 1.0.19" Seclibsndfile
511 DetailPrint "Installing libsndfile binaries ..."
512 ; We make this a mandatory component
513 SectionIn RO
514 ; Set output path to the installation directory.
515 SetOutPath $INSTDIR
516
517 StrCmp $binType BIN_TYPE_64BIT libsndfile64
518 ; I think we don't need a SSE optimized 32 bit binary for libsndfile, one 64bit and one simple 32 bit DLL should be sufficient
519 ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
520 Goto libsndfile686
521
522 ; Files to install
523
524 libsndfile64:
525 File bin\64\libsndfile-1.dll
526 Goto done
527
528 libsndfile686:
529 File bin\686\libsndfile-1.dll
530 Goto done
531
532 done:
533 SectionEnd
534
535 Section "Start Menu Shortcuts" SecShortcuts
536 Var /GLOBAL javawbin
537
538 ; Switch system variables to 'all users', to ensure we create the start
539 ; menu shortcuts for all users and not just for the current user.
540 SetShellVarContext all
541
542 ; try to resolve the full qualified path of the javaw binary
543 ClearErrors
544 SearchPath $javawbin javaw.exe
545 IfErrors 0 javawDetected
546 ClearErrors
547 ; if all fails, simply use SYSDIR (which should work almost always anyway)
548 DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
549 StrCpy $javawbin "$SYSDIR\javaw.exe"
550 javawDetected:
551
552 CreateDirectory "$SMPROGRAMS\LinuxSampler"
553
554 CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
555
556 StrCmp $installingLinuxSampler '1' 0 +2
557 CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1.12cvs (stand alone backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0
558
559 StrCmp $installingJSampler '1' 0 +2
560 CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.8a-cvs8 (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.8a-cvs8.jar"' '$INSTDIR\jsampler.ico' 0
561
562 StrCmp $installingQSampler '1' 0 +2
563 CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1.26 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
564
565 StrCmp $installinggigedit '1' 0 +2
566 CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.1.1.x cvs2009-05-10 (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0
567 SectionEnd
568
569 ;--------------------------------
570
571 ; Uninstaller
572
573 Section "Uninstall"
574 Var /GLOBAL vstdir
575
576 Call un.DetectSystemType
577
578 DetailPrint "Removing LinuxSampler directory from PATH variable ..."
579 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
580
581 DetailPrint "Searching for VST plugin ..."
582 ClearErrors
583 ReadRegStr $0 HKLM "Software\LinuxSampler" "VST Directory"
584 IfErrors usedefaultvstdir 0
585 StrCpy $vstdir $0
586 DetailPrint "VST plugin location found in registry."
587 Goto vstdirDetected
588 usedefaultvstdir:
589 DetailPrint "WRN: No VST plugin location found in registry, trying default location."
590 ClearErrors
591 StrCpy $vstdir "${DEFAULT_VST_DIR}"
592 vstdirDetected:
593
594 DetailPrint "Removing registry keys ..."
595 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
596 DeleteRegKey HKLM "Software\LinuxSampler"
597
598 ; Workaround for Vista and younger: switch system variables to 'all users'
599 ; otherwise e.g. we couldn't delete start menu shortcuts below on those
600 ; systems, as those variables would point to the current user.
601 SetShellVarContext all
602
603 DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
604 Delete "$SMPROGRAMS\LinuxSampler\*.*"
605
606 DetailPrint "Removing VST plugin from: $vstdir ..."
607 Delete "$vstdir\LinuxSampler.dll"
608
609 DetailPrint "Removing directories used ..."
610 RMDir /r "$SMPROGRAMS\LinuxSampler"
611 RMDir /r "$INSTDIR"
612 SectionEnd
613
614 ;--------------------------------
615 ;Descriptions
616
617 ;Language strings
618 LangString DESC_SecLinuxSampler ${LANG_ENGLISH} "Sampler backend (stand-alone and VST), 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."
619 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."
620 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!"
621 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."
622 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."
623 LangString DESC_Seclibsndfile ${LANG_ENGLISH} "C program library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format), used by gigedit to import samples."
624 LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
625
626 ;Assign language strings to sections
627 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
628 !insertmacro MUI_DESCRIPTION_TEXT ${SecLinuxSampler} $(DESC_SecLinuxSampler)
629 !insertmacro MUI_DESCRIPTION_TEXT ${SecJSampler} $(DESC_SecJSampler)
630 !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
631 !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
632 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
633 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
634 !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
635 !insertmacro MUI_FUNCTION_DESCRIPTION_END

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC