/[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 1927 - (hide annotations) (download)
Thu Jul 2 23:02:17 2009 UTC (14 years, 8 months ago) by schoenebeck
File size: 26307 byte(s)
* installer now allows to install both 64 bit and 32 bit binaries
  parallel to be installed at the same time on a 64 bit Windows
  system (user is being asked by a message box)

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC