/[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 2281 - (hide annotations) (download)
Sun Oct 30 17:14:27 2011 UTC (9 years, 11 months ago) by persson
File size: 26395 byte(s)
* use cpudesc plugin from working directory instead
* new java version

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC