/[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 1982 - (show annotations) (download)
Mon Aug 3 20:37:13 2009 UTC (11 years, 2 months ago) by persson
File size: 26786 byte(s)
* preparations for release

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC