/[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 1587 by schoenebeck, Tue Dec 11 16:39:05 2007 UTC revision 2443 by persson, Wed Apr 17 04:19:09 2013 UTC
# Line 1  Line 1 
1  ; LinuxSampler Windows installer  ; LinuxSampler Windows installer
2  ;  ;
3  ; Copyright (C) 2007, The LinuxSampler Developers  ; Copyright (C) 2007-2013, 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-7u21-windows-i586.exe:
45    !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860"
46    ; jre-7u21-windows-x64.exe:
47    !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=76862"
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-2013 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-3.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-3.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-3.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\QtCore4.dll
347    File mingwm10.dll    File bin\686\QtGui4.dll
348      File bin\686\mingwm10.dll
349      File bin\686\libgcc_s_dw2-1.dll
350    File qsampler.ico    File qsampler.ico
351      SetOutPath $INSTDIR\share\locale
352      File bin\686\share\locale\qsampler_ru.qm
353      File bin\686\share\locale\qsampler_cs.qm
354      File bin\686\share\locale\qt_ru.qm
355      File bin\686\share\locale\qt_cs.qm
356  SectionEnd  SectionEnd
357    
358  Section "gigedit 0.1.1" Secgigedit  Section "gigedit ${GIGEDIT_VERSION}" Secgigedit
359      DetailPrint "Installing gigedit binaries ..."
360    StrCpy $installinggigedit "1"    StrCpy $installinggigedit "1"
361    
362    ; make sure gtkmm is installed    ; make sure gtkmm is installed
363    Call CheckForGtkmm    ; (commented out for now, since we include gtk(mm) DLLs with this
364    ; Set output path to the installation directory.    ; installer, so no check and no download necessary ATM)
365    SetOutPath $INSTDIR    ;Call CheckForGtkmm
366    
367      StrCmp $binType BIN_TYPE_64BIT gigedit64
368      ; 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
369      ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
370      Goto gigedit686
371    
372    ; Files to install    ; Files to install
373    File gigedit.exe  
374    File libsndfile-1.dll    gigedit64:
375    SetOutPath "$INSTDIR\plugins"    SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
376    File libgigedit.dll    File bin\64\gigedit.exe
377      File bin\64\libgigedit-2.dll
378      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}\plugins"
379      File bin\64\plugins\libgigeditlinuxsamplerplugin.dll
380      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
381      File bin\64\libatk-1.0-0.dll
382      File bin\64\libatkmm-1.6-1.dll
383      File bin\64\libcairo-2.dll
384      File bin\64\libcairomm-1.0-1.dll
385      File bin\64\libexpat-1.dll
386      File bin\64\libfontconfig-1.dll
387      File bin\64\libfreetype-6.dll
388      File bin\64\libgdkmm-2.4-1.dll
389      File bin\64\libgdk_pixbuf-2.0-0.dll
390      File bin\64\libgdk-win32-2.0-0.dll
391      File bin\64\libgio-2.0-0.dll
392      File bin\64\libgiomm-2.4-1.dll
393      File bin\64\libglib-2.0-0.dll
394      File bin\64\libglibmm-2.4-1.dll
395      File bin\64\libgmodule-2.0-0.dll
396      File bin\64\libgobject-2.0-0.dll
397      File bin\64\libgthread-2.0-0.dll
398      File bin\64\libgtkmm-2.4-1.dll
399      File bin\64\libgtk-win32-2.0-0.dll
400      File bin\64\libintl-8.dll
401      File bin\64\libpango-1.0-0.dll
402      File bin\64\libpangocairo-1.0-0.dll
403      File bin\64\libpangoft2-1.0-0.dll
404      File bin\64\libpangomm-1.4-1.dll
405      File bin\64\libpangowin32-1.0-0.dll
406      File bin\64\libpng14-14.dll
407      File bin\64\libsigc-2.0-0.dll
408      File bin\64\zlib1.dll
409      SetOutPath $INSTDIR\${SUBDIR_64_BIT}\etc\gtk-2.0
410      File bin\64\etc\gtk-2.0\gtkrc
411      SetOutPath $INSTDIR\${SUBDIR_64_BIT}\lib\gtk-2.0\2.10.0\engines
412      File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
413      SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\de\LC_MESSAGES
414      File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
415      File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
416      SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\locale\sv\LC_MESSAGES
417      File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
418      File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
419      SetOutPath $INSTDIR\${SUBDIR_64_BIT}\share\themes\MS-Windows\gtk-2.0
420      File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
421    
422      ; shall we install the 32 bit version as well?
423      StrCmp $installing32BitToo "1" gigedit686 done
424    
425      gigedit686:
426      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
427      File bin\686\gigedit.exe
428      File bin\686\libgigedit-2.dll
429      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}\plugins"
430      File bin\686\plugins\libgigeditlinuxsamplerplugin.dll
431      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
432      File bin\686\intl.dll
433      File bin\686\jpeg62.dll
434      File bin\686\libatk-1.0-0.dll
435      File bin\686\libatkmm-1.6-1.dll
436      File bin\686\libcairo-2.dll
437      File bin\686\libcairomm-1.0-1.dll
438      File bin\686\libgdkmm-2.4-1.dll
439      File bin\686\libgdk_pixbuf-2.0-0.dll
440      File bin\686\libgdk-win32-2.0-0.dll
441      File bin\686\libgio-2.0-0.dll
442      File bin\686\libgiomm-2.4-1.dll
443      File bin\686\libglib-2.0-0.dll
444      File bin\686\libglibmm-2.4-1.dll
445      File bin\686\libgmodule-2.0-0.dll
446      File bin\686\libgobject-2.0-0.dll
447      File bin\686\libgthread-2.0-0.dll
448      File bin\686\libgtkmm-2.4-1.dll
449      File bin\686\libgtk-win32-2.0-0.dll
450      File bin\686\libpango-1.0-0.dll
451      File bin\686\libpangocairo-1.0-0.dll
452      File bin\686\libpangomm-1.4-1.dll
453      File bin\686\libpangowin32-1.0-0.dll
454      File bin\686\libpng12-0.dll
455      File bin\686\libsigc-2.0-0.dll
456      File bin\686\libtiff3.dll
457      File bin\686\zlib1.dll
458      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\etc\gtk-2.0
459      File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
460      File bin\686\etc\gtk-2.0\gtkrc
461      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\engines
462      File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
463      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\lib\gtk-2.0\2.10.0\loaders
464      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
465      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
466      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
467      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
468      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
469      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
470      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
471      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
472      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
473      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
474      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
475      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
476      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
477      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
478      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
479      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\de\LC_MESSAGES
480      File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
481      File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
482      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\locale\sv\LC_MESSAGES
483      File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
484      File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
485      SetOutPath $INSTDIR\${SUBDIR_32_BIT}\share\themes\MS-Windows\gtk-2.0
486      File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
487      Goto done
488    
489      done:
490  SectionEnd  SectionEnd
491    
492  Section "libgig 3.2.1" Seclibgig  Section "libgig 3.3.0" Seclibgig
493      DetailPrint "Installing libgig binaries ..."
494    ; We make this a mandatory component    ; We make this a mandatory component
495    SectionIn RO    SectionIn RO
496    ; Set output path to the installation directory.  
497    SetOutPath $INSTDIR    StrCmp $binType BIN_TYPE_64BIT libgig64
498      StrCmp $binType BIN_TYPE_686SSE libgig686sse
499      Goto libgig686
500    
501    ; Files to install    ; Files to install
502    File libgig-6.dll  
503    File rifftree.exe    libgig64:
504    File dlsdump.exe    SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
505    File gigdump.exe    File bin\64\libgig-6.dll
506    File gigextract.exe    File bin\64\rifftree.exe
507    ; As this is a mandatory component, we misuse it to install the uninstaller as well ...    File bin\64\dlsdump.exe
508      File bin\64\gigdump.exe
509      File bin\64\gigextract.exe
510      ; special dependencies for the 64 bit version
511      File bin\64\libgcc_s_sjlj-1.dll
512      File bin\64\libstdc++-6.dll
513    
514      ; shall we install the 32 bit version as well?
515      StrCmp $installing32BitToo "1" libgig686sse
516      StrCmp $installingQSampler "1" libgigForQsampler done
517    
518      ; QSampler needs the 32 bit libgig dll
519      libgigForQsampler:
520      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
521      File bin\686sse\libgig-6.dll
522      Goto done
523    
524      libgig686sse:
525      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
526      File bin\686sse\libgig-6.dll
527      File bin\686sse\rifftree.exe
528      File bin\686sse\dlsdump.exe
529      File bin\686sse\gigdump.exe
530      File bin\686sse\gigextract.exe
531      Goto done
532    
533      libgig686:
534      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
535      File bin\686\libgig-6.dll
536      File bin\686\rifftree.exe
537      File bin\686\dlsdump.exe
538      File bin\686\gigdump.exe
539      File bin\686\gigextract.exe
540      Goto done
541    
542      done:
543    
544      ; As this is a mandatory component, we misuse is for the following
545      ; common tasks as well ...
546    
547      ; Add LinuxSampler and friends to the system's PATH variable
548      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
549      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
550      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
551    
552    ; Write the uninstall keys for Windows    ; Write the uninstall keys for Windows
553    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
554    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
555    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
556    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
557    WriteUninstaller "uninstall.exe"    WriteUninstaller "uninstall.exe"
558    ;Store installation folder  
559    WriteRegStr HKCU "Software\LinuxSampler" "" $INSTDIR    ; Store installation folders
560      WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
561      StrCmp $binType BIN_TYPE_64BIT 0 +3
562      WriteRegStr HKLM "Software\LinuxSampler" "VST 64 Directory" $vstPluginPath64
563      StrCmp $installing32BitToo "1" 0 +2
564      WriteRegStr HKLM "Software\LinuxSampler" "VST 32 Directory" $vstPluginPath
565    
566      ; Just for info, store the release date as well
567      WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
568    SectionEnd
569    
570    Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile
571      DetailPrint "Installing libsndfile binaries ..."
572      ; We make this a mandatory component
573      SectionIn RO
574    
575      StrCmp $binType BIN_TYPE_64BIT libsndfile64
576      ; 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
577      ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
578      Goto libsndfile686
579    
580      ; Files to install
581    
582      libsndfile64:
583      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
584      File bin\64\libsndfile-1.dll
585      File bin\64\libFLAC-8.dll
586      File bin\64\libogg-0.dll
587      File bin\64\libvorbis-0.dll
588      File bin\64\libvorbisenc-2.dll
589    
590      ; shall we install the 32 bit version as well?
591      StrCmp $installing32BitToo "1" libsndfile686 done
592    
593      libsndfile686:
594      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
595      File bin\686\libsndfile-1.dll
596      File bin\686\libFLAC-8.dll
597      File bin\686\libogg-0.dll
598      File bin\686\libvorbis-0.dll
599      File bin\686\libvorbisenc-2.dll
600      Goto done
601    
602      done:
603  SectionEnd  SectionEnd
604    
605  Section "Start Menu Shortcuts" SecShortcuts  Section "Start Menu Shortcuts" SecShortcuts
606        Var /GLOBAL javawbin
607      Var /GLOBAL samplerDir
608    
609      StrCmp $binType BIN_TYPE_64BIT 0 +3
610      StrCpy $samplerDir "$INSTDIR\${SUBDIR_64_BIT}"
611      Goto +2
612      StrCpy $samplerDir "$INSTDIR\${SUBDIR_32_BIT}"
613    
614      ; Switch system variables to 'all users', to ensure we create the start
615      ; menu shortcuts for all users and not just for the current user.
616      SetShellVarContext all
617    
618      ; try to resolve the full qualified path of the javaw binary
619      ClearErrors
620      SearchPath $javawbin javaw.exe
621      IfErrors 0 javawDetected
622      ClearErrors
623      ; if all fails, simply use SYSDIR (which should work almost always anyway)
624      DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
625      StrCpy $javawbin "$SYSDIR\javaw.exe"
626      javawDetected:
627    
628    CreateDirectory "$SMPROGRAMS\LinuxSampler"    CreateDirectory "$SMPROGRAMS\LinuxSampler"
629      
630      SetOutPath $INSTDIR
631    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
632      
633    StrCmp $installingLinuxSampler '1' 0 +2    StrCmp $installingLinuxSampler '1' 0 +3
634    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1 (backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0    SetOutPath $samplerDir
635        CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0
636    StrCmp $installingJSampler '1' 0 +2  
637    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
638        SetOutPath $INSTDIR
639    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
640    CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0  
641        StrCmp $installingQSampler '1' 0 +3
642    StrCmp $installinggigedit '1' 0 +2    SetOutPath $INSTDIR
643    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
644      
645      StrCmp $installinggigedit '1' 0 +3
646      SetOutPath $samplerDir
647      CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0
648    
649      !insertmacro CreateInternetShortcut \
650      "$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \
651      "http://www.linuxsampler.org/donations.html" \
652      "" "0"
653  SectionEnd  SectionEnd
654    
655  ;--------------------------------  ;--------------------------------
# Line 229  SectionEnd Line 657  SectionEnd
657  ; Uninstaller  ; Uninstaller
658    
659  Section "Uninstall"  Section "Uninstall"
660    ; Remove registry keys    Var /GLOBAL vstdir32
661      Var /GLOBAL vstdir64
662    
663      Call un.DetectSystemType
664    
665      DetailPrint "Removing LinuxSampler directories from PATH variable ..."
666      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
667      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
668      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
669    
670      StrCmp $binType BIN_TYPE_64BIT 0 uninstallVst32
671      DetailPrint "Searching for VST plugin (64 bit) ..."
672      ClearErrors
673      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 64 Directory"
674      IfErrors uninstallVst32 0
675      StrCpy $vstdir64 $0
676      DetailPrint "Removing VST plugin (64 bit) from: $vstdir64 ..."
677      Delete "$vstdir64\LinuxSampler64.dll"
678    
679      uninstallVst32:
680    
681      DetailPrint "Searching for VST plugin (32 bit) ..."
682      ClearErrors
683      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 32 Directory"
684      IfErrors uninstallVstDone 0
685      StrCpy $vstdir32 $0
686      DetailPrint "Removing VST plugin (32 bit) from: $vstdir32 ..."
687      Delete "$vstdir32\LinuxSampler32.dll"
688    
689      uninstallVstDone:
690      ClearErrors
691    
692      DetailPrint "Removing registry keys ..."
693    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
694    ; Remove files and uninstaller    DeleteRegKey HKLM "Software\LinuxSampler"
695    Delete $INSTDIR\*.*  
696    Delete $INSTDIR\plugins\*.*    ; Workaround for Vista and younger: switch system variables to 'all users'
697    ; Remove shortcuts, if any    ; otherwise e.g. we couldn't delete start menu shortcuts below on those
698      ; systems, as those variables would point to the current user.
699      SetShellVarContext all
700    
701      DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
702    Delete "$SMPROGRAMS\LinuxSampler\*.*"    Delete "$SMPROGRAMS\LinuxSampler\*.*"
703    ; Remove directories used  
704    RMDir "$SMPROGRAMS\LinuxSampler"    DetailPrint "Removing directories used ..."
705    RMDir "$INSTDIR\plugins"    RMDir /r "$SMPROGRAMS\LinuxSampler"
706    RMDir "$INSTDIR"    RMDir /r "$INSTDIR"
707  SectionEnd  SectionEnd
708    
709  ;--------------------------------  ;--------------------------------
710  ;Descriptions  ;Descriptions
711    
712  ;Language strings  ;Language strings
713  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."
714  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."
715  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!"
716  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."
717  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 Gigasampler format (v2 and v3) files. This library is required by LinuxSampler, gigedit and QSampler."
718    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."
719  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
720    
721  ;Assign language strings to sections  ;Assign language strings to sections
# Line 260  LangString DESC_SecShortcuts ${LANG_ENGL Line 725  LangString DESC_SecShortcuts ${LANG_ENGL
725    !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)    !insertmacro MUI_DESCRIPTION_TEXT ${SecQSampler} $(DESC_SecQSampler)
726    !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)    !insertmacro MUI_DESCRIPTION_TEXT ${Secgigedit} $(DESC_Secgigedit)
727    !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)    !insertmacro MUI_DESCRIPTION_TEXT ${Seclibgig} $(DESC_Seclibgig)
728      !insertmacro MUI_DESCRIPTION_TEXT ${Seclibsndfile} $(DESC_Seclibsndfile)
729    !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)    !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} $(DESC_SecShortcuts)
730  !insertmacro MUI_FUNCTION_DESCRIPTION_END  !insertmacro MUI_FUNCTION_DESCRIPTION_END

Legend:
Removed from v.1587  
changed lines
  Added in v.2443

  ViewVC Help
Powered by ViewVC