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

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

  ViewVC Help
Powered by ViewVC