/[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 1903 - (hide annotations) (download)
Tue May 12 20:24:46 2009 UTC (14 years, 10 months ago) by schoenebeck
File size: 22653 byte(s)
* further bugfixes regarding the new installer

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC