/[svn]/misc/trunk/win32_installer/linuxsampler_all.nsi
ViewVC logotype

Diff of /misc/trunk/win32_installer/linuxsampler_all.nsi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1581 by schoenebeck, Fri Dec 7 17:52:39 2007 UTC revision 3631 by schoenebeck, Sun Oct 13 17:11:31 2019 UTC
# Line 1  Line 1 
1  ; LinuxSampler Windows installer  ; LinuxSampler Windows installer
2  ;  ;
3  ; Copyright (C) 2007, The LinuxSampler Developers  ; Copyright (C) 2007-2019, The LinuxSampler Developers
4  ;  ;
5  ; All-in-one Installer for all subprojects / software components of the  ; All-in-one Installer for all subprojects / software components of the
6  ; LinuxSampler Project.  ; LinuxSampler Project.
7    ;
8    ; PREREQUISITES:
9    ;
10    ; -> You must install the file cpudesc\cpudesc.dll into the working
11    ;    directory before being able to compile this installer!
12    ;
13    ; -> The compiled binaries must be placed into the respective directories
14    ;    under bin\ (you have to read this file in order to get those exact
15    ;    locations and expected file names).
16    
17    ; NSIS plug-in for getting CPU information
18    !addplugindir cpudesc
19    
20  ; Probably the best compression ratio  ; Probably the best compression ratio
21  SetCompressor lzma  SetCompressor lzma
22    
23  ;Include Modern UI  ;Include Modern UI
24  !include "MUI.nsh"  !include "MUI.nsh"
25    !include "EnvVarUpdate.nsh"
26    !include "WordFunc.nsh"
27    
28  !define RELEASE_DATE "20071207"  !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    
36  ; The name of the installer  ; The name of the installer
37  Name "LinuxSampler (${RELEASE_DATE})"  Name "LinuxSampler (${RELEASE_DATE})"
# Line 21  OutFile "linuxsampler_${RELEASE_DATE}_se Line 41  OutFile "linuxsampler_${RELEASE_DATE}_se
41    
42  ; Java Runtime Environment, needed for JSampler  ; Java Runtime Environment, needed for JSampler
43  !define JRE_VERSION "1.6"  !define JRE_VERSION "1.6"
44  !define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=11292"  ; jre-8u201-windows-i586.exe:
45    !define JRE_32_URL "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=236886_42970487e3af4f5aa5bca3f542482c60"
46    ; jre-8u201-windows-x64.exe:
47    !define JRE_64_URL "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=236888_42970487e3af4f5aa5bca3f542482c60"
48    
49  ; The default installation directory  ; The default installation directory
50  InstallDir $PROGRAMFILES\LinuxSampler  InstallDir "$PROGRAMFILES64\LinuxSampler"
51    !define SUBDIR_32_BIT "32"
52    !define SUBDIR_64_BIT "64"
53    
54    !define DEFAULT_VST_DIR64 "$PROGRAMFILES64\Steinberg\VstPlugins"
55    !define DEFAULT_VST_DIR "$PROGRAMFILES\Steinberg\VstPlugins"
56    
57  ; Get installation folder from registry if available  ; Get installation folder from registry if available
58  InstallDirRegKey HKCU "Software\LinuxSampler" ""  InstallDirRegKey HKLM "Software\LinuxSampler" "Main Directory"
59    
60  ;--------------------------------  ;--------------------------------
61  ;Interface Settings  ;Interface Settings
# Line 36  InstallDirRegKey HKCU "Software\LinuxSam Line 64  InstallDirRegKey HKCU "Software\LinuxSam
64  !define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp"  !define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp"
65  !define MUI_ABORTWARNING  !define MUI_ABORTWARNING
66    
67  ;--------------------------------  !define BIN_TYPE_64BIT  "64 bit"
68  ;Version Information  !define BIN_TYPE_686SSE "686 SSE"
69    !define BIN_TYPE_686    "686"
70    
71  VIProductVersion "0.0.0.0"  Var /GLOBAL binType
 VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2003-2007 The LinuxSampler Project"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"  
72    
73  ;--------------------------------  ;--------------------------------
74  ; Pages  ; Pages
# Line 64  VIAddVersionKey /LANG=${LANG_ENGLISH} "F Line 86  VIAddVersionKey /LANG=${LANG_ENGLISH} "F
86  !insertmacro MUI_LANGUAGE "English"  !insertmacro MUI_LANGUAGE "English"
87    
88  ;--------------------------------  ;--------------------------------
89    ;Version Information
90    
91    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    VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2003-2019 The LinuxSampler Project"
97    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"
98    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"
99    
100    ;--------------------------------
101    
102  Function .onInit  Function .onInit
103    Var /GLOBAL installingLinuxSampler    Var /GLOBAL installingLinuxSampler
104    Var /GLOBAL installingJSampler    Var /GLOBAL installingJSampler
105    Var /GLOBAL installingQSampler    Var /GLOBAL installingQSampler
106    Var /GLOBAL installinggigedit    Var /GLOBAL installinggigedit
107      Var /GLOBAL installing32BitToo
108    StrCpy $installingLinuxSampler "0"    StrCpy $installingLinuxSampler "0"
109    StrCpy $installingJSampler "0"    StrCpy $installingJSampler "0"
110    StrCpy $installingQSampler "0"    StrCpy $installingQSampler "0"
111    StrCpy $installinggigedit "0"    StrCpy $installinggigedit "0"
112      StrCpy $installing32BitToo "0"
113  FunctionEnd  FunctionEnd
114    
115  ; Check for the presence of gtkmm, and if false, ask the user whether to  !macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX
116  ; download and install gtkmm now from the internet.  WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
117  Function CheckForGtkmm  WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
118    Var /GLOBAL gtkmmSetupFile  WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}"
119    !macroend
120    ClearErrors  
121    ; This is just a lazy check for the presence of gtkmm, we should better use:  ; detects CPU capabilities, determines which native binary type to install
122    ; System::Call function (NSI internal function) to actually call an arbitrary  ; and selects the appropriate windows registry view (32 bit or 64 bit)
123    ; gtkmm function (/method) from a gtkmm DLL to make it certain  !macro DetectSystemType un
124    ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language"  Function ${un}DetectSystemType
125    IfErrors +2 0    ; check if this is a 64 bit windows
126    goto NoAbort    System::Call "kernel32::GetCurrentProcess() i .s"
127    MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm    System::Call "kernel32::IsWow64Process(i s, *i .r0)"
128      MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort    IntCmp $0 0 not64bit
129        Abort ;  causes installer to quit    StrCpy $binType BIN_TYPE_64BIT
130    InstallGtkmm:    DetailPrint "64 bit Windows detected."
131      ClearErrors    SetRegView 64
132          StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe    Goto DetectSystemDone
133      NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile  
134      IfErrors 0 +2    not64bit: ; a 32 bit system
135          Goto InstallGtkmmFailed  
136          ExecWait $gtkmmSetupFile    SetRegView 32
137      Delete $gtkmmSetupFile ; we don't need it anymore  
138          IfErrors 0 +2    ; check if CPU supports SSE
139          Goto InstallGtkmmFailed    cpudesc::tell
140          Goto NoAbort    Pop $0                     ; full identification string in $0
141    InstallGtkmmFailed:    StrCpy $1 $0 1, 34         ; pull out one character after SSE=
142          MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort    IntFmt $2 "%u" $1          ; and turn it into a number
143        Abort ;  causes installer to quit    IntCmpU $2 1 +1 +4 +4
144    NoAbort:    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  FunctionEnd
152    !macroend
153    !insertmacro DetectSystemType ""
154    !insertmacro DetectSystemType "un."
155    
156  ; Downloads and launches the JRE installer from the internet  ; Downloads and launches the JRE installer from the internet
157  Function GetJRE  Function GetJRE
158          MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \    Var /GLOBAL jreUri
                          be downloaded and installed"  
159    
160          StrCpy $2 "$TEMP\Java Runtime Environment.exe"    StrCmp $binType BIN_TYPE_64BIT 0 +3
161          nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2    StrCpy $jreUri ${JRE_64_URL}
162          Pop $R0 ;Get the return value    Goto +2
163                  StrCmp $R0 "success" +3    StrCpy $jreUri ${JRE_32_URL}
164                  MessageBox MB_OK "Download failed: $R0"  
165                  Quit    DetailPrint "Downloading JRE from: $jreUri"
166          ExecWait $2  
167          Delete $2    MessageBox MB_OK "JSampler requires Java ${JRE_VERSION} or later, \
168                        it will now be downloaded and installed"
169    
170      StrCpy $2 "$TEMP\Java Runtime Environment.exe"
171      nsisdl::download /TIMEOUT=30000 "$jreUri" $2
172      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  FunctionEnd  FunctionEnd
179    
180  ; Checks if the JRE is already installed, if not it will download and install it from the internet  ; Checks if the JRE is already installed, if not it will download and install it from the internet
181  Function DetectJRE  Function DetectJRE
182    ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \    ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
183               "CurrentVersion"               "CurrentVersion"
184    StrCmp $2 ${JRE_VERSION} done    ${VersionCompare} $2 ${JRE_VERSION} $R0
185      IntCmp $R0 1 done done
186    
187      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      ${VersionCompare} $3 ${JRE_VERSION} $R0
196      IntCmp $R0 1 done done
197    
198      downloadjre:
199    Call GetJRE    Call GetJRE
200    
201    done:    done:
202  FunctionEnd  FunctionEnd
203    
204    ; Tries to find the location where VST plugins should be installed to
205    Function DetectVstPath
206      Var /GLOBAL vstPluginPath
207      Var /GLOBAL vstPluginPath64
208    
209      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      ClearErrors
215      ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
216      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      IfErrors check2ndRegistryKey 0
244      StrCpy $vstPluginPath $0
245      DetailPrint "Found VST plugin (32 bit) directory in HKCU registry."
246      Goto done
247    
248      check2ndRegistryKey:
249      ClearErrors
250      ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
251      IfErrors noRegistryKeyExists 0
252      StrCpy $vstPluginPath $0
253      DetailPrint "Found VST plugin (32 bit) directory in HKLM registry."
254      Goto done
255    
256      noRegistryKeyExists:
257      ClearErrors
258      DetailPrint "No VST plugin directory (32 bit) defined in registry."
259      StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
260    
261      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    FunctionEnd
269    
270    ;--------------------------------
271    
272    ; primer things to do (before installing, not called on uninstall)
273    Section ""
274      Call DetectSystemType
275      Call DetectVstPath
276    SectionEnd
277    
278  ;--------------------------------  ;--------------------------------
279    
280  ; The stuff to install  ; The stuff to install
281  Section "LinuxSampler 0.5.1" SecLinuxSampler  Section "LinuxSampler ${LINUXSAMPLER_VERSION}" SecLinuxSampler
282      DetailPrint "Installing LinuxSampler binaries ..."
283    StrCpy $installingLinuxSampler "1"    StrCpy $installingLinuxSampler "1"
284    ; Set output path to the installation directory.  
285    SetOutPath $INSTDIR    StrCmp $binType BIN_TYPE_64BIT linuxsampler64
286      StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
287      Goto linuxsampler686
288    
289    ; Files to install    ; Files to install
290    File linuxsampler.exe  
291    File liblinuxsampler-1.dll    linuxsampler64:
292      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
293      File bin\64\linuxsampler.exe
294      File bin\64\liblinuxsampler-5.dll
295      File bin\64\libsqlite3-0.dll
296      SetOutPath $vstPluginPath64
297      File /oname=LinuxSampler64.dll bin\64\LinuxSampler.dll
298      MessageBox MB_YESNO \
299        "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        IDNO done
301    
302      ; so the other sections install their 32 bit versions as well
303      StrCpy $installing32BitToo "1"
304    
305      linuxsampler686sse:
306      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
307      File bin\686sse\linuxsampler.exe
308      File bin\686sse\liblinuxsampler-5.dll
309      File bin\686\libsqlite3-0.dll
310      SetOutPath $vstPluginPath
311      File /oname=LinuxSampler32.dll bin\686sse\LinuxSampler.dll
312      Goto done
313    
314      linuxsampler686:
315      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
316      File bin\686\linuxsampler.exe
317      File bin\686\liblinuxsampler-5.dll
318      File bin\686\libsqlite3-0.dll
319      SetOutPath $vstPluginPath
320      File /oname=LinuxSampler32.dll bin\686\LinuxSampler.dll
321      Goto done
322    
323      done:
324  SectionEnd  SectionEnd
325    
326  Section "JSampler 'Fantasia' 0.8a" SecJSampler  Section "JSampler 'Fantasia' ${FANTASIA_VERSION}" SecJSampler
327      DetailPrint "Installing JSampler binaries ..."
328    ; make sure JRE is installed    ; make sure JRE is installed
329    Call DetectJRE    Call DetectJRE
330    StrCpy $installingJSampler "1"    StrCpy $installingJSampler "1"
331    ; Set output path to the installation directory.    ; Set output path to the installation directory.
332    SetOutPath $INSTDIR    SetOutPath $INSTDIR
333    ; Files to install    ; Files to install
334    File Fantasia-0.8a.jar    File bin\Fantasia-0.9.jar
335    File jsampler.ico    File jsampler.ico
336  SectionEnd  SectionEnd
337    
338  Section "QSampler 0.2.1" SecQSampler  Section "QSampler ${QSAMPLER_VERSION}" SecQSampler
339      DetailPrint "Installing QSampler binaries ..."
340    StrCpy $installingQSampler "1"    StrCpy $installingQSampler "1"
341    ; Set output path to the installation directory.    ; Set output path to the installation directory.
342    SetOutPath $INSTDIR    SetOutPath $INSTDIR
343    ; Files to install    ; Files to install
344    File qsampler.exe    File bin\686\qsampler.exe
345    File QtCore4.dll    File bin\686\liblscp-6.dll
346    File QtGui4.dll    File bin\686\Qt5Core.dll
347    File mingwm10.dll    File bin\686\Qt5Gui.dll
348      File bin\686\Qt5Network.dll
349      File bin\686\Qt5Widgets.dll
350      File bin\686\libicudt57.dll
351      File bin\686\libicuin57.dll
352      File bin\686\libicuuc57.dll
353      File bin\686\libpcre16-0.dll
354      File qt.conf
355      File qsampler.ico
356      SetOutPath $INSTDIR\plugins\platforms
357      File bin\686\plugins\platforms\qwindows.dll
358      SetOutPath $INSTDIR\share\locale
359      File bin\686\share\locale\qsampler_*.qm
360      File bin\686\share\locale\qt*_*.qm
361      Call FilesCommonToQSamplerAndGigedit32
362  SectionEnd  SectionEnd
363    
364  Section "gigedit 0.1.1" Secgigedit  Function FilesCommonToQSamplerAndGigedit32
   StrCpy $installinggigedit "1"  
   ; make sure gtkmm is installed  
   Call CheckForGtkmm  
   ; Set output path to the installation directory.  
365    SetOutPath $INSTDIR    SetOutPath $INSTDIR
366      File bin\686\libbz2-1.dll
367      File bin\686\libfreetype-6.dll
368      Delete $INSTDIR\${SUBDIR_32_BIT}\libglib-2.0-0.dll ; remove old version
369      File bin\686\libglib-2.0-0.dll
370      File bin\686\libgraphite2.dll
371      File bin\686\libharfbuzz-0.dll
372      File bin\686\libiconv-2.dll
373      File bin\686\libintl-8.dll
374      File bin\686\libpcre-1.dll
375      File bin\686\libpng16-16.dll
376      Delete $INSTDIR\${SUBDIR_32_BIT}\zlib1.dll ; remove old version
377      File bin\686\zlib1.dll
378    FunctionEnd
379    
380    Section "gigedit ${GIGEDIT_VERSION}" Secgigedit
381      DetailPrint "Installing gigedit binaries ..."
382      StrCpy $installinggigedit "1"
383    
384      StrCmp $installingQSampler "1" commonDone
385      StrCmp $binType BIN_TYPE_64BIT 0 common
386      StrCmp $installing32BitToo "0" commonDone
387      common:
388      Call FilesCommonToQSamplerAndGigedit32
389      commonDone:
390    
391      ; Files common to 32 and 64 bit gigedit
392      SetOutPath $INSTDIR\share
393      File /r bin\686\share\glib-2.0
394      File /r bin\686\share\icons
395      SetOutPath $INSTDIR\share\locale
396      File /r bin\686\share\locale\de
397      File /r bin\686\share\locale\sv
398        
399      StrCmp $binType BIN_TYPE_64BIT gigedit64
400      ; 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
401      ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
402      Goto gigedit686
403    
404    ; Files to install    ; Files to install
405    File gigedit.exe  
406    File libsndfile-1.dll    gigedit64:
407    SetOutPath "$INSTDIR\plugins"    SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
408    File libgigedit.dll    File bin\64\gigedit.exe
409      File bin\64\libgigedit-4.dll
410      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}\plugins"
411      File bin\64\plugins\libgigeditlinuxsamplerplugin.dll
412      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
413      File bin\64\libatk-1.0-0.dll
414      File bin\64\libatkmm-1.6-1.dll
415      File bin\64\libbz2-1.dll
416      File bin\64\libcairo-2.dll
417      File bin\64\libcairo-gobject-2.dll
418      File bin\64\libcairomm-1.0-1.dll
419      File bin\64\libepoxy-0.dll
420      File bin\64\libexpat-1.dll
421      File bin\64\libffi-6.dll
422      File bin\64\libfontconfig-1.dll
423      File bin\64\libfreetype-6.dll
424      File bin\64\libgdkmm-3.0-1.dll
425      File bin\64\libgdk_pixbuf-2.0-0.dll
426      File bin\64\libgdk-3-0.dll
427      File bin\64\libgio-2.0-0.dll
428      File bin\64\libgiomm-2.4-1.dll
429      File bin\64\libglib-2.0-0.dll
430      File bin\64\libglibmm-2.4-1.dll
431      File bin\64\libgmodule-2.0-0.dll
432      File bin\64\libgobject-2.0-0.dll
433      File bin\64\libgraphite2.dll
434      File bin\64\libgtkmm-3.0-1.dll
435      File bin\64\libgtk-3-0.dll
436      File bin\64\libharfbuzz-0.dll
437      File bin\64\libiconv-2.dll
438      File bin\64\libintl-8.dll
439      File bin\64\libpango-1.0-0.dll
440      File bin\64\libpangocairo-1.0-0.dll
441      File bin\64\libpangoft2-1.0-0.dll
442      File bin\64\libpangomm-1.4-1.dll
443      File bin\64\libpangowin32-1.0-0.dll
444      File bin\64\libpcre-1.dll
445      File bin\64\libpixman-1-0.dll
446      File bin\64\libpng16-16.dll
447      File bin\64\libsigc-2.0-0.dll
448      File bin\64\zlib1.dll
449      ; remove old share directory
450      RMDir /r $INSTDIR\${SUBDIR_64_BIT}\share
451    
452      ; shall we install the 32 bit version as well?
453      StrCmp $installing32BitToo "1" gigedit686 done
454    
455      gigedit686:
456      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
457      File bin\686\gigedit.exe
458      File bin\686\libgigedit-4.dll
459      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}\plugins"
460      File bin\686\plugins\libgigeditlinuxsamplerplugin.dll
461      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
462      File bin\686\libatk-1.0-0.dll
463      File bin\686\libatkmm-1.6-1.dll
464      File bin\686\libcairo-2.dll
465      File bin\686\libcairo-gobject-2.dll
466      File bin\686\libcairomm-1.0-1.dll
467      File bin\686\libepoxy-0.dll
468      File bin\686\libexpat-1.dll
469      File bin\686\libffi-6.dll
470      File bin\686\libfontconfig-1.dll
471      File bin\686\libgdk_pixbuf-2.0-0.dll
472      File bin\686\libgdk-3-0.dll
473      File bin\686\libgdkmm-3.0-1.dll
474      File bin\686\libgio-2.0-0.dll
475      File bin\686\libgiomm-2.4-1.dll
476      File bin\686\libglibmm-2.4-1.dll
477      File bin\686\libgmodule-2.0-0.dll
478      File bin\686\libgobject-2.0-0.dll
479      File bin\686\libgtk-3-0.dll
480      File bin\686\libgtkmm-3.0-1.dll
481      File bin\686\libpango-1.0-0.dll
482      File bin\686\libpangocairo-1.0-0.dll
483      File bin\686\libpangoft2-1.0-0.dll
484      File bin\686\libpangomm-1.4-1.dll
485      File bin\686\libpangowin32-1.0-0.dll
486      File bin\686\libpixman-1-0.dll
487      File bin\686\libsigc-2.0-0.dll
488      ; remove old share directory
489      RMDir /r $INSTDIR\${SUBDIR_32_BIT}\share
490    
491      done:
492  SectionEnd  SectionEnd
493    
494  Section "libgig 3.2.1" Seclibgig  Section "libgig ${LIBGIG_VERSION}" Seclibgig
495      DetailPrint "Installing libgig binaries ..."
496    ; We make this a mandatory component    ; We make this a mandatory component
497    SectionIn RO    SectionIn RO
498    ; Set output path to the installation directory.  
499    SetOutPath $INSTDIR    StrCmp $binType BIN_TYPE_64BIT libgig64
500      StrCmp $binType BIN_TYPE_686SSE libgig686sse
501      Goto libgig686
502    
503    ; Files to install    ; Files to install
504    File libgig-6.dll  
505    File rifftree.exe    libgig64:
506    File dlsdump.exe    SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
507    File gigdump.exe    File bin\64\libgig-9.dll
508    File gigextract.exe    File bin\64\libakai-0.dll
509    ; As this is a mandatory component, we misuse it to install the uninstaller as well ...    File bin\64\rifftree.exe
510      File bin\64\dlsdump.exe
511      File bin\64\gigdump.exe
512      File bin\64\gigextract.exe
513      File bin\64\gigmerge.exe
514      File bin\64\gig2mono.exe
515      File bin\64\gig2stereo.exe
516      File bin\64\korg2gig.exe
517      File bin\64\korgdump.exe
518      File bin\64\akaidump.exe
519      File bin\64\akaiextract.exe
520      File bin\64\sf2dump.exe
521      File bin\64\sf2extract.exe
522      File bin\64\libgcc_s_seh-1.dll
523      File bin\64\libwinpthread-1.dll  
524      File bin\64\libstdc++-6.dll
525    
526      ; shall we install the 32 bit version as well?
527      StrCmp $installing32BitToo "1" libgig686sse
528      StrCmp $installingQSampler "1" libgigForQsampler done
529    
530      ; QSampler needs the 32 bit libgig dll
531      libgigForQsampler:
532      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
533      File bin\686sse\libgig-9.dll
534      Goto libgig32common
535    
536      libgig686sse:
537      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
538      File bin\686sse\libgig-9.dll
539      File bin\686sse\libakai-0.dll
540      File bin\686sse\rifftree.exe
541      File bin\686sse\dlsdump.exe
542      File bin\686sse\gigdump.exe
543      File bin\686sse\gigextract.exe
544      File bin\686sse\gigmerge.exe
545      File bin\686sse\gig2mono.exe
546      File bin\686sse\gig2stereo.exe
547      File bin\686sse\korg2gig.exe
548      File bin\686sse\korgdump.exe
549      File bin\686sse\akaidump.exe
550      File bin\686sse\akaiextract.exe
551      File bin\686sse\sf2dump.exe
552      File bin\686sse\sf2extract.exe
553      Goto libgig32common
554    
555      libgig686:
556      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
557      File bin\686\libgig-9.dll
558      File bin\686\libakai-0.dll
559      File bin\686\rifftree.exe
560      File bin\686\dlsdump.exe
561      File bin\686\gigdump.exe
562      File bin\686\gigextract.exe
563      File bin\686\gigmerge.exe
564      File bin\686\gig2mono.exe
565      File bin\686\gig2stereo.exe
566      File bin\686\korg2gig.exe
567      File bin\686\korgdump.exe
568      File bin\686\akaidump.exe
569      File bin\686\akaiextract.exe
570      File bin\686\sf2dump.exe
571      File bin\686\sf2extract.exe
572    
573      libgig32common:
574      Delete $INSTDIR\libgcc_s_dw2-1.dll ; remove old version
575      File bin\686\libgcc_s_dw2-1.dll
576      File bin\686\libwinpthread-1.dll  
577      File bin\686\libstdc++-6.dll
578      
579      done:
580    
581      ; As this is a mandatory component, we misuse is for the following
582      ; common tasks as well ...
583    
584      ; Add LinuxSampler and friends to the system's PATH variable
585      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
586      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
587      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
588    
589    ; Write the uninstall keys for Windows    ; Write the uninstall keys for Windows
590    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
591    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
592    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
593    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
594    WriteUninstaller "uninstall.exe"    WriteUninstaller "uninstall.exe"
595    ;Store installation folder  
596    WriteRegStr HKCU "Software\LinuxSampler" "" $INSTDIR    ; Store installation folders
597      WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
598      StrCmp $binType BIN_TYPE_64BIT 0 +3
599      WriteRegStr HKLM "Software\LinuxSampler" "VST 64 Directory" $vstPluginPath64
600      StrCmp $installing32BitToo "1" 0 +2
601      WriteRegStr HKLM "Software\LinuxSampler" "VST 32 Directory" $vstPluginPath
602    
603      ; Just for info, store the release date as well
604      WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
605    SectionEnd
606    
607    Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile
608      DetailPrint "Installing libsndfile binaries ..."
609      ; We make this a mandatory component
610      SectionIn RO
611    
612      StrCmp $binType BIN_TYPE_64BIT libsndfile64
613      ; 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
614      ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
615      Goto libsndfile686
616    
617      ; Files to install
618    
619      libsndfile64:
620      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
621      File bin\64\libsndfile-1.dll
622      File bin\64\libFLAC-8.dll
623      File bin\64\libogg-0.dll
624      File bin\64\libvorbis-0.dll
625      File bin\64\libvorbisenc-2.dll
626      File bin\64\libspeex-1.dll
627    
628      ; shall we install the 32 bit version as well?
629      StrCmp $installing32BitToo "1" libsndfile686 done
630    
631      libsndfile686:
632      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
633      File bin\686\libsndfile-1.dll
634      File bin\686\libFLAC-8.dll
635      File bin\686\libogg-0.dll
636      File bin\686\libvorbis-0.dll
637      File bin\686\libvorbisenc-2.dll
638      File bin\686\libspeex-1.dll
639      Goto done
640    
641      done:
642  SectionEnd  SectionEnd
643    
644  Section "Start Menu Shortcuts" SecShortcuts  Section "Start Menu Shortcuts" SecShortcuts
645        Var /GLOBAL javawbin
646      Var /GLOBAL samplerDir
647    
648      StrCmp $binType BIN_TYPE_64BIT 0 +3
649      StrCpy $samplerDir "$INSTDIR\${SUBDIR_64_BIT}"
650      Goto +2
651      StrCpy $samplerDir "$INSTDIR\${SUBDIR_32_BIT}"
652    
653      ; Switch system variables to 'all users', to ensure we create the start
654      ; menu shortcuts for all users and not just for the current user.
655      SetShellVarContext all
656    
657      ; try to resolve the full qualified path of the javaw binary
658      ClearErrors
659      SearchPath $javawbin javaw.exe
660      IfErrors 0 javawDetected
661      ClearErrors
662      ; if all fails, simply use SYSDIR (which should work almost always anyway)
663      DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
664      StrCpy $javawbin "$SYSDIR\javaw.exe"
665      javawDetected:
666    
667    CreateDirectory "$SMPROGRAMS\LinuxSampler"    CreateDirectory "$SMPROGRAMS\LinuxSampler"
668      
669      SetOutPath $INSTDIR
670    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
671      
672    StrCmp $installingLinuxSampler '1' 0 +2    StrCmp $installingLinuxSampler '1' 0 +3
673    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1 (backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0    SetOutPath $samplerDir
674        CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0
675    StrCmp $installingJSampler '1' 0 +2  
676    CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.8a (frontend).lnk' 'javaw' '-jar "$INSTDIR\Fantasia-0.8a.jar"' '$INSTDIR\jsampler.ico' 0    StrCmp $installingJSampler '1' 0 +3
677        SetOutPath $INSTDIR
678    StrCmp $installingQSampler '1' 0 +2    CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia ${FANTASIA_VERSION} (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0
679    CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.exe" 0  
680        StrCmp $installingQSampler '1' 0 +3
681    StrCmp $installinggigedit '1' 0 +2    SetOutPath $INSTDIR
682    CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.1.1 (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler ${QSAMPLER_VERSION} (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
683      
684      StrCmp $installinggigedit '1' 0 +3
685      SetOutPath $samplerDir
686      CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0
687    
688      !insertmacro CreateInternetShortcut \
689      "$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \
690      "http://www.linuxsampler.org/donations.html" \
691      "" "0"
692  SectionEnd  SectionEnd
693    
694  ;--------------------------------  ;--------------------------------
# Line 228  SectionEnd Line 696  SectionEnd
696  ; Uninstaller  ; Uninstaller
697    
698  Section "Uninstall"  Section "Uninstall"
699    ; Remove registry keys    Var /GLOBAL vstdir32
700      Var /GLOBAL vstdir64
701    
702      Call un.DetectSystemType
703    
704      DetailPrint "Removing LinuxSampler directories from PATH variable ..."
705      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
706      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
707      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
708    
709      StrCmp $binType BIN_TYPE_64BIT 0 uninstallVst32
710      DetailPrint "Searching for VST plugin (64 bit) ..."
711      ClearErrors
712      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 64 Directory"
713      IfErrors uninstallVst32 0
714      StrCpy $vstdir64 $0
715      DetailPrint "Removing VST plugin (64 bit) from: $vstdir64 ..."
716      Delete "$vstdir64\LinuxSampler64.dll"
717    
718      uninstallVst32:
719    
720      DetailPrint "Searching for VST plugin (32 bit) ..."
721      ClearErrors
722      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 32 Directory"
723      IfErrors uninstallVstDone 0
724      StrCpy $vstdir32 $0
725      DetailPrint "Removing VST plugin (32 bit) from: $vstdir32 ..."
726      Delete "$vstdir32\LinuxSampler32.dll"
727    
728      uninstallVstDone:
729      ClearErrors
730    
731      DetailPrint "Removing registry keys ..."
732    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
733    ; Remove files and uninstaller    DeleteRegKey HKLM "Software\LinuxSampler"
734    Delete $INSTDIR\*.*  
735    Delete $INSTDIR\plugins\*.*    ; Workaround for Vista and younger: switch system variables to 'all users'
736    ; Remove shortcuts, if any    ; otherwise e.g. we couldn't delete start menu shortcuts below on those
737      ; systems, as those variables would point to the current user.
738      SetShellVarContext all
739    
740      DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
741    Delete "$SMPROGRAMS\LinuxSampler\*.*"    Delete "$SMPROGRAMS\LinuxSampler\*.*"
742    ; Remove directories used  
743    RMDir "$SMPROGRAMS\LinuxSampler"    DetailPrint "Removing directories used ..."
744    RMDir "$INSTDIR\plugins"    RMDir /r "$SMPROGRAMS\LinuxSampler"
745    RMDir "$INSTDIR"    RMDir /r "$INSTDIR"
746  SectionEnd  SectionEnd
747    
748  ;--------------------------------  ;--------------------------------
749  ;Descriptions  ;Descriptions
750    
751  ;Language strings  ;Language strings
752  LangString DESC_SecLinuxSampler ${LANG_ENGLISH} "Sampler backend, 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."  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."
753  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."  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."
754  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!"  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!"
755  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. NOTE: this is yet an early development version!"  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."
756  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."  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."
757    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."
758  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
759    
760  ;Assign language strings to sections  ;Assign language strings to sections
# Line 259  LangString DESC_SecShortcuts ${LANG_ENGL Line 764  LangString DESC_SecShortcuts ${LANG_ENGL
764    !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)    !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
765    !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)    !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
766    !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)    !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
767      !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
768    !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)    !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
769  !insertmacro MUI_FUNCTION_DESCRIPTION_END  !insertmacro MUI_FUNCTION_DESCRIPTION_END

Legend:
Removed from v.1581  
changed lines
  Added in v.3631

  ViewVC Help
Powered by ViewVC