/[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 2853 - (show annotations) (download)
Fri Nov 20 17:34:28 2015 UTC (8 years, 4 months ago) by persson
File size: 27664 byte(s)
* new java version
1 ; LinuxSampler Windows installer
2 ;
3 ; Copyright (C) 2007-2015, 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 !include "WordFunc.nsh"
27
28 !define /date RELEASE_DATE "%Y%m%d"
29 !searchparse /file bin/686/linuxsampler.pc `Version: ` LINUXSAMPLER_VERSION
30 !searchparse /file bin/686/gig.pc `Version: ` LIBGIG_VERSION
31 !searchparse /file bin/686/gigedit.version `` GIGEDIT_VERSION
32 !define FANTASIA_VERSION "0.9"
33 !searchparse /file bin/686/qsampler.version `` QSAMPLER_VERSION
34 !searchparse /file bin/686/sndfile.pc `Version: ` SNDFILE_VERSION
35
36 ; The name of the installer
37 Name "LinuxSampler (${RELEASE_DATE})"
38
39 ; The file to write
40 OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
41
42 ; Java Runtime Environment, needed for JSampler
43 ; jre-8u66-windows-i586.exe:
44 !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113217"
45 ; jre-8u66-windows-x64.exe:
46 !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113219"
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-2015 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} or later, \
167 it will now 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 ${VersionCompare} $2 ${JRE_VERSION} $R0
184 IntCmp $R0 1 done done
185
186 StrCmp $binType BIN_TYPE_64BIT 0 downloadjre
187
188 ; on 64 bit systems also check the 32 bit view of the registry, maybe
189 ; a 32 bit JRE was already installed
190 SetRegView 32
191 ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
192 "CurrentVersion"
193 SetRegView 64 ; restore 64 bit view
194 ${VersionCompare} $3 ${JRE_VERSION} $R0
195 IntCmp $R0 1 done done
196
197 downloadjre:
198 Call GetJRE
199
200 done:
201 FunctionEnd
202
203 ; Tries to find the location where VST plugins should be installed to
204 Function DetectVstPath
205 Var /GLOBAL vstPluginPath
206 Var /GLOBAL vstPluginPath64
207
208 StrCmp $binType BIN_TYPE_64BIT 0 detectVst32
209 SetRegView 64 ; make sure we have the 64 bit registry view
210
211 ; ------- VST 64 bit detection -------
212
213 ClearErrors
214 ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
215 IfErrors check2ndRegistryKey64 0
216 StrCpy $vstPluginPath64 $0
217 DetailPrint "Found VST plugin (64 bit) directory in HKCU registry."
218 Goto done64
219
220 check2ndRegistryKey64:
221 ClearErrors
222 ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
223 IfErrors noRegistryKeyExists64 0
224 StrCpy $vstPluginPath64 $0
225 DetailPrint "Found VST plugin (64 bit) directory in HKLM registry."
226 Goto done64
227
228 noRegistryKeyExists64:
229 ClearErrors
230 DetailPrint "No VST plugin directory (64 bit) defined in registry."
231 StrCpy $vstPluginPath64 "${DEFAULT_VST_DIR64}"
232
233 done64:
234 SetRegView 32 ; make sure we have a 32 bit registry view
235
236 detectVst32: ; it follows the same thing for the 32 bit registry view
237
238 ; ------- VST 32 bit detection -------
239
240 ClearErrors
241 ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
242 IfErrors check2ndRegistryKey 0
243 StrCpy $vstPluginPath $0
244 DetailPrint "Found VST plugin (32 bit) directory in HKCU registry."
245 Goto done
246
247 check2ndRegistryKey:
248 ClearErrors
249 ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
250 IfErrors noRegistryKeyExists 0
251 StrCpy $vstPluginPath $0
252 DetailPrint "Found VST plugin (32 bit) directory in HKLM registry."
253 Goto done
254
255 noRegistryKeyExists:
256 ClearErrors
257 DetailPrint "No VST plugin directory (32 bit) defined in registry."
258 StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
259
260 done: ; ------- summary of detection -------
261
262 StrCmp $binType BIN_TYPE_64BIT 0 summaryVst32
263 SetRegView 64 ; restore 64 bit view
264 DetailPrint "Using the following as VST (64 bit) plugin directory: $vstPluginPath64"
265 summaryVst32:
266 DetailPrint "Using the following as VST (32 bit) plugin directory: $vstPluginPath"
267 FunctionEnd
268
269 ;--------------------------------
270
271 ; primer things to do (before installing, not called on uninstall)
272 Section ""
273 Call DetectSystemType
274 Call DetectVstPath
275 SectionEnd
276
277 ;--------------------------------
278
279 ; The stuff to install
280 Section "LinuxSampler ${LINUXSAMPLER_VERSION}" SecLinuxSampler
281 DetailPrint "Installing LinuxSampler binaries ..."
282 StrCpy $installingLinuxSampler "1"
283
284 StrCmp $binType BIN_TYPE_64BIT linuxsampler64
285 StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
286 Goto linuxsampler686
287
288 ; Files to install
289
290 linuxsampler64:
291 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
292 File bin\64\linuxsampler.exe
293 File bin\64\liblinuxsampler-4.dll
294 File bin\64\libsqlite3-0.dll
295 SetOutPath $vstPluginPath64
296 File /oname=LinuxSampler64.dll bin\64\LinuxSampler.dll
297 MessageBox MB_YESNO \
298 "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?" \
299 IDNO done
300
301 ; so the other sections install their 32 bit versions as well
302 StrCpy $installing32BitToo "1"
303
304 linuxsampler686sse:
305 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
306 File bin\686sse\linuxsampler.exe
307 File bin\686sse\liblinuxsampler-4.dll
308 File bin\686\libsqlite3-0.dll
309 SetOutPath $vstPluginPath
310 File /oname=LinuxSampler32.dll bin\686sse\LinuxSampler.dll
311 Goto done
312
313 linuxsampler686:
314 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
315 File bin\686\linuxsampler.exe
316 File bin\686\liblinuxsampler-4.dll
317 File bin\686\libsqlite3-0.dll
318 SetOutPath $vstPluginPath
319 File /oname=LinuxSampler32.dll bin\686\LinuxSampler.dll
320 Goto done
321
322 done:
323 SectionEnd
324
325 Section "JSampler 'Fantasia' ${FANTASIA_VERSION}" SecJSampler
326 DetailPrint "Installing JSampler binaries ..."
327 ; make sure JRE is installed
328 Call DetectJRE
329 StrCpy $installingJSampler "1"
330 ; Set output path to the installation directory.
331 SetOutPath $INSTDIR
332 ; Files to install
333 File bin\Fantasia-0.9.jar
334 File jsampler.ico
335 SectionEnd
336
337 Section "QSampler ${QSAMPLER_VERSION}" SecQSampler
338 DetailPrint "Installing QSampler binaries ..."
339 StrCpy $installingQSampler "1"
340 ; Set output path to the installation directory.
341 SetOutPath $INSTDIR
342 ; Files to install
343 File bin\686\qsampler.exe
344 File bin\686\liblscp-6.dll
345 File bin\686\QtCore4.dll
346 File bin\686\QtGui4.dll
347 File bin\686\mingwm10.dll
348 File bin\686\libgcc_s_dw2-1.dll
349 File qsampler.ico
350 SetOutPath $INSTDIR\share\locale
351 File bin\686\share\locale\qsampler_ru.qm
352 File bin\686\share\locale\qsampler_cs.qm
353 File bin\686\share\locale\qt_ru.qm
354 File bin\686\share\locale\qt_cs.qm
355 SectionEnd
356
357 Section "gigedit ${GIGEDIT_VERSION}" Secgigedit
358 DetailPrint "Installing gigedit binaries ..."
359 StrCpy $installinggigedit "1"
360
361 ; make sure gtkmm is installed
362 ; (commented out for now, since we include gtk(mm) DLLs with this
363 ; installer, so no check and no download necessary ATM)
364 ;Call CheckForGtkmm
365
366 StrCmp $binType BIN_TYPE_64BIT gigedit64
367 ; 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
368 ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
369 Goto gigedit686
370
371 ; Files to install
372
373 gigedit64:
374 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
375 File bin\64\gigedit.exe
376 File bin\64\libgigedit-3.dll
377 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}\plugins"
378 File bin\64\plugins\libgigeditlinuxsamplerplugin.dll
379 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
380 File bin\64\libatk-1.0-0.dll
381 File bin\64\libatkmm-1.6-1.dll
382 File bin\64\libcairo-2.dll
383 File bin\64\libcairomm-1.0-1.dll
384 File bin\64\libexpat-1.dll
385 File bin\64\libfontconfig-1.dll
386 File bin\64\libfreetype-6.dll
387 File bin\64\libgdkmm-2.4-1.dll
388 File bin\64\libgdk_pixbuf-2.0-0.dll
389 File bin\64\libgdk-win32-2.0-0.dll
390 File bin\64\libgio-2.0-0.dll
391 File bin\64\libgiomm-2.4-1.dll
392 File bin\64\libglib-2.0-0.dll
393 File bin\64\libglibmm-2.4-1.dll
394 File bin\64\libgmodule-2.0-0.dll
395 File bin\64\libgobject-2.0-0.dll
396 File bin\64\libgthread-2.0-0.dll
397 File bin\64\libgtkmm-2.4-1.dll
398 File bin\64\libgtk-win32-2.0-0.dll
399 File bin\64\libintl-8.dll
400 File bin\64\libpango-1.0-0.dll
401 File bin\64\libpangocairo-1.0-0.dll
402 File bin\64\libpangoft2-1.0-0.dll
403 File bin\64\libpangomm-1.4-1.dll
404 File bin\64\libpangowin32-1.0-0.dll
405 File bin\64\libpng14-14.dll
406 File bin\64\libsigc-2.0-0.dll
407 File bin\64\zlib1.dll
408 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\etc\gtk-2.0
409 File bin\64\etc\gtk-2.0\gtkrc
410 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\lib\gtk-2.0\2.10.0\engines
411 File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
412 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\de\LC_MESSAGES
413 File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
414 File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
415 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\sv\LC_MESSAGES
416 File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
417 File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
418 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\themes\MS-Windows\gtk-2.0
419 File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
420
421 ; shall we install the 32 bit version as well?
422 StrCmp $installing32BitToo "1" gigedit686 done
423
424 gigedit686:
425 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
426 File bin\686\gigedit.exe
427 File bin\686\libgigedit-3.dll
428 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}\plugins"
429 File bin\686\plugins\libgigeditlinuxsamplerplugin.dll
430 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
431 File bin\686\intl.dll
432 File bin\686\jpeg62.dll
433 File bin\686\libatk-1.0-0.dll
434 File bin\686\libatkmm-1.6-1.dll
435 File bin\686\libcairo-2.dll
436 File bin\686\libcairomm-1.0-1.dll
437 File bin\686\libgdkmm-2.4-1.dll
438 File bin\686\libgdk_pixbuf-2.0-0.dll
439 File bin\686\libgdk-win32-2.0-0.dll
440 File bin\686\libgio-2.0-0.dll
441 File bin\686\libgiomm-2.4-1.dll
442 File bin\686\libglib-2.0-0.dll
443 File bin\686\libglibmm-2.4-1.dll
444 File bin\686\libgmodule-2.0-0.dll
445 File bin\686\libgobject-2.0-0.dll
446 File bin\686\libgthread-2.0-0.dll
447 File bin\686\libgtkmm-2.4-1.dll
448 File bin\686\libgtk-win32-2.0-0.dll
449 File bin\686\libpango-1.0-0.dll
450 File bin\686\libpangocairo-1.0-0.dll
451 File bin\686\libpangomm-1.4-1.dll
452 File bin\686\libpangowin32-1.0-0.dll
453 File bin\686\libpng12-0.dll
454 File bin\686\libsigc-2.0-0.dll
455 File bin\686\libtiff3.dll
456 File bin\686\zlib1.dll
457 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\etc\gtk-2.0
458 File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
459 File bin\686\etc\gtk-2.0\gtkrc
460 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\engines
461 File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
462 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\loaders
463 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
464 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
465 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
466 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
467 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
468 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
469 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
470 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
471 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
472 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
473 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
474 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
475 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
476 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
477 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
478 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\de\LC_MESSAGES
479 File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
480 File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
481 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\sv\LC_MESSAGES
482 File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
483 File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
484 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\themes\MS-Windows\gtk-2.0
485 File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
486 Goto done
487
488 done:
489 SectionEnd
490
491 Section "libgig ${LIBGIG_VERSION}" Seclibgig
492 DetailPrint "Installing libgig binaries ..."
493 ; We make this a mandatory component
494 SectionIn RO
495
496 StrCmp $binType BIN_TYPE_64BIT libgig64
497 StrCmp $binType BIN_TYPE_686SSE libgig686sse
498 Goto libgig686
499
500 ; Files to install
501
502 libgig64:
503 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
504 File bin\64\libgig-7.dll
505 File bin\64\libakai-0.dll
506 File bin\64\rifftree.exe
507 File bin\64\dlsdump.exe
508 File bin\64\gigdump.exe
509 File bin\64\gigextract.exe
510 File bin\64\gigmerge.exe
511 File bin\64\gig2mono.exe
512 File bin\64\gig2stereo.exe
513 File bin\64\korg2gig.exe
514 File bin\64\korgdump.exe
515 File bin\64\akaidump.exe
516 File bin\64\akaiextract.exe
517 File bin\64\sf2dump.exe
518 File bin\64\sf2extract.exe
519 ; special dependencies for the 64 bit version
520 File bin\64\libgcc_s_sjlj-1.dll
521 File bin\64\libstdc++-6.dll
522
523 ; shall we install the 32 bit version as well?
524 StrCmp $installing32BitToo "1" libgig686sse
525 StrCmp $installingQSampler "1" libgigForQsampler done
526
527 ; QSampler needs the 32 bit libgig dll
528 libgigForQsampler:
529 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
530 File bin\686sse\libgig-7.dll
531 Goto done
532
533 libgig686sse:
534 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
535 File bin\686sse\libgig-7.dll
536 File bin\686sse\libakai-0.dll
537 File bin\686sse\rifftree.exe
538 File bin\686sse\dlsdump.exe
539 File bin\686sse\gigdump.exe
540 File bin\686sse\gigextract.exe
541 File bin\686sse\gigmerge.exe
542 File bin\686sse\gig2mono.exe
543 File bin\686sse\gig2stereo.exe
544 File bin\686sse\korg2gig.exe
545 File bin\686sse\korgdump.exe
546 File bin\686sse\akaidump.exe
547 File bin\686sse\akaiextract.exe
548 File bin\686sse\sf2dump.exe
549 File bin\686sse\sf2extract.exe
550 Goto done
551
552 libgig686:
553 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
554 File bin\686\libgig-7.dll
555 File bin\686\libakai-0.dll
556 File bin\686\rifftree.exe
557 File bin\686\dlsdump.exe
558 File bin\686\gigdump.exe
559 File bin\686\gigextract.exe
560 File bin\686\gigmerge.exe
561 File bin\686\gig2mono.exe
562 File bin\686\gig2stereo.exe
563 File bin\686\korg2gig.exe
564 File bin\686\korgdump.exe
565 File bin\686\akaidump.exe
566 File bin\686\akaiextract.exe
567 File bin\686\sf2dump.exe
568 File bin\686\sf2extract.exe
569 Goto done
570
571 done:
572
573 ; As this is a mandatory component, we misuse is for the following
574 ; common tasks as well ...
575
576 ; Add LinuxSampler and friends to the system's PATH variable
577 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
578 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
579 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
580
581 ; Write the uninstall keys for Windows
582 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
583 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
584 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
585 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
586 WriteUninstaller "uninstall.exe"
587
588 ; Store installation folders
589 WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
590 StrCmp $binType BIN_TYPE_64BIT 0 +3
591 WriteRegStr HKLM "Software\LinuxSampler" "VST 64 Directory" $vstPluginPath64
592 StrCmp $installing32BitToo "1" 0 +2
593 WriteRegStr HKLM "Software\LinuxSampler" "VST 32 Directory" $vstPluginPath
594
595 ; Just for info, store the release date as well
596 WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
597 SectionEnd
598
599 Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile
600 DetailPrint "Installing libsndfile binaries ..."
601 ; We make this a mandatory component
602 SectionIn RO
603
604 StrCmp $binType BIN_TYPE_64BIT libsndfile64
605 ; 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
606 ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
607 Goto libsndfile686
608
609 ; Files to install
610
611 libsndfile64:
612 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
613 File bin\64\libsndfile-1.dll
614 File bin\64\libFLAC-8.dll
615 File bin\64\libogg-0.dll
616 File bin\64\libvorbis-0.dll
617 File bin\64\libvorbisenc-2.dll
618
619 ; shall we install the 32 bit version as well?
620 StrCmp $installing32BitToo "1" libsndfile686 done
621
622 libsndfile686:
623 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
624 File bin\686\libsndfile-1.dll
625 File bin\686\libFLAC-8.dll
626 File bin\686\libogg-0.dll
627 File bin\686\libvorbis-0.dll
628 File bin\686\libvorbisenc-2.dll
629 Goto done
630
631 done:
632 SectionEnd
633
634 Section "Start Menu Shortcuts" SecShortcuts
635 Var /GLOBAL javawbin
636 Var /GLOBAL samplerDir
637
638 StrCmp $binType BIN_TYPE_64BIT 0 +3
639 StrCpy $samplerDir "$INSTDIR\${SUBDIR_64_BIT}"
640 Goto +2
641 StrCpy $samplerDir "$INSTDIR\${SUBDIR_32_BIT}"
642
643 ; Switch system variables to 'all users', to ensure we create the start
644 ; menu shortcuts for all users and not just for the current user.
645 SetShellVarContext all
646
647 ; try to resolve the full qualified path of the javaw binary
648 ClearErrors
649 SearchPath $javawbin javaw.exe
650 IfErrors 0 javawDetected
651 ClearErrors
652 ; if all fails, simply use SYSDIR (which should work almost always anyway)
653 DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
654 StrCpy $javawbin "$SYSDIR\javaw.exe"
655 javawDetected:
656
657 CreateDirectory "$SMPROGRAMS\LinuxSampler"
658
659 SetOutPath $INSTDIR
660 CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
661
662 StrCmp $installingLinuxSampler '1' 0 +3
663 SetOutPath $samplerDir
664 CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0
665
666 StrCmp $installingJSampler '1' 0 +3
667 SetOutPath $INSTDIR
668 CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia ${FANTASIA_VERSION} (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0
669
670 StrCmp $installingQSampler '1' 0 +3
671 SetOutPath $INSTDIR
672 CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler ${QSAMPLER_VERSION} (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
673
674 StrCmp $installinggigedit '1' 0 +3
675 SetOutPath $samplerDir
676 CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0
677
678 !insertmacro CreateInternetShortcut \
679 "$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \
680 "http://www.linuxsampler.org/donations.html" \
681 "" "0"
682 SectionEnd
683
684 ;--------------------------------
685
686 ; Uninstaller
687
688 Section "Uninstall"
689 Var /GLOBAL vstdir32
690 Var /GLOBAL vstdir64
691
692 Call un.DetectSystemType
693
694 DetailPrint "Removing LinuxSampler directories from PATH variable ..."
695 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
696 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
697 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
698
699 StrCmp $binType BIN_TYPE_64BIT 0 uninstallVst32
700 DetailPrint "Searching for VST plugin (64 bit) ..."
701 ClearErrors
702 ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 64 Directory"
703 IfErrors uninstallVst32 0
704 StrCpy $vstdir64 $0
705 DetailPrint "Removing VST plugin (64 bit) from: $vstdir64 ..."
706 Delete "$vstdir64\LinuxSampler64.dll"
707
708 uninstallVst32:
709
710 DetailPrint "Searching for VST plugin (32 bit) ..."
711 ClearErrors
712 ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 32 Directory"
713 IfErrors uninstallVstDone 0
714 StrCpy $vstdir32 $0
715 DetailPrint "Removing VST plugin (32 bit) from: $vstdir32 ..."
716 Delete "$vstdir32\LinuxSampler32.dll"
717
718 uninstallVstDone:
719 ClearErrors
720
721 DetailPrint "Removing registry keys ..."
722 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
723 DeleteRegKey HKLM "Software\LinuxSampler"
724
725 ; Workaround for Vista and younger: switch system variables to 'all users'
726 ; otherwise e.g. we couldn't delete start menu shortcuts below on those
727 ; systems, as those variables would point to the current user.
728 SetShellVarContext all
729
730 DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
731 Delete "$SMPROGRAMS\LinuxSampler\*.*"
732
733 DetailPrint "Removing directories used ..."
734 RMDir /r "$SMPROGRAMS\LinuxSampler"
735 RMDir /r "$INSTDIR"
736 SectionEnd
737
738 ;--------------------------------
739 ;Descriptions
740
741 ;Language strings
742 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."
743 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."
744 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!"
745 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."
746 LangString DESC_Seclibgig ${LANG_ENGLISH} "C++ program library for accessing DLS (Level 1 and Level 2) and GigaStudio/Gigasampler format (up to v4), SoundFont, AKAI and KORG files. This library is required by LinuxSampler, gigedit and QSampler."
747 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."
748 LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
749
750 ;Assign language strings to sections
751 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
752 !insertmacro MUI_DESCRIPTION_TEXT ${SecLinuxSampler} $(DESC_SecLinuxSampler)
753 !insertmacro MUI_DESCRIPTION_TEXT ${SecJSampler} $(DESC_SecJSampler)
754 !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
755 !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
756 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
757 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
758 !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
759 !insertmacro MUI_FUNCTION_DESCRIPTION_END

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC