/[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 2163 - (show annotations) (download)
Tue Feb 8 18:22:51 2011 UTC (9 years, 1 month ago) by persson
File size: 26384 byte(s)
* updated copyright year in installer

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC