/[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 2853 - (hide annotations) (download)
Fri Nov 20 17:34:28 2015 UTC (8 years, 4 months ago) by persson
File size: 27664 byte(s)
* new java version
1 schoenebeck 1547 ; LinuxSampler Windows installer
2     ;
3 schoenebeck 2686 ; Copyright (C) 2007-2015, 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 persson 2350 !include "WordFunc.nsh"
27 schoenebeck 1547
28 persson 2145 !define /date RELEASE_DATE "%Y%m%d"
29     !searchparse /file bin/686/linuxsampler.pc `Version: ` LINUXSAMPLER_VERSION
30     !searchparse /file bin/686/gig.pc `Version: ` LIBGIG_VERSION
31     !searchparse /file bin/686/gigedit.version `` GIGEDIT_VERSION
32     !define FANTASIA_VERSION "0.9"
33     !searchparse /file bin/686/qsampler.version `` QSAMPLER_VERSION
34     !searchparse /file bin/686/sndfile.pc `Version: ` SNDFILE_VERSION
35 schoenebeck 1581
36 schoenebeck 1547 ; The name of the installer
37 schoenebeck 1581 Name "LinuxSampler (${RELEASE_DATE})"
38 schoenebeck 1547
39     ; The file to write
40 schoenebeck 1581 OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
41 schoenebeck 1547
42     ; Java Runtime Environment, needed for JSampler
43 persson 2853 ; jre-8u66-windows-i586.exe:
44     !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113217"
45     ; jre-8u66-windows-x64.exe:
46     !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113219"
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 schoenebeck 2801 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "� 2003-2015 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 persson 2350 MessageBox MB_OK "JSampler requires Java ${JRE_VERSION} or later, \
167     it will now be downloaded and installed"
168 schoenebeck 1903
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 persson 2350 ${VersionCompare} $2 ${JRE_VERSION} $R0
184     IntCmp $R0 1 done done
185 schoenebeck 1547
186 schoenebeck 1903 StrCmp $binType BIN_TYPE_64BIT 0 downloadjre
187    
188     ; on 64 bit systems also check the 32 bit view of the registry, maybe
189     ; a 32 bit JRE was already installed
190     SetRegView 32
191     ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
192     "CurrentVersion"
193     SetRegView 64 ; restore 64 bit view
194 persson 2350 ${VersionCompare} $3 ${JRE_VERSION} $R0
195     IntCmp $R0 1 done done
196 schoenebeck 1903
197     downloadjre:
198 schoenebeck 1547 Call GetJRE
199    
200     done:
201     FunctionEnd
202    
203 schoenebeck 1900 ; Tries to find the location where VST plugins should be installed to
204     Function DetectVstPath
205     Var /GLOBAL vstPluginPath
206 schoenebeck 1927 Var /GLOBAL vstPluginPath64
207 schoenebeck 1900
208 schoenebeck 1927 StrCmp $binType BIN_TYPE_64BIT 0 detectVst32
209     SetRegView 64 ; make sure we have the 64 bit registry view
210    
211     ; ------- VST 64 bit detection -------
212    
213 schoenebeck 1900 ClearErrors
214     ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
215 schoenebeck 1927 IfErrors check2ndRegistryKey64 0
216     StrCpy $vstPluginPath64 $0
217     DetailPrint "Found VST plugin (64 bit) directory in HKCU registry."
218     Goto done64
219    
220     check2ndRegistryKey64:
221     ClearErrors
222     ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
223     IfErrors noRegistryKeyExists64 0
224     StrCpy $vstPluginPath64 $0
225     DetailPrint "Found VST plugin (64 bit) directory in HKLM registry."
226     Goto done64
227    
228     noRegistryKeyExists64:
229     ClearErrors
230     DetailPrint "No VST plugin directory (64 bit) defined in registry."
231     StrCpy $vstPluginPath64 "${DEFAULT_VST_DIR64}"
232    
233     done64:
234     SetRegView 32 ; make sure we have a 32 bit registry view
235    
236     detectVst32: ; it follows the same thing for the 32 bit registry view
237    
238     ; ------- VST 32 bit detection -------
239    
240     ClearErrors
241     ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
242 schoenebeck 1900 IfErrors check2ndRegistryKey 0
243     StrCpy $vstPluginPath $0
244 schoenebeck 1927 DetailPrint "Found VST plugin (32 bit) directory in HKCU registry."
245 schoenebeck 1900 Goto done
246    
247     check2ndRegistryKey:
248     ClearErrors
249     ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
250     IfErrors noRegistryKeyExists 0
251     StrCpy $vstPluginPath $0
252 schoenebeck 1927 DetailPrint "Found VST plugin (32 bit) directory in HKLM registry."
253 schoenebeck 1900 Goto done
254    
255     noRegistryKeyExists:
256     ClearErrors
257 schoenebeck 1927 DetailPrint "No VST plugin directory (32 bit) defined in registry."
258 schoenebeck 1902 StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
259 schoenebeck 1900
260 schoenebeck 1927 done: ; ------- summary of detection -------
261    
262     StrCmp $binType BIN_TYPE_64BIT 0 summaryVst32
263     SetRegView 64 ; restore 64 bit view
264     DetailPrint "Using the following as VST (64 bit) plugin directory: $vstPluginPath64"
265     summaryVst32:
266     DetailPrint "Using the following as VST (32 bit) plugin directory: $vstPluginPath"
267 schoenebeck 1900 FunctionEnd
268    
269 schoenebeck 1547 ;--------------------------------
270    
271 schoenebeck 1904 ; primer things to do (before installing, not called on uninstall)
272 schoenebeck 1891 Section ""
273 schoenebeck 1903 Call DetectSystemType
274 schoenebeck 1900 Call DetectVstPath
275 schoenebeck 1891 SectionEnd
276    
277     ;--------------------------------
278    
279 schoenebeck 1547 ; The stuff to install
280 persson 2145 Section "LinuxSampler ${LINUXSAMPLER_VERSION}" SecLinuxSampler
281 schoenebeck 1891 DetailPrint "Installing LinuxSampler binaries ..."
282 schoenebeck 1581 StrCpy $installingLinuxSampler "1"
283 schoenebeck 1891
284     StrCmp $binType BIN_TYPE_64BIT linuxsampler64
285     StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
286     Goto linuxsampler686
287    
288 schoenebeck 1547 ; Files to install
289 schoenebeck 1891
290     linuxsampler64:
291 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
292 schoenebeck 1900 File bin\64\linuxsampler.exe
293 schoenebeck 2801 File bin\64\liblinuxsampler-4.dll
294 schoenebeck 1926 File bin\64\libsqlite3-0.dll
295 schoenebeck 1927 SetOutPath $vstPluginPath64
296     File /oname=LinuxSampler64.dll bin\64\LinuxSampler.dll
297     MessageBox MB_YESNO \
298 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?" \
299 schoenebeck 1927 IDNO done
300 schoenebeck 1891
301 schoenebeck 1927 ; so the other sections install their 32 bit versions as well
302     StrCpy $installing32BitToo "1"
303    
304 schoenebeck 1891 linuxsampler686sse:
305 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
306 schoenebeck 1900 File bin\686sse\linuxsampler.exe
307 schoenebeck 2801 File bin\686sse\liblinuxsampler-4.dll
308 schoenebeck 1926 File bin\686\libsqlite3-0.dll
309 schoenebeck 1900 SetOutPath $vstPluginPath
310 schoenebeck 1927 File /oname=LinuxSampler32.dll bin\686sse\LinuxSampler.dll
311 schoenebeck 1891 Goto done
312    
313     linuxsampler686:
314 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
315 schoenebeck 1900 File bin\686\linuxsampler.exe
316 schoenebeck 2801 File bin\686\liblinuxsampler-4.dll
317 schoenebeck 1926 File bin\686\libsqlite3-0.dll
318 schoenebeck 1900 SetOutPath $vstPluginPath
319 schoenebeck 1927 File /oname=LinuxSampler32.dll bin\686\LinuxSampler.dll
320 schoenebeck 1891 Goto done
321    
322     done:
323 schoenebeck 1547 SectionEnd
324    
325 persson 2145 Section "JSampler 'Fantasia' ${FANTASIA_VERSION}" SecJSampler
326 schoenebeck 1891 DetailPrint "Installing JSampler binaries ..."
327 schoenebeck 1547 ; make sure JRE is installed
328     Call DetectJRE
329 schoenebeck 1581 StrCpy $installingJSampler "1"
330 schoenebeck 1547 ; Set output path to the installation directory.
331     SetOutPath $INSTDIR
332     ; Files to install
333 persson 1982 File bin\Fantasia-0.9.jar
334 schoenebeck 1900 File jsampler.ico
335 schoenebeck 1547 SectionEnd
336    
337 persson 2145 Section "QSampler ${QSAMPLER_VERSION}" SecQSampler
338 schoenebeck 1891 DetailPrint "Installing QSampler binaries ..."
339 schoenebeck 1581 StrCpy $installingQSampler "1"
340 schoenebeck 1547 ; Set output path to the installation directory.
341     SetOutPath $INSTDIR
342     ; Files to install
343 schoenebeck 1900 File bin\686\qsampler.exe
344 persson 2145 File bin\686\liblscp-6.dll
345 schoenebeck 1900 File bin\686\QtCore4.dll
346     File bin\686\QtGui4.dll
347     File bin\686\mingwm10.dll
348 persson 2145 File bin\686\libgcc_s_dw2-1.dll
349 schoenebeck 1900 File qsampler.ico
350     SetOutPath $INSTDIR\share\locale
351     File bin\686\share\locale\qsampler_ru.qm
352 persson 2145 File bin\686\share\locale\qsampler_cs.qm
353     File bin\686\share\locale\qt_ru.qm
354     File bin\686\share\locale\qt_cs.qm
355 schoenebeck 1547 SectionEnd
356    
357 persson 2145 Section "gigedit ${GIGEDIT_VERSION}" Secgigedit
358 schoenebeck 1891 DetailPrint "Installing gigedit binaries ..."
359 schoenebeck 1581 StrCpy $installinggigedit "1"
360 schoenebeck 1891
361 schoenebeck 1547 ; make sure gtkmm is installed
362 schoenebeck 1900 ; (commented out for now, since we include gtk(mm) DLLs with this
363     ; installer, so no check and no download necessary ATM)
364     ;Call CheckForGtkmm
365    
366 schoenebeck 1891 StrCmp $binType BIN_TYPE_64BIT gigedit64
367 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
368     ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
369 schoenebeck 1891 Goto gigedit686
370    
371 schoenebeck 1547 ; Files to install
372 schoenebeck 1891
373     gigedit64:
374 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
375 schoenebeck 1900 File bin\64\gigedit.exe
376 schoenebeck 2801 File bin\64\libgigedit-3.dll
377 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}\plugins"
378 persson 1982 File bin\64\plugins\libgigeditlinuxsamplerplugin.dll
379 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
380 schoenebeck 1900 File bin\64\libatk-1.0-0.dll
381     File bin\64\libatkmm-1.6-1.dll
382     File bin\64\libcairo-2.dll
383     File bin\64\libcairomm-1.0-1.dll
384 persson 2145 File bin\64\libexpat-1.dll
385     File bin\64\libfontconfig-1.dll
386     File bin\64\libfreetype-6.dll
387 schoenebeck 1900 File bin\64\libgdkmm-2.4-1.dll
388     File bin\64\libgdk_pixbuf-2.0-0.dll
389     File bin\64\libgdk-win32-2.0-0.dll
390     File bin\64\libgio-2.0-0.dll
391     File bin\64\libgiomm-2.4-1.dll
392     File bin\64\libglib-2.0-0.dll
393     File bin\64\libglibmm-2.4-1.dll
394     File bin\64\libgmodule-2.0-0.dll
395     File bin\64\libgobject-2.0-0.dll
396     File bin\64\libgthread-2.0-0.dll
397     File bin\64\libgtkmm-2.4-1.dll
398     File bin\64\libgtk-win32-2.0-0.dll
399     File bin\64\libintl-8.dll
400     File bin\64\libpango-1.0-0.dll
401     File bin\64\libpangocairo-1.0-0.dll
402 persson 2145 File bin\64\libpangoft2-1.0-0.dll
403 schoenebeck 1900 File bin\64\libpangomm-1.4-1.dll
404     File bin\64\libpangowin32-1.0-0.dll
405 persson 2145 File bin\64\libpng14-14.dll
406 schoenebeck 1900 File bin\64\libsigc-2.0-0.dll
407     File bin\64\zlib1.dll
408 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\etc\gtk-2.0
409 schoenebeck 1900 File bin\64\etc\gtk-2.0\gtkrc
410 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\lib\gtk-2.0\2.10.0\engines
411 schoenebeck 1900 File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
412 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\de\LC_MESSAGES
413 schoenebeck 1900 File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
414     File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
415 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\sv\LC_MESSAGES
416 schoenebeck 1900 File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
417     File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
418 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\themes\MS-Windows\gtk-2.0
419 schoenebeck 1900 File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
420 schoenebeck 1891
421 schoenebeck 1927 ; shall we install the 32 bit version as well?
422     StrCmp $installing32BitToo "1" gigedit686 done
423    
424 schoenebeck 1891 gigedit686:
425 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
426 schoenebeck 1900 File bin\686\gigedit.exe
427 schoenebeck 2801 File bin\686\libgigedit-3.dll
428 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}\plugins"
429 persson 1982 File bin\686\plugins\libgigeditlinuxsamplerplugin.dll
430 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
431 schoenebeck 1900 File bin\686\intl.dll
432     File bin\686\jpeg62.dll
433     File bin\686\libatk-1.0-0.dll
434     File bin\686\libatkmm-1.6-1.dll
435     File bin\686\libcairo-2.dll
436     File bin\686\libcairomm-1.0-1.dll
437     File bin\686\libgdkmm-2.4-1.dll
438     File bin\686\libgdk_pixbuf-2.0-0.dll
439     File bin\686\libgdk-win32-2.0-0.dll
440     File bin\686\libgio-2.0-0.dll
441     File bin\686\libgiomm-2.4-1.dll
442     File bin\686\libglib-2.0-0.dll
443     File bin\686\libglibmm-2.4-1.dll
444     File bin\686\libgmodule-2.0-0.dll
445     File bin\686\libgobject-2.0-0.dll
446     File bin\686\libgthread-2.0-0.dll
447     File bin\686\libgtkmm-2.4-1.dll
448     File bin\686\libgtk-win32-2.0-0.dll
449     File bin\686\libpango-1.0-0.dll
450     File bin\686\libpangocairo-1.0-0.dll
451     File bin\686\libpangomm-1.4-1.dll
452     File bin\686\libpangowin32-1.0-0.dll
453     File bin\686\libpng12-0.dll
454     File bin\686\libsigc-2.0-0.dll
455     File bin\686\libtiff3.dll
456     File bin\686\zlib1.dll
457 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\etc\gtk-2.0
458 schoenebeck 1900 File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
459     File bin\686\etc\gtk-2.0\gtkrc
460 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\engines
461 schoenebeck 1900 File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
462 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\loaders
463 schoenebeck 1900 File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
464     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
465     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
466     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
467     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
468     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
469     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
470     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
471     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
472     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
473     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
474     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
475     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
476     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
477     File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
478 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\de\LC_MESSAGES
479 schoenebeck 1900 File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
480     File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
481 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\sv\LC_MESSAGES
482 schoenebeck 1900 File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
483     File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
484 schoenebeck 1927 SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\themes\MS-Windows\gtk-2.0
485 schoenebeck 1900 File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
486 schoenebeck 1891 Goto done
487    
488     done:
489 schoenebeck 1547 SectionEnd
490    
491 schoenebeck 2801 Section "libgig ${LIBGIG_VERSION}" Seclibgig
492 schoenebeck 1891 DetailPrint "Installing libgig binaries ..."
493 schoenebeck 1547 ; We make this a mandatory component
494     SectionIn RO
495 schoenebeck 1891
496     StrCmp $binType BIN_TYPE_64BIT libgig64
497     StrCmp $binType BIN_TYPE_686SSE libgig686sse
498     Goto libgig686
499    
500 schoenebeck 1547 ; Files to install
501 schoenebeck 1891
502     libgig64:
503 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
504 schoenebeck 2801 File bin\64\libgig-7.dll
505 persson 2607 File bin\64\libakai-0.dll
506 schoenebeck 1900 File bin\64\rifftree.exe
507     File bin\64\dlsdump.exe
508     File bin\64\gigdump.exe
509     File bin\64\gigextract.exe
510 schoenebeck 2485 File bin\64\gigmerge.exe
511     File bin\64\gig2mono.exe
512 schoenebeck 2686 File bin\64\gig2stereo.exe
513 schoenebeck 2575 File bin\64\korg2gig.exe
514     File bin\64\korgdump.exe
515     File bin\64\akaidump.exe
516     File bin\64\akaiextract.exe
517     File bin\64\sf2dump.exe
518 schoenebeck 2782 File bin\64\sf2extract.exe
519 persson 2145 ; special dependencies for the 64 bit version
520 schoenebeck 1900 File bin\64\libgcc_s_sjlj-1.dll
521 persson 2145 File bin\64\libstdc++-6.dll
522 schoenebeck 1891
523 schoenebeck 1927 ; shall we install the 32 bit version as well?
524 persson 2393 StrCmp $installing32BitToo "1" libgig686sse
525     StrCmp $installingQSampler "1" libgigForQsampler done
526 schoenebeck 1927
527 persson 2393 ; QSampler needs the 32 bit libgig dll
528     libgigForQsampler:
529     SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
530 schoenebeck 2803 File bin\686sse\libgig-7.dll
531 persson 2393 Goto done
532    
533 schoenebeck 1891 libgig686sse:
534 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
535 schoenebeck 2801 File bin\686sse\libgig-7.dll
536 persson 2607 File bin\686sse\libakai-0.dll
537 schoenebeck 1900 File bin\686sse\rifftree.exe
538     File bin\686sse\dlsdump.exe
539     File bin\686sse\gigdump.exe
540     File bin\686sse\gigextract.exe
541 schoenebeck 2485 File bin\686sse\gigmerge.exe
542     File bin\686sse\gig2mono.exe
543 schoenebeck 2686 File bin\686sse\gig2stereo.exe
544 schoenebeck 2575 File bin\686sse\korg2gig.exe
545     File bin\686sse\korgdump.exe
546     File bin\686sse\akaidump.exe
547     File bin\686sse\akaiextract.exe
548     File bin\686sse\sf2dump.exe
549 schoenebeck 2782 File bin\686sse\sf2extract.exe
550 schoenebeck 1891 Goto done
551    
552     libgig686:
553 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
554 schoenebeck 2801 File bin\686\libgig-7.dll
555 persson 2607 File bin\686\libakai-0.dll
556 schoenebeck 1900 File bin\686\rifftree.exe
557     File bin\686\dlsdump.exe
558     File bin\686\gigdump.exe
559     File bin\686\gigextract.exe
560 schoenebeck 2485 File bin\686\gigmerge.exe
561     File bin\686\gig2mono.exe
562 schoenebeck 2686 File bin\686\gig2stereo.exe
563 schoenebeck 2575 File bin\686\korg2gig.exe
564     File bin\686\korgdump.exe
565     File bin\686\akaidump.exe
566     File bin\686\akaiextract.exe
567     File bin\686\sf2dump.exe
568 schoenebeck 2782 File bin\686\sf2extract.exe
569 schoenebeck 1891 Goto done
570    
571     done:
572    
573 schoenebeck 1902 ; As this is a mandatory component, we misuse is for the following
574     ; common tasks as well ...
575    
576     ; Add LinuxSampler and friends to the system's PATH variable
577 schoenebeck 1900 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
578 schoenebeck 1927 ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
579     ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
580 schoenebeck 1900
581 schoenebeck 1547 ; Write the uninstall keys for Windows
582 schoenebeck 1581 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
583 schoenebeck 1547 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
584     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
585     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
586     WriteUninstaller "uninstall.exe"
587 schoenebeck 1902
588     ; Store installation folders
589     WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
590 schoenebeck 1927 StrCmp $binType BIN_TYPE_64BIT 0 +3
591     WriteRegStr HKLM "Software\LinuxSampler" "VST 64 Directory" $vstPluginPath64
592     StrCmp $installing32BitToo "1" 0 +2
593     WriteRegStr HKLM "Software\LinuxSampler" "VST 32 Directory" $vstPluginPath
594 schoenebeck 1902
595     ; Just for info, store the release date as well
596     WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
597 schoenebeck 1547 SectionEnd
598    
599 persson 2145 Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile
600 schoenebeck 1891 DetailPrint "Installing libsndfile binaries ..."
601     ; We make this a mandatory component
602     SectionIn RO
603    
604     StrCmp $binType BIN_TYPE_64BIT libsndfile64
605     ; 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
606     ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
607     Goto libsndfile686
608    
609     ; Files to install
610    
611     libsndfile64:
612 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
613 schoenebeck 1900 File bin\64\libsndfile-1.dll
614 persson 2145 File bin\64\libFLAC-8.dll
615     File bin\64\libogg-0.dll
616     File bin\64\libvorbis-0.dll
617     File bin\64\libvorbisenc-2.dll
618 schoenebeck 1891
619 schoenebeck 1927 ; shall we install the 32 bit version as well?
620     StrCmp $installing32BitToo "1" libsndfile686 done
621    
622 schoenebeck 1891 libsndfile686:
623 schoenebeck 1927 SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
624 schoenebeck 1900 File bin\686\libsndfile-1.dll
625 persson 2145 File bin\686\libFLAC-8.dll
626     File bin\686\libogg-0.dll
627     File bin\686\libvorbis-0.dll
628     File bin\686\libvorbisenc-2.dll
629 schoenebeck 1891 Goto done
630    
631     done:
632     SectionEnd
633    
634 schoenebeck 1547 Section "Start Menu Shortcuts" SecShortcuts
635 schoenebeck 1903 Var /GLOBAL javawbin
636 schoenebeck 1927 Var /GLOBAL samplerDir
637 schoenebeck 1903
638 schoenebeck 1927 StrCmp $binType BIN_TYPE_64BIT 0 +3
639     StrCpy $samplerDir "$INSTDIR\${SUBDIR_64_BIT}"
640     Goto +2
641     StrCpy $samplerDir "$INSTDIR\${SUBDIR_32_BIT}"
642    
643 schoenebeck 1902 ; Switch system variables to 'all users', to ensure we create the start
644     ; menu shortcuts for all users and not just for the current user.
645     SetShellVarContext all
646    
647 schoenebeck 1903 ; try to resolve the full qualified path of the javaw binary
648     ClearErrors
649     SearchPath $javawbin javaw.exe
650     IfErrors 0 javawDetected
651     ClearErrors
652     ; if all fails, simply use SYSDIR (which should work almost always anyway)
653     DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
654     StrCpy $javawbin "$SYSDIR\javaw.exe"
655     javawDetected:
656    
657 schoenebeck 1547 CreateDirectory "$SMPROGRAMS\LinuxSampler"
658 schoenebeck 1891
659 persson 1932 SetOutPath $INSTDIR
660 schoenebeck 1547 CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
661 schoenebeck 1891
662 persson 1932 StrCmp $installingLinuxSampler '1' 0 +3
663     SetOutPath $samplerDir
664 persson 2145 CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0
665 schoenebeck 1891
666 persson 1932 StrCmp $installingJSampler '1' 0 +3
667     SetOutPath $INSTDIR
668 persson 2145 CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia ${FANTASIA_VERSION} (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0
669 schoenebeck 1891
670 persson 1932 StrCmp $installingQSampler '1' 0 +3
671     SetOutPath $INSTDIR
672 persson 2145 CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler ${QSAMPLER_VERSION} (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
673 schoenebeck 1891
674 persson 1932 StrCmp $installinggigedit '1' 0 +3
675     SetOutPath $samplerDir
676 persson 2145 CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0
677 senoner 1941
678     !insertmacro CreateInternetShortcut \
679     "$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \
680     "http://www.linuxsampler.org/donations.html" \
681     "" "0"
682 schoenebeck 1547 SectionEnd
683    
684     ;--------------------------------
685    
686     ; Uninstaller
687    
688     Section "Uninstall"
689 schoenebeck 1927 Var /GLOBAL vstdir32
690     Var /GLOBAL vstdir64
691 schoenebeck 1902
692 schoenebeck 1904 Call un.DetectSystemType
693    
694 schoenebeck 1927 DetailPrint "Removing LinuxSampler directories from PATH variable ..."
695 schoenebeck 1900 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
696 schoenebeck 1927 ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
697     ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
698 schoenebeck 1900
699 schoenebeck 1927 StrCmp $binType BIN_TYPE_64BIT 0 uninstallVst32
700     DetailPrint "Searching for VST plugin (64 bit) ..."
701 schoenebeck 1902 ClearErrors
702 schoenebeck 1927 ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 64 Directory"
703     IfErrors uninstallVst32 0
704     StrCpy $vstdir64 $0
705     DetailPrint "Removing VST plugin (64 bit) from: $vstdir64 ..."
706     Delete "$vstdir64\LinuxSampler64.dll"
707    
708     uninstallVst32:
709    
710     DetailPrint "Searching for VST plugin (32 bit) ..."
711 schoenebeck 1902 ClearErrors
712 schoenebeck 1927 ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 32 Directory"
713     IfErrors uninstallVstDone 0
714     StrCpy $vstdir32 $0
715     DetailPrint "Removing VST plugin (32 bit) from: $vstdir32 ..."
716     Delete "$vstdir32\LinuxSampler32.dll"
717 schoenebeck 1902
718 schoenebeck 1927 uninstallVstDone:
719     ClearErrors
720    
721 schoenebeck 1900 DetailPrint "Removing registry keys ..."
722 schoenebeck 1547 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
723 schoenebeck 1902 DeleteRegKey HKLM "Software\LinuxSampler"
724 schoenebeck 1900
725 schoenebeck 1902 ; Workaround for Vista and younger: switch system variables to 'all users'
726     ; otherwise e.g. we couldn't delete start menu shortcuts below on those
727     ; systems, as those variables would point to the current user.
728     SetShellVarContext all
729 schoenebeck 1900
730 schoenebeck 1902 DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
731 schoenebeck 1547 Delete "$SMPROGRAMS\LinuxSampler\*.*"
732 schoenebeck 1900
733     DetailPrint "Removing directories used ..."
734 schoenebeck 1902 RMDir /r "$SMPROGRAMS\LinuxSampler"
735 schoenebeck 1900 RMDir /r "$INSTDIR"
736 schoenebeck 1547 SectionEnd
737    
738     ;--------------------------------
739     ;Descriptions
740    
741     ;Language strings
742 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."
743 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."
744     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!"
745 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."
746 schoenebeck 2801 LangString DESC_Seclibgig ${LANG_ENGLISH} "C++ program library for accessing DLS (Level 1 and Level 2) and GigaStudio/Gigasampler format (up to v4), SoundFont, AKAI and KORG files. This library is required by LinuxSampler, gigedit and QSampler."
747 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."
748 schoenebeck 1547 LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
749    
750     ;Assign language strings to sections
751     !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
752     !insertmacro MUI_DESCRIPTION_TEXT ${SecLinuxSampler} $(DESC_SecLinuxSampler)
753     !insertmacro MUI_DESCRIPTION_TEXT ${SecJSampler} $(DESC_SecJSampler)
754     !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
755     !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
756     !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
757 schoenebeck 1891 !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
758 schoenebeck 1547 !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
759     !insertmacro MUI_FUNCTION_DESCRIPTION_END

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC