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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC