/[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 1927 - (show annotations) (download)
Thu Jul 2 23:02:17 2009 UTC (10 years, 7 months ago) by schoenebeck
File size: 26307 byte(s)
* installer now allows to install both 64 bit and 32 bit binaries
  parallel to be installed at the same time on a 64 bit Windows
  system (user is being asked by a message box)

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC