/[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 2160 - (hide annotations) (download)
Fri Feb 4 18:21:00 2011 UTC (13 years, 1 month ago) by persson
File size: 26384 byte(s)
* new java version

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC