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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC