/[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 2281 - (show annotations) (download)
Sun Oct 30 17:14:27 2011 UTC (9 years, 1 month ago) by persson
File size: 26395 byte(s)
* use cpudesc plugin from working directory instead
* new java version

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC