/[svn]/misc/trunk/win32_installer/linuxsampler_all.nsi
ViewVC logotype

Annotation of /misc/trunk/win32_installer/linuxsampler_all.nsi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1926 - (hide annotations) (download)
Thu Jul 2 16:11:49 2009 UTC (14 years, 8 months ago) by schoenebeck
File size: 22765 byte(s)
* changes for the 2nd Windows pre-release installer (now including
  DB instruments support for Windows)

1 schoenebeck 1547 ; LinuxSampler Windows installer
2     ;
3 schoenebeck 1891 ; Copyright (C) 2007-2009, The LinuxSampler Developers
4 schoenebeck 1547 ;
5     ; All-in-one Installer for all subprojects / software components of the
6     ; LinuxSampler Project.
7 schoenebeck 1891 ;
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 schoenebeck 1900 ; -> The compiled binaries must be placed into the respective directories
14 schoenebeck 1891 ; under bin\ (you have to read this file in order to get those exact
15     ; locations and expected file names).
16 schoenebeck 1547
17     ; Probably the best compression ratio
18     SetCompressor lzma
19    
20     ;Include Modern UI
21     !include "MUI.nsh"
22 schoenebeck 1900 !include "EnvVarUpdate.nsh"
23 schoenebeck 1547
24 schoenebeck 1926 !define RELEASE_DATE "20090623"
25 schoenebeck 1581
26 schoenebeck 1547 ; The name of the installer
27 schoenebeck 1581 Name "LinuxSampler (${RELEASE_DATE})"
28 schoenebeck 1547
29     ; The file to write
30 schoenebeck 1581 OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
31 schoenebeck 1547
32     ; Java Runtime Environment, needed for JSampler
33     !define JRE_VERSION "1.6"
34 schoenebeck 1921 !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31621"
35     !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31623"
36 schoenebeck 1547
37     ; The default installation directory
38 schoenebeck 1902 InstallDir "$PROGRAMFILES64\LinuxSampler"
39 schoenebeck 1547
40 schoenebeck 1903 !define DEFAULT_VST_DIR "$PROGRAMFILES64\Steinberg\VstPlugins"
41 schoenebeck 1902
42 schoenebeck 1547 ; Get installation folder from registry if available
43 schoenebeck 1902 InstallDirRegKey HKLM "Software\LinuxSampler" "Main Directory"
44 schoenebeck 1547
45     ;--------------------------------
46     ;Interface Settings
47    
48     !define MUI_HEADERIMAGE
49     !define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp"
50     !define MUI_ABORTWARNING
51    
52     ;--------------------------------
53     ;Version Information
54    
55     VIProductVersion "0.0.0.0"
56 schoenebeck 1581 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer"
57 schoenebeck 1547 VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"
58     VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"
59     VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""
60 schoenebeck 1891 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "� 2003-2009 The LinuxSampler Project"
61 schoenebeck 1581 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"
62 schoenebeck 1547 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"
63    
64 schoenebeck 1891 !define BIN_TYPE_64BIT "64 bit"
65     !define BIN_TYPE_686SSE "686 SSE"
66     !define BIN_TYPE_686 "686"
67    
68 schoenebeck 1904 Var /GLOBAL binType
69    
70 schoenebeck 1547 ;--------------------------------
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    
87 schoenebeck 1581 Function .onInit
88     Var /GLOBAL installingLinuxSampler
89     Var /GLOBAL installingJSampler
90     Var /GLOBAL installingQSampler
91     Var /GLOBAL installinggigedit
92     StrCpy $installingLinuxSampler "0"
93     StrCpy $installingJSampler "0"
94     StrCpy $installingQSampler "0"
95     StrCpy $installinggigedit "0"
96     FunctionEnd
97    
98 schoenebeck 1902 ; detects CPU capabilities, determmines which native binary type to install
99     ; and selects the appropriate windows registry view (32 bit or 64 bit)
100 schoenebeck 1904 !macro DetectSystemType un
101     Function ${un}DetectSystemType
102 schoenebeck 1891 ; check if this is a 64 bit windows
103     System::Call "kernel32::GetCurrentProcess() i .s"
104     System::Call "kernel32::IsWow64Process(i s, *i .r0)"
105     IntCmp $0 0 not64bit
106     StrCpy $binType BIN_TYPE_64BIT
107     DetailPrint "64 bit Windows detected."
108 schoenebeck 1902 SetRegView 64
109 schoenebeck 1891 Goto DetectSystemDone
110    
111     not64bit: ; a 32 bit system
112    
113 schoenebeck 1902 SetRegView 32
114    
115 schoenebeck 1891 ; check if CPU supports SSE
116     cpudesc::tell
117     Pop $0 ; full identification string in $0
118     StrCpy $1 $0 1, 34 ; pull out one character after SSE=
119     IntFmt $2 "%u" $1 ; and turn it into a number
120     IntCmpU $2 1 +1 +4 +4
121     StrCpy $binType BIN_TYPE_686SSE
122     DetailPrint "32 bit Windows, SSE CPU detected."
123     Goto DetectSystemDone
124     StrCpy $binType BIN_TYPE_686
125     DetailPrint "32 bit Windows (no SSE support) detected."
126    
127     DetectSystemDone:
128     FunctionEnd
129 schoenebeck 1904 !macroend
130     !insertmacro DetectSystemType ""
131     !insertmacro DetectSystemType "un."
132 schoenebeck 1891
133 schoenebeck 1547 ; Check for the presence of gtkmm, and if false, ask the user whether to
134     ; download and install gtkmm now from the internet.
135     Function CheckForGtkmm
136     Var /GLOBAL gtkmmSetupFile
137    
138 schoenebeck 1581 ClearErrors
139 schoenebeck 1547 ; This is just a lazy check for the presence of gtkmm, we should better use:
140     ; System::Call function (NSI internal function) to actually call an arbitrary
141     ; gtkmm function (/method) from a gtkmm DLL to make it certain
142     ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language"
143     IfErrors +2 0
144     goto NoAbort
145     MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm
146     MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
147     Abort ; causes installer to quit
148     InstallGtkmm:
149     ClearErrors
150     StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe
151     NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile
152     IfErrors 0 +2
153     Goto InstallGtkmmFailed
154     ExecWait $gtkmmSetupFile
155     Delete $gtkmmSetupFile ; we don't need it anymore
156     IfErrors 0 +2
157     Goto InstallGtkmmFailed
158     Goto NoAbort
159     InstallGtkmmFailed:
160     MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort
161     Abort ; causes installer to quit
162     NoAbort:
163     FunctionEnd
164    
165     ; Downloads and launches the JRE installer from the internet
166     Function GetJRE
167 schoenebeck 1903 Var /GLOBAL jreUri
168 schoenebeck 1547
169 schoenebeck 1903 StrCmp $binType BIN_TYPE_64BIT 0 +3
170 schoenebeck 1904 StrCpy $jreUri ${JRE_64_URL}
171 schoenebeck 1903 Goto +2
172 schoenebeck 1904 StrCpy $jreUri ${JRE_32_URL}
173 schoenebeck 1903
174 schoenebeck 1904 DetailPrint "Downloading JRE from: $jreUri"
175    
176 schoenebeck 1903 MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \
177     be downloaded and installed"
178    
179     StrCpy $2 "$TEMP\Java Runtime Environment.exe"
180 schoenebeck 1904 nsisdl::download /TIMEOUT=30000 "$jreUri" $2
181 schoenebeck 1903 Pop $R0 ; Get the return value
182     StrCmp $R0 "success" +3
183     MessageBox MB_OK "Download failed: $R0"
184     Quit
185     ExecWait $2
186     Delete $2
187 schoenebeck 1547 FunctionEnd
188    
189     ; Checks if the JRE is already installed, if not it will download and install it from the internet
190     Function DetectJRE
191     ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
192     "CurrentVersion"
193     StrCmp $2 ${JRE_VERSION} done
194    
195 schoenebeck 1903 StrCmp $binType BIN_TYPE_64BIT 0 downloadjre
196    
197     ; on 64 bit systems also check the 32 bit view of the registry, maybe
198     ; a 32 bit JRE was already installed
199     SetRegView 32
200     ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
201     "CurrentVersion"
202     SetRegView 64 ; restore 64 bit view
203     StrCmp $3 ${JRE_VERSION} done
204    
205     downloadjre:
206 schoenebeck 1547 Call GetJRE
207    
208     done:
209     FunctionEnd
210    
211 schoenebeck 1900 ; Tries to find the location where VST plugins should be installed to
212     Function DetectVstPath
213     Var /GLOBAL vstPluginPath
214    
215     ClearErrors
216     ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
217     IfErrors check2ndRegistryKey 0
218     StrCpy $vstPluginPath $0
219     DetailPrint "Found VST plugin directory in HKCU registry."
220     Goto done
221    
222     check2ndRegistryKey:
223     ClearErrors
224     ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
225     IfErrors noRegistryKeyExists 0
226     StrCpy $vstPluginPath $0
227     DetailPrint "Found VST plugin directory in HKLM registry."
228     Goto done
229    
230     noRegistryKeyExists:
231     ClearErrors
232     DetailPrint "No VST plugin directory defined in registry."
233 schoenebeck 1902 StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
234 schoenebeck 1900
235     done:
236     DetailPrint "Using the following as VST plugin directory: $vstPluginPath"
237     FunctionEnd
238    
239 schoenebeck 1547 ;--------------------------------
240    
241 schoenebeck 1904 ; primer things to do (before installing, not called on uninstall)
242 schoenebeck 1891 Section ""
243 schoenebeck 1903 Call DetectSystemType
244 schoenebeck 1900 Call DetectVstPath
245 schoenebeck 1891 SectionEnd
246    
247     ;--------------------------------
248    
249 schoenebeck 1547 ; The stuff to install
250 schoenebeck 1900 Section "LinuxSampler 0.5.1.12cvs" SecLinuxSampler
251 schoenebeck 1891 DetailPrint "Installing LinuxSampler binaries ..."
252 schoenebeck 1581 StrCpy $installingLinuxSampler "1"
253 schoenebeck 1891
254 schoenebeck 1547 ; Set output path to the installation directory.
255     SetOutPath $INSTDIR
256 schoenebeck 1891
257     StrCmp $binType BIN_TYPE_64BIT linuxsampler64
258     StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
259     Goto linuxsampler686
260    
261 schoenebeck 1547 ; Files to install
262 schoenebeck 1891
263     linuxsampler64:
264 schoenebeck 1900 File bin\64\linuxsampler.exe
265     File bin\64\liblinuxsampler-1.dll
266 schoenebeck 1926 File bin\64\libsqlite3-0.dll
267 schoenebeck 1900 SetOutPath $vstPluginPath
268     File bin\64\LinuxSampler.dll
269 schoenebeck 1891 Goto done
270    
271     linuxsampler686sse:
272 schoenebeck 1900 File bin\686sse\linuxsampler.exe
273     File bin\686sse\liblinuxsampler-1.dll
274 schoenebeck 1926 File bin\686\libsqlite3-0.dll
275 schoenebeck 1900 SetOutPath $vstPluginPath
276     File bin\686sse\LinuxSampler.dll
277 schoenebeck 1891 Goto done
278    
279     linuxsampler686:
280 schoenebeck 1900 File bin\686\linuxsampler.exe
281     File bin\686\liblinuxsampler-1.dll
282 schoenebeck 1926 File bin\686\libsqlite3-0.dll
283 schoenebeck 1900 SetOutPath $vstPluginPath
284     File bin\686\LinuxSampler.dll
285 schoenebeck 1891 Goto done
286    
287     done:
288 schoenebeck 1547 SectionEnd
289    
290 schoenebeck 1926 Section "JSampler 'Fantasia' 0.8a-cvs8" SecJSampler
291 schoenebeck 1891 DetailPrint "Installing JSampler binaries ..."
292 schoenebeck 1547 ; make sure JRE is installed
293     Call DetectJRE
294 schoenebeck 1581 StrCpy $installingJSampler "1"
295 schoenebeck 1547 ; Set output path to the installation directory.
296     SetOutPath $INSTDIR
297     ; Files to install
298 schoenebeck 1926 File bin\Fantasia-0.8a-cvs8.jar
299 schoenebeck 1900 File jsampler.ico
300 schoenebeck 1547 SectionEnd
301    
302 schoenebeck 1900 Section "QSampler 0.2.1.26" SecQSampler
303 schoenebeck 1891 DetailPrint "Installing QSampler binaries ..."
304 schoenebeck 1581 StrCpy $installingQSampler "1"
305 schoenebeck 1547 ; Set output path to the installation directory.
306     SetOutPath $INSTDIR
307     ; Files to install
308 schoenebeck 1900 File bin\686\qsampler.exe
309     File bin\686\QtCore4.dll
310     File bin\686\QtGui4.dll
311     File bin\686\mingwm10.dll
312     File qsampler.ico
313     SetOutPath $INSTDIR\share\locale
314     File bin\686\share\locale\qsampler_ru.qm
315 schoenebeck 1547 SectionEnd
316    
317 schoenebeck 1900 Section "gigedit 0.1.1.x (cvs2009-05-10)" Secgigedit
318 schoenebeck 1891 DetailPrint "Installing gigedit binaries ..."
319 schoenebeck 1581 StrCpy $installinggigedit "1"
320 schoenebeck 1891
321 schoenebeck 1547 ; make sure gtkmm is installed
322 schoenebeck 1900 ; (commented out for now, since we include gtk(mm) DLLs with this
323     ; installer, so no check and no download necessary ATM)
324     ;Call CheckForGtkmm
325    
326 schoenebeck 1547 ; Set output path to the installation directory.
327     SetOutPath $INSTDIR
328 schoenebeck 1891
329     StrCmp $binType BIN_TYPE_64BIT gigedit64
330 schoenebeck 1900 ; 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
331     ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
332 schoenebeck 1891 Goto gigedit686
333    
334 schoenebeck 1547 ; Files to install
335 schoenebeck 1891
336     gigedit64:
337 schoenebeck 1900 File bin\64\gigedit.exe
338     File bin\64\libgigedit-1.dll
339     SetOutPath "$INSTDIR\plugins"
340     File bin\64\plugins\libgigeditlinuxsamplerplugin-1.dll
341     SetOutPath $INSTDIR
342     File bin\64\libatk-1.0-0.dll
343     File bin\64\libatkmm-1.6-1.dll
344     File bin\64\libcairo-2.dll
345     File bin\64\libcairomm-1.0-1.dll
346     File bin\64\libgdkmm-2.4-1.dll
347     File bin\64\libgdk_pixbuf-2.0-0.dll
348     File bin\64\libgdk-win32-2.0-0.dll
349     File bin\64\libgio-2.0-0.dll
350     File bin\64\libgiomm-2.4-1.dll
351     File bin\64\libglib-2.0-0.dll
352     File bin\64\libglibmm-2.4-1.dll
353     File bin\64\libgmodule-2.0-0.dll
354     File bin\64\libgobject-2.0-0.dll
355     File bin\64\libgthread-2.0-0.dll
356     File bin\64\libgtkmm-2.4-1.dll
357     File bin\64\libgtk-win32-2.0-0.dll
358     File bin\64\libintl-8.dll
359     File bin\64\libjpeg-62.dll
360     File bin\64\libpango-1.0-0.dll
361     File bin\64\libpangocairo-1.0-0.dll
362     File bin\64\libpangomm-1.4-1.dll
363     File bin\64\libpangowin32-1.0-0.dll
364     File bin\64\libpng12-0.dll
365     File bin\64\libsigc-2.0-0.dll
366     File bin\64\libtiff.dll
367     File bin\64\zlib1.dll
368     SetOutPath $INSTDIR\etc\gtk-2.0
369     File bin\64\etc\gtk-2.0\gtkrc
370     SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
371     File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
372     SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
373     File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
374     File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
375     SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
376     File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
377     File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
378     SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
379     File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
380 schoenebeck 1891 Goto done
381    
382     gigedit686:
383 schoenebeck 1900 File bin\686\gigedit.exe
384     File bin\686\libgigedit-1.dll
385     SetOutPath "$INSTDIR\plugins"
386     File bin\686\plugins\libgigeditlinuxsamplerplugin-1.dll
387     SetOutPath $INSTDIR
388     File bin\686\intl.dll
389     File bin\686\jpeg62.dll
390     File bin\686\libatk-1.0-0.dll
391     File bin\686\libatkmm-1.6-1.dll
392     File bin\686\libcairo-2.dll
393     File bin\686\libcairomm-1.0-1.dll
394     File bin\686\libgdkmm-2.4-1.dll
395     File bin\686\libgdk_pixbuf-2.0-0.dll
396     File bin\686\libgdk-win32-2.0-0.dll
397     File bin\686\libgio-2.0-0.dll
398     File bin\686\libgiomm-2.4-1.dll
399     File bin\686\libglib-2.0-0.dll
400     File bin\686\libglibmm-2.4-1.dll
401     File bin\686\libgmodule-2.0-0.dll
402     File bin\686\libgobject-2.0-0.dll
403     File bin\686\libgthread-2.0-0.dll
404     File bin\686\libgtkmm-2.4-1.dll
405     File bin\686\libgtk-win32-2.0-0.dll
406     File bin\686\libpango-1.0-0.dll
407     File bin\686\libpangocairo-1.0-0.dll
408     File bin\686\libpangomm-1.4-1.dll
409     File bin\686\libpangowin32-1.0-0.dll
410     File bin\686\libpng12-0.dll
411     File bin\686\libsigc-2.0-0.dll
412     File bin\686\libtiff3.dll
413     File bin\686\zlib1.dll
414     SetOutPath $INSTDIR\etc\gtk-2.0
415     File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
416     File bin\686\etc\gtk-2.0\gtkrc
417     SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
418     File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
419     SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\loaders
420     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
421     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
422     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
423     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
424     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
425     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
426     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
427     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
428     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
429     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
430     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
431     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
432     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
433     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
434     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
435     SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
436     File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
437     File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
438     SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
439     File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
440     File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
441     SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
442     File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
443 schoenebeck 1891 Goto done
444    
445     done:
446 schoenebeck 1547 SectionEnd
447    
448 schoenebeck 1900 Section "libgig 3.2.1.x (cvs2009-05-03)" Seclibgig
449 schoenebeck 1891 DetailPrint "Installing libgig binaries ..."
450 schoenebeck 1547 ; We make this a mandatory component
451     SectionIn RO
452     ; Set output path to the installation directory.
453     SetOutPath $INSTDIR
454 schoenebeck 1891
455     StrCmp $binType BIN_TYPE_64BIT libgig64
456     StrCmp $binType BIN_TYPE_686SSE libgig686sse
457     Goto libgig686
458    
459 schoenebeck 1547 ; Files to install
460 schoenebeck 1891
461     libgig64:
462 schoenebeck 1900 File bin\64\libgig-6.dll
463     File bin\64\rifftree.exe
464     File bin\64\dlsdump.exe
465     File bin\64\gigdump.exe
466     File bin\64\gigextract.exe
467     ; special dependency for the 64 bit version
468     File bin\64\libgcc_s_sjlj-1.dll
469 schoenebeck 1891 Goto done
470    
471     libgig686sse:
472 schoenebeck 1900 File bin\686sse\libgig-6.dll
473     File bin\686sse\rifftree.exe
474     File bin\686sse\dlsdump.exe
475     File bin\686sse\gigdump.exe
476     File bin\686sse\gigextract.exe
477 schoenebeck 1891 Goto done
478    
479     libgig686:
480 schoenebeck 1900 File bin\686\libgig-6.dll
481     File bin\686\rifftree.exe
482     File bin\686\dlsdump.exe
483     File bin\686\gigdump.exe
484     File bin\686\gigextract.exe
485 schoenebeck 1891 Goto done
486    
487     done:
488    
489 schoenebeck 1902 ; As this is a mandatory component, we misuse is for the following
490     ; common tasks as well ...
491    
492     ; Add LinuxSampler and friends to the system's PATH variable
493 schoenebeck 1900 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
494    
495 schoenebeck 1547 ; Write the uninstall keys for Windows
496 schoenebeck 1581 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
497 schoenebeck 1547 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
498     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
499     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
500     WriteUninstaller "uninstall.exe"
501 schoenebeck 1902
502     ; Store installation folders
503     WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
504     WriteRegStr HKLM "Software\LinuxSampler" "VST Directory" $vstPluginPath
505    
506     ; Just for info, store the release date as well
507     WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
508 schoenebeck 1547 SectionEnd
509    
510 schoenebeck 1900 Section "libsndfile 1.0.19" Seclibsndfile
511 schoenebeck 1891 DetailPrint "Installing libsndfile binaries ..."
512     ; We make this a mandatory component
513     SectionIn RO
514     ; Set output path to the installation directory.
515     SetOutPath $INSTDIR
516    
517     StrCmp $binType BIN_TYPE_64BIT libsndfile64
518     ; 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
519     ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
520     Goto libsndfile686
521    
522     ; Files to install
523    
524     libsndfile64:
525 schoenebeck 1900 File bin\64\libsndfile-1.dll
526 schoenebeck 1891 Goto done
527    
528     libsndfile686:
529 schoenebeck 1900 File bin\686\libsndfile-1.dll
530 schoenebeck 1891 Goto done
531    
532     done:
533     SectionEnd
534    
535 schoenebeck 1547 Section "Start Menu Shortcuts" SecShortcuts
536 schoenebeck 1903 Var /GLOBAL javawbin
537    
538 schoenebeck 1902 ; Switch system variables to 'all users', to ensure we create the start
539     ; menu shortcuts for all users and not just for the current user.
540     SetShellVarContext all
541    
542 schoenebeck 1903 ; try to resolve the full qualified path of the javaw binary
543     ClearErrors
544     SearchPath $javawbin javaw.exe
545     IfErrors 0 javawDetected
546     ClearErrors
547     ; if all fails, simply use SYSDIR (which should work almost always anyway)
548     DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
549     StrCpy $javawbin "$SYSDIR\javaw.exe"
550     javawDetected:
551    
552 schoenebeck 1547 CreateDirectory "$SMPROGRAMS\LinuxSampler"
553 schoenebeck 1891
554 schoenebeck 1547 CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
555 schoenebeck 1891
556 schoenebeck 1581 StrCmp $installingLinuxSampler '1' 0 +2
557 schoenebeck 1902 CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1.12cvs (stand alone backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0
558 schoenebeck 1891
559 schoenebeck 1581 StrCmp $installingJSampler '1' 0 +2
560 schoenebeck 1926 CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.8a-cvs8 (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.8a-cvs8.jar"' '$INSTDIR\jsampler.ico' 0
561 schoenebeck 1891
562 schoenebeck 1581 StrCmp $installingQSampler '1' 0 +2
563 schoenebeck 1902 CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1.26 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
564 schoenebeck 1891
565 schoenebeck 1581 StrCmp $installinggigedit '1' 0 +2
566 schoenebeck 1902 CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.1.1.x cvs2009-05-10 (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0
567 schoenebeck 1547 SectionEnd
568    
569     ;--------------------------------
570    
571     ; Uninstaller
572    
573     Section "Uninstall"
574 schoenebeck 1902 Var /GLOBAL vstdir
575    
576 schoenebeck 1904 Call un.DetectSystemType
577    
578 schoenebeck 1900 DetailPrint "Removing LinuxSampler directory from PATH variable ..."
579     ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
580    
581 schoenebeck 1902 DetailPrint "Searching for VST plugin ..."
582     ClearErrors
583     ReadRegStr $0 HKLM "Software\LinuxSampler" "VST Directory"
584     IfErrors usedefaultvstdir 0
585     StrCpy $vstdir $0
586     DetailPrint "VST plugin location found in registry."
587     Goto vstdirDetected
588     usedefaultvstdir:
589     DetailPrint "WRN: No VST plugin location found in registry, trying default location."
590     ClearErrors
591     StrCpy $vstdir "${DEFAULT_VST_DIR}"
592     vstdirDetected:
593    
594 schoenebeck 1900 DetailPrint "Removing registry keys ..."
595 schoenebeck 1547 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
596 schoenebeck 1902 DeleteRegKey HKLM "Software\LinuxSampler"
597 schoenebeck 1900
598 schoenebeck 1902 ; Workaround for Vista and younger: switch system variables to 'all users'
599     ; otherwise e.g. we couldn't delete start menu shortcuts below on those
600     ; systems, as those variables would point to the current user.
601     SetShellVarContext all
602 schoenebeck 1900
603 schoenebeck 1902 DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
604 schoenebeck 1547 Delete "$SMPROGRAMS\LinuxSampler\*.*"
605 schoenebeck 1900
606 schoenebeck 1902 DetailPrint "Removing VST plugin from: $vstdir ..."
607     Delete "$vstdir\LinuxSampler.dll"
608    
609 schoenebeck 1900 DetailPrint "Removing directories used ..."
610 schoenebeck 1902 RMDir /r "$SMPROGRAMS\LinuxSampler"
611 schoenebeck 1900 RMDir /r "$INSTDIR"
612 schoenebeck 1547 SectionEnd
613    
614     ;--------------------------------
615     ;Descriptions
616    
617     ;Language strings
618 schoenebeck 1902 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."
619 schoenebeck 1547 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."
620     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!"
621 schoenebeck 1902 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."
622 schoenebeck 1547 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."
623 schoenebeck 1891 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."
624 schoenebeck 1547 LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
625    
626     ;Assign language strings to sections
627     !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
628     !insertmacro MUI_DESCRIPTION_TEXT ${SecLinuxSampler} $(DESC_SecLinuxSampler)
629     !insertmacro MUI_DESCRIPTION_TEXT ${SecJSampler} $(DESC_SecJSampler)
630     !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
631     !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
632     !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
633 schoenebeck 1891 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
634 schoenebeck 1547 !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
635     !insertmacro MUI_FUNCTION_DESCRIPTION_END

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC