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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC