/[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 1982 - (hide annotations) (download)
Mon Aug 3 20:37:13 2009 UTC (14 years, 7 months ago) by persson
File size: 26786 byte(s)
* preparations for release

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC