/[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 1547 by schoenebeck, Wed Dec 5 01:01:01 2007 UTC revision 1903 by schoenebeck, Tue May 12 20:24:46 2009 UTC
# Line 1  Line 1 
1  ; LinuxSampler Windows installer  ; LinuxSampler Windows installer
2  ;  ;
3  ; Copyright (C) 2007, The LinuxSampler Developers  ; Copyright (C) 2007-2009, 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 NSIS's
11    ;    plugin 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  ; Probably the best compression ratio  ; Probably the best compression ratio
18  SetCompressor lzma  SetCompressor lzma
19    
20  ;Include Modern UI  ;Include Modern UI
21  !include "MUI.nsh"  !include "MUI.nsh"
22    !include "EnvVarUpdate.nsh"
23    
24    !define RELEASE_DATE "20090512"
25    
26  ; The name of the installer  ; The name of the installer
27  Name "LinuxSampler"  Name "LinuxSampler (${RELEASE_DATE})"
28    
29  ; The file to write  ; The file to write
30  OutFile "linuxsampler_20071206_setup.exe"  OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
31    
32  ; Java Runtime Environment, needed for JSampler  ; Java Runtime Environment, needed for JSampler
33  !define JRE_VERSION "1.6"  !define JRE_VERSION "1.6"
34  !define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=11292"  !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=29220"
35    !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=29222"
36    
37  ; The default installation directory  ; The default installation directory
38  InstallDir $PROGRAMFILES\LinuxSampler  InstallDir "$PROGRAMFILES64\LinuxSampler"
39    
40  ; Get installation folder from registry if available  !define DEFAULT_VST_DIR "$PROGRAMFILES64\Steinberg\VstPlugins"
 InstallDirRegKey HKCU "Software\LinuxSampler" ""  
41    
42  ;LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"  ; Get installation folder from registry if available
43    InstallDirRegKey HKLM "Software\LinuxSampler" "Main Directory"
44    
45  ;--------------------------------  ;--------------------------------
46  ;Interface Settings  ;Interface Settings
# Line 40  InstallDirRegKey HKCU "Software\LinuxSam Line 53  InstallDirRegKey HKCU "Software\LinuxSam
53  ;Version Information  ;Version Information
54    
55  VIProductVersion "0.0.0.0"  VIProductVersion "0.0.0.0"
56  VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "LinuxSampler Installer"  VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer"
57  VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"  VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org"
58  VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"  VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project"
59  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" ""
60  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2003-2007 The LinuxSampler Project"  VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2003-2009 The LinuxSampler Project"
61  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "all-in-one installer"  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})"
62  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"  VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"
63    
64  ;--------------------------------  !define BIN_TYPE_64BIT  "64 bit"
65    !define BIN_TYPE_686SSE "686 SSE"
66    !define BIN_TYPE_686    "686"
67    
68    ;--------------------------------
69  ; Pages  ; Pages
70    
 ;Page license  
 ;Page components  
 ;Page directory  
 ;Page instfiles  
   
71  !insertmacro MUI_PAGE_LICENSE "license.rtf"  !insertmacro MUI_PAGE_LICENSE "license.rtf"
72  !insertmacro MUI_PAGE_COMPONENTS  !insertmacro MUI_PAGE_COMPONENTS
73  !insertmacro MUI_PAGE_DIRECTORY  !insertmacro MUI_PAGE_DIRECTORY
# Line 64  VIAddVersionKey /LANG=${LANG_ENGLISH} "F Line 75  VIAddVersionKey /LANG=${LANG_ENGLISH} "F
75  !insertmacro MUI_UNPAGE_CONFIRM  !insertmacro MUI_UNPAGE_CONFIRM
76  !insertmacro MUI_UNPAGE_INSTFILES  !insertmacro MUI_UNPAGE_INSTFILES
77    
 ;UninstPage uninstConfirm  
 ;UninstPage instfiles  
   
 ;LicenseData license.rtf  
   
78  ;--------------------------------  ;--------------------------------
79  ;Languages  ;Languages
80    
# Line 76  VIAddVersionKey /LANG=${LANG_ENGLISH} "F Line 82  VIAddVersionKey /LANG=${LANG_ENGLISH} "F
82    
83  ;--------------------------------  ;--------------------------------
84    
85    Function .onInit
86      Var /GLOBAL installingLinuxSampler
87      Var /GLOBAL installingJSampler
88      Var /GLOBAL installingQSampler
89      Var /GLOBAL installinggigedit
90      StrCpy $installingLinuxSampler "0"
91      StrCpy $installingJSampler "0"
92      StrCpy $installingQSampler "0"
93      StrCpy $installinggigedit "0"
94    
95      ; We call this here for the uninstaller, its also called in the ""
96      ; section (for installing) just for seeing the debug output, as ouput
97      ; this init handler wont make it into the "Details" list.
98      Call DetectSystemType
99    FunctionEnd
100    
101    ; detects CPU capabilities, determmines which native binary type to install
102    ; and selects the appropriate windows registry view (32 bit or 64 bit)
103    Function DetectSystemType
104      Var /GLOBAL binType
105    
106      ; check if this is a 64 bit windows
107      System::Call "kernel32::GetCurrentProcess() i .s"
108      System::Call "kernel32::IsWow64Process(i s, *i .r0)"
109      IntCmp $0 0 not64bit
110      StrCpy $binType BIN_TYPE_64BIT
111      DetailPrint "64 bit Windows detected."
112      SetRegView 64
113      Goto DetectSystemDone
114    
115      not64bit: ; a 32 bit system
116    
117      SetRegView 32
118    
119      ; check if CPU supports SSE
120      cpudesc::tell
121      Pop $0                     ; full identification string in $0
122      StrCpy $1 $0 1, 34         ; pull out one character after SSE=
123      IntFmt $2 "%u" $1          ; and turn it into a number
124      IntCmpU $2 1 +1 +4 +4
125      StrCpy $binType BIN_TYPE_686SSE
126      DetailPrint "32 bit Windows, SSE CPU detected."
127      Goto DetectSystemDone
128      StrCpy $binType BIN_TYPE_686
129      DetailPrint "32 bit Windows (no SSE support) detected."
130    
131      DetectSystemDone:
132    FunctionEnd
133    
134  ; Check for the presence of gtkmm, and if false, ask the user whether to  ; Check for the presence of gtkmm, and if false, ask the user whether to
135  ; download and install gtkmm now from the internet.  ; download and install gtkmm now from the internet.
136  Function CheckForGtkmm  Function CheckForGtkmm
137    Var /GLOBAL gtkmmSetupFile    Var /GLOBAL gtkmmSetupFile
138    
139      ClearErrors
140    ; This is just a lazy check for the presence of gtkmm, we should better use:    ; This is just a lazy check for the presence of gtkmm, we should better use:
141    ; System::Call function (NSI internal function) to actually call an arbitrary    ; System::Call function (NSI internal function) to actually call an arbitrary
142    ; gtkmm function (/method) from a gtkmm DLL to make it certain    ; gtkmm function (/method) from a gtkmm DLL to make it certain
# Line 109  FunctionEnd Line 165  FunctionEnd
165    
166  ; Downloads and launches the JRE installer from the internet  ; Downloads and launches the JRE installer from the internet
167  Function GetJRE  Function GetJRE
168          MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \    Var /GLOBAL jreUri
                          be downloaded and installed"  
169    
170          StrCpy $2 "$TEMP\Java Runtime Environment.exe"    StrCmp $binType BIN_TYPE_64BIT 0 +3
171          nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2    StrCpy $jreUri JRE_64_URL
172          Pop $R0 ;Get the return value    Goto +2
173                  StrCmp $R0 "success" +3    StrCpy $jreUri JRE_32_URL
174                  MessageBox MB_OK "Download failed: $R0"  
175                  Quit    MessageBox MB_OK "JSampler requires Java ${JRE_VERSION}, it will now \
176          ExecWait $2                      be downloaded and installed"
177          Delete $2  
178      StrCpy $2 "$TEMP\Java Runtime Environment.exe"
179      nsisdl::download /TIMEOUT=30000 $jreUri $2
180      Pop $R0  ; Get the return value
181      StrCmp $R0 "success" +3
182      MessageBox MB_OK "Download failed: $R0"
183      Quit
184      ExecWait $2
185      Delete $2
186  FunctionEnd  FunctionEnd
187    
188  ; 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
# Line 128  Function DetectJRE Line 191  Function DetectJRE
191               "CurrentVersion"               "CurrentVersion"
192    StrCmp $2 ${JRE_VERSION} done    StrCmp $2 ${JRE_VERSION} done
193    
194      StrCmp $binType BIN_TYPE_64BIT 0 downloadjre
195    
196      ; on 64 bit systems also check the 32 bit view of the registry, maybe
197      ; a 32 bit JRE was already installed
198      SetRegView 32
199      ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
200                 "CurrentVersion"
201      SetRegView 64  ; restore 64 bit view
202      StrCmp $3 ${JRE_VERSION} done
203    
204      downloadjre:
205    Call GetJRE    Call GetJRE
206    
207    done:    done:
208  FunctionEnd  FunctionEnd
209    
210    ; Tries to find the location where VST plugins should be installed to
211    Function DetectVstPath
212      Var /GLOBAL vstPluginPath
213    
214      ClearErrors
215      ReadRegStr $0 HKCU "Software\VST" "VSTPluginsPath"
216      IfErrors check2ndRegistryKey 0
217      StrCpy $vstPluginPath $0
218      DetailPrint "Found VST plugin directory in HKCU registry."
219      Goto done
220    
221      check2ndRegistryKey:
222      ClearErrors
223      ReadRegStr $0 HKLM "Software\VST" "VSTPluginsPath"
224      IfErrors noRegistryKeyExists 0
225      StrCpy $vstPluginPath $0
226      DetailPrint "Found VST plugin directory in HKLM registry."
227      Goto done
228    
229      noRegistryKeyExists:
230      ClearErrors
231      DetailPrint "No VST plugin directory defined in registry."
232      StrCpy $vstPluginPath "${DEFAULT_VST_DIR}"
233    
234      done:
235      DetailPrint "Using the following as VST plugin directory: $vstPluginPath"
236    FunctionEnd
237    
238    ;--------------------------------
239    
240    ; primer things to do
241    Section ""
242      Call DetectSystemType
243      Call DetectVstPath
244    SectionEnd
245    
246  ;--------------------------------  ;--------------------------------
247    
248  ; The stuff to install  ; The stuff to install
249  Section "LinuxSampler 0.5.1" SecLinuxSampler  Section "LinuxSampler 0.5.1.12cvs" SecLinuxSampler
250      DetailPrint "Installing LinuxSampler binaries ..."
251      StrCpy $installingLinuxSampler "1"
252    
253    ; Set output path to the installation directory.    ; Set output path to the installation directory.
254    SetOutPath $INSTDIR    SetOutPath $INSTDIR
255    
256      StrCmp $binType BIN_TYPE_64BIT linuxsampler64
257      StrCmp $binType BIN_TYPE_686SSE linuxsampler686sse
258      Goto linuxsampler686
259    
260    ; Files to install    ; Files to install
261  ;  File linuxsampler.exe  
262  ;  File liblinuxsampler.dll    linuxsampler64:
263      File bin\64\linuxsampler.exe
264      File bin\64\liblinuxsampler-1.dll
265      SetOutPath $vstPluginPath
266      File bin\64\LinuxSampler.dll
267      Goto done
268    
269      linuxsampler686sse:
270      File bin\686sse\linuxsampler.exe
271      File bin\686sse\liblinuxsampler-1.dll
272      SetOutPath $vstPluginPath
273      File bin\686sse\LinuxSampler.dll
274      Goto done
275    
276      linuxsampler686:
277      File bin\686\linuxsampler.exe
278      File bin\686\liblinuxsampler-1.dll
279      SetOutPath $vstPluginPath
280      File bin\686\LinuxSampler.dll
281      Goto done
282    
283      done:
284  SectionEnd  SectionEnd
285    
286  Section "JSampler 'Fantasia' 0.0.1" SecJSampler  Section "JSampler 'Fantasia' 0.8a-cvs6" SecJSampler
287      DetailPrint "Installing JSampler binaries ..."
288    ; make sure JRE is installed    ; make sure JRE is installed
289    Call DetectJRE    Call DetectJRE
290      StrCpy $installingJSampler "1"
291    ; Set output path to the installation directory.    ; Set output path to the installation directory.
292    SetOutPath $INSTDIR    SetOutPath $INSTDIR
293    ; Files to install    ; Files to install
294  ;  File jsampler.jar    File bin\Fantasia-0.8a-cvs6.jar
295      File jsampler.ico
296  SectionEnd  SectionEnd
297    
298  Section "QSampler 0.2.0" SecQSampler  Section "QSampler 0.2.1.26" SecQSampler
299      DetailPrint "Installing QSampler binaries ..."
300      StrCpy $installingQSampler "1"
301    ; Set output path to the installation directory.    ; Set output path to the installation directory.
302    SetOutPath $INSTDIR    SetOutPath $INSTDIR
303    ; Files to install    ; Files to install
304  ;  File qsampler.exe    File bin\686\qsampler.exe
305  ;  File liblscp.dll    File bin\686\QtCore4.dll
306      File bin\686\QtGui4.dll
307      File bin\686\mingwm10.dll
308      File qsampler.ico
309      SetOutPath $INSTDIR\share\locale
310      File bin\686\share\locale\qsampler_ru.qm
311  SectionEnd  SectionEnd
312    
313  Section "gigedit 0.1.1" Secgigedit  Section "gigedit 0.1.1.x (cvs2009-05-10)" Secgigedit
314      DetailPrint "Installing gigedit binaries ..."
315      StrCpy $installinggigedit "1"
316    
317    ; make sure gtkmm is installed    ; make sure gtkmm is installed
318    Call CheckForGtkmm    ; (commented out for now, since we include gtk(mm) DLLs with this
319      ; installer, so no check and no download necessary ATM)
320      ;Call CheckForGtkmm
321    
322    ; Set output path to the installation directory.    ; Set output path to the installation directory.
323    SetOutPath $INSTDIR    SetOutPath $INSTDIR
324    
325      StrCmp $binType BIN_TYPE_64BIT gigedit64
326      ; 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
327      ;StrCmp $binType BIN_TYPE_686SSE gigedit686sse
328      Goto gigedit686
329    
330    ; Files to install    ; Files to install
331  ;  File gigedit.exe  
332    SetOutPath "$INSTDIR\Plugins"    gigedit64:
333  ;  File libgigedit.dll    File bin\64\gigedit.exe
334      File bin\64\libgigedit-1.dll
335      SetOutPath "$INSTDIR\plugins"
336      File bin\64\plugins\libgigeditlinuxsamplerplugin-1.dll
337      SetOutPath $INSTDIR
338      File bin\64\libatk-1.0-0.dll
339      File bin\64\libatkmm-1.6-1.dll
340      File bin\64\libcairo-2.dll
341      File bin\64\libcairomm-1.0-1.dll
342      File bin\64\libgdkmm-2.4-1.dll
343      File bin\64\libgdk_pixbuf-2.0-0.dll
344      File bin\64\libgdk-win32-2.0-0.dll
345      File bin\64\libgio-2.0-0.dll
346      File bin\64\libgiomm-2.4-1.dll
347      File bin\64\libglib-2.0-0.dll
348      File bin\64\libglibmm-2.4-1.dll
349      File bin\64\libgmodule-2.0-0.dll
350      File bin\64\libgobject-2.0-0.dll
351      File bin\64\libgthread-2.0-0.dll
352      File bin\64\libgtkmm-2.4-1.dll
353      File bin\64\libgtk-win32-2.0-0.dll
354      File bin\64\libintl-8.dll
355      File bin\64\libjpeg-62.dll
356      File bin\64\libpango-1.0-0.dll
357      File bin\64\libpangocairo-1.0-0.dll
358      File bin\64\libpangomm-1.4-1.dll
359      File bin\64\libpangowin32-1.0-0.dll
360      File bin\64\libpng12-0.dll
361      File bin\64\libsigc-2.0-0.dll
362      File bin\64\libtiff.dll
363      File bin\64\zlib1.dll
364      SetOutPath $INSTDIR\etc\gtk-2.0
365      File bin\64\etc\gtk-2.0\gtkrc
366      SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
367      File bin\64\lib\gtk-2.0\2.10.0\engines\libwimp.dll
368      SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
369      File bin\64\share\locale\de\LC_MESSAGES\gigedit.mo
370      File bin\64\share\locale\de\LC_MESSAGES\gtk20.mo
371      SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
372      File bin\64\share\locale\sv\LC_MESSAGES\gigedit.mo
373      File bin\64\share\locale\sv\LC_MESSAGES\gtk20.mo
374      SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
375      File bin\64\share\themes\MS-Windows\gtk-2.0\gtkrc
376      Goto done
377    
378      gigedit686:
379      File bin\686\gigedit.exe
380      File bin\686\libgigedit-1.dll
381      SetOutPath "$INSTDIR\plugins"
382      File bin\686\plugins\libgigeditlinuxsamplerplugin-1.dll
383      SetOutPath $INSTDIR
384      File bin\686\intl.dll
385      File bin\686\jpeg62.dll
386      File bin\686\libatk-1.0-0.dll
387      File bin\686\libatkmm-1.6-1.dll
388      File bin\686\libcairo-2.dll
389      File bin\686\libcairomm-1.0-1.dll
390      File bin\686\libgdkmm-2.4-1.dll
391      File bin\686\libgdk_pixbuf-2.0-0.dll
392      File bin\686\libgdk-win32-2.0-0.dll
393      File bin\686\libgio-2.0-0.dll
394      File bin\686\libgiomm-2.4-1.dll
395      File bin\686\libglib-2.0-0.dll
396      File bin\686\libglibmm-2.4-1.dll
397      File bin\686\libgmodule-2.0-0.dll
398      File bin\686\libgobject-2.0-0.dll
399      File bin\686\libgthread-2.0-0.dll
400      File bin\686\libgtkmm-2.4-1.dll
401      File bin\686\libgtk-win32-2.0-0.dll
402      File bin\686\libpango-1.0-0.dll
403      File bin\686\libpangocairo-1.0-0.dll
404      File bin\686\libpangomm-1.4-1.dll
405      File bin\686\libpangowin32-1.0-0.dll
406      File bin\686\libpng12-0.dll
407      File bin\686\libsigc-2.0-0.dll
408      File bin\686\libtiff3.dll
409      File bin\686\zlib1.dll
410      SetOutPath $INSTDIR\etc\gtk-2.0
411      File bin\686\etc\gtk-2.0\gdk-pixbuf.loaders
412      File bin\686\etc\gtk-2.0\gtkrc
413      SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\engines
414      File bin\686\lib\gtk-2.0\2.10.0\engines\libwimp.dll
415      SetOutPath $INSTDIR\lib\gtk-2.0\2.10.0\loaders
416      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ani.dll
417      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-bmp.dll
418      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-gif.dll
419      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-icns.dll
420      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ico.dll
421      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-jpeg.dll
422      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pcx.dll
423      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-png.dll
424      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-pnm.dll
425      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-ras.dll
426      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tga.dll
427      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-tiff.dll
428      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-wbmp.dll
429      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xbm.dll
430      File bin\686\lib\gtk-2.0\2.10.0\loaders\libpixbufloader-xpm.dll
431      SetOutPath $INSTDIR\share\locale\de\LC_MESSAGES
432      File bin\686\share\locale\de\LC_MESSAGES\gigedit.mo
433      File bin\686\share\locale\de\LC_MESSAGES\gtk20.mo
434      SetOutPath $INSTDIR\share\locale\sv\LC_MESSAGES
435      File bin\686\share\locale\sv\LC_MESSAGES\gigedit.mo
436      File bin\686\share\locale\sv\LC_MESSAGES\gtk20.mo
437      SetOutPath $INSTDIR\share\themes\MS-Windows\gtk-2.0
438      File bin\686\share\themes\MS-Windows\gtk-2.0\gtkrc
439      Goto done
440    
441      done:
442  SectionEnd  SectionEnd
443    
444  Section "libgig 3.2.1" Seclibgig  Section "libgig 3.2.1.x (cvs2009-05-03)" Seclibgig
445      DetailPrint "Installing libgig binaries ..."
446    ; We make this a mandatory component    ; We make this a mandatory component
447    SectionIn RO    SectionIn RO
448    ; Set output path to the installation directory.    ; Set output path to the installation directory.
449    SetOutPath $INSTDIR    SetOutPath $INSTDIR
450    
451      StrCmp $binType BIN_TYPE_64BIT libgig64
452      StrCmp $binType BIN_TYPE_686SSE libgig686sse
453      Goto libgig686
454    
455    ; Files to install    ; Files to install
456  ;  File libgig.dll  
457    ; As this is a mandatory component, we misuse it to install the uninstaller as well ...    libgig64:
458      File bin\64\libgig-6.dll
459      File bin\64\rifftree.exe
460      File bin\64\dlsdump.exe
461      File bin\64\gigdump.exe
462      File bin\64\gigextract.exe
463      ; special dependency for the 64 bit version
464      File bin\64\libgcc_s_sjlj-1.dll
465      Goto done
466    
467      libgig686sse:
468      File bin\686sse\libgig-6.dll
469      File bin\686sse\rifftree.exe
470      File bin\686sse\dlsdump.exe
471      File bin\686sse\gigdump.exe
472      File bin\686sse\gigextract.exe
473      Goto done
474    
475      libgig686:
476      File bin\686\libgig-6.dll
477      File bin\686\rifftree.exe
478      File bin\686\dlsdump.exe
479      File bin\686\gigdump.exe
480      File bin\686\gigextract.exe
481      Goto done
482    
483      done:
484    
485      ; As this is a mandatory component, we misuse is for the following
486      ; common tasks as well ...
487    
488      ; Add LinuxSampler and friends to the system's PATH variable
489      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
490    
491    ; Write the uninstall keys for Windows    ; Write the uninstall keys for Windows
492    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler 2007-12-05"    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "DisplayName" "LinuxSampler ${RELEASE_DATE}"
493    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
494    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
495    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
496    WriteUninstaller "uninstall.exe"    WriteUninstaller "uninstall.exe"
497    ;Store installation folder  
498    WriteRegStr HKCU "Software\LinuxSampler" "" $INSTDIR    ; Store installation folders
499      WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
500      WriteRegStr HKLM "Software\LinuxSampler" "VST Directory" $vstPluginPath
501    
502      ; Just for info, store the release date as well
503      WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
504  SectionEnd  SectionEnd
505    
506  Section "libsndfile 1.0.17" Seclibsndfile  Section "libsndfile 1.0.19" Seclibsndfile
507      DetailPrint "Installing libsndfile binaries ..."
508    ; We make this a mandatory component    ; We make this a mandatory component
509    SectionIn RO    SectionIn RO
510    ; Set output path to the installation directory.    ; Set output path to the installation directory.
511    SetOutPath $INSTDIR    SetOutPath $INSTDIR
512    
513      StrCmp $binType BIN_TYPE_64BIT libsndfile64
514      ; 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
515      ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
516      Goto libsndfile686
517    
518    ; Files to install    ; Files to install
519  ;  File libsndfile-1.dll  
520      libsndfile64:
521      File bin\64\libsndfile-1.dll
522      Goto done
523    
524      libsndfile686:
525      File bin\686\libsndfile-1.dll
526      Goto done
527    
528      done:
529  SectionEnd  SectionEnd
530    
531  Section "Start Menu Shortcuts" SecShortcuts  Section "Start Menu Shortcuts" SecShortcuts
532      Var /GLOBAL javawbin
533    
534      ; Switch system variables to 'all users', to ensure we create the start
535      ; menu shortcuts for all users and not just for the current user.
536      SetShellVarContext all
537    
538      ; try to resolve the full qualified path of the javaw binary
539      ClearErrors
540      SearchPath $javawbin javaw.exe
541      IfErrors 0 javawDetected
542      ClearErrors
543      ; if all fails, simply use SYSDIR (which should work almost always anyway)
544      DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
545      StrCpy $javawbin "$SYSDIR\javaw.exe"
546      javawDetected:
547    
548    CreateDirectory "$SMPROGRAMS\LinuxSampler"    CreateDirectory "$SMPROGRAMS\LinuxSampler"
549    
550    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
551    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler (backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0  
552    CreateShortCut "$SMPROGRAMS\LinuxSampler\JSampler Fantasia (frontend).lnk" "$INSTDIR\jjjjjsampler.exe" "" "$INSTDIR\jjjjjsampler.exe" 0    StrCmp $installingLinuxSampler '1' 0 +2
553    CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 0.5.1.12cvs (stand alone backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0
554    CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0  
555      StrCmp $installingJSampler '1' 0 +2
556      CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.8a-cvs6 (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.8a-cvs6.jar"' '$INSTDIR\jsampler.ico' 0
557    
558      StrCmp $installingQSampler '1' 0 +2
559      CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.1.26 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
560    
561      StrCmp $installinggigedit '1' 0 +2
562      CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.1.1.x cvs2009-05-10 (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0
563  SectionEnd  SectionEnd
564    
565  ;--------------------------------  ;--------------------------------
# Line 213  SectionEnd Line 567  SectionEnd
567  ; Uninstaller  ; Uninstaller
568    
569  Section "Uninstall"  Section "Uninstall"
570    ; Remove registry keys    Var /GLOBAL vstdir
571    
572      DetailPrint "Removing LinuxSampler directory from PATH variable ..."
573      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
574    
575      DetailPrint "Searching for VST plugin ..."
576      ClearErrors
577      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST Directory"
578      IfErrors usedefaultvstdir 0
579      StrCpy $vstdir $0
580      DetailPrint "VST plugin location found in registry."
581      Goto vstdirDetected
582      usedefaultvstdir:
583      DetailPrint "WRN: No VST plugin location found in registry, trying default location."
584      ClearErrors
585      StrCpy $vstdir "${DEFAULT_VST_DIR}"
586      vstdirDetected:
587    
588      DetailPrint "Removing registry keys ..."
589    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
590    ; Remove files and uninstaller    DeleteRegKey HKLM "Software\LinuxSampler"
591    Delete $INSTDIR\*.*  
592    ; Remove shortcuts, if any    ; Workaround for Vista and younger: switch system variables to 'all users'
593      ; otherwise e.g. we couldn't delete start menu shortcuts below on those
594      ; systems, as those variables would point to the current user.
595      SetShellVarContext all
596    
597      DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
598    Delete "$SMPROGRAMS\LinuxSampler\*.*"    Delete "$SMPROGRAMS\LinuxSampler\*.*"
599    ; Remove directories used  
600    RMDir "$SMPROGRAMS\LinuxSampler"    DetailPrint "Removing VST plugin from: $vstdir ..."
601    RMDir "$INSTDIR"    Delete "$vstdir\LinuxSampler.dll"
602    
603      DetailPrint "Removing directories used ..."
604      RMDir /r "$SMPROGRAMS\LinuxSampler"
605      RMDir /r "$INSTDIR"
606  SectionEnd  SectionEnd
607    
608  ;--------------------------------  ;--------------------------------
609  ;Descriptions  ;Descriptions
610    
611  ;Language strings  ;Language strings
612  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."
613  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."
614  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!"
615  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."
616  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."
617  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."  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."
618  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."

Legend:
Removed from v.1547  
changed lines
  Added in v.1903

  ViewVC Help
Powered by ViewVC