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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC