/[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 2854 by persson, Fri Nov 20 17:44:27 2015 UTC
# Line 1  Line 1 
1  ; LinuxSampler Windows installer  ; LinuxSampler Windows installer
2  ;  ;
3  ; Copyright (C) 2007, The LinuxSampler Developers  ; Copyright (C) 2007-2015, 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 /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"  Name "LinuxSampler (${RELEASE_DATE})"
38    
39  ; The file to write  ; The file to write
40  OutFile "linuxsampler_20071206_setup.exe"  OutFile "linuxsampler_${RELEASE_DATE}_setup.exe"
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-8u66-windows-i586.exe:
45    !define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113217"
46    ; jre-8u66-windows-x64.exe:
47    !define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=113219"
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  ; Get installation folder from registry if available  !define DEFAULT_VST_DIR64 "$PROGRAMFILES64\Steinberg\VstPlugins"
55  InstallDirRegKey HKCU "Software\LinuxSampler" ""  !define DEFAULT_VST_DIR "$PROGRAMFILES\Steinberg\VstPlugins"
56    
57  ;LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"  ; Get installation folder from registry if available
58    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" "LinuxSampler 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" "all-in-one installer"  
 VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0"  
72    
73  ;--------------------------------  ;--------------------------------
   
74  ; Pages  ; Pages
75    
 ;Page license  
 ;Page components  
 ;Page directory  
 ;Page instfiles  
   
76  !insertmacro MUI_PAGE_LICENSE "license.rtf"  !insertmacro MUI_PAGE_LICENSE "license.rtf"
77  !insertmacro MUI_PAGE_COMPONENTS  !insertmacro MUI_PAGE_COMPONENTS
78  !insertmacro MUI_PAGE_DIRECTORY  !insertmacro MUI_PAGE_DIRECTORY
# Line 64  VIAddVersionKey /LANG=${LANG_ENGLISH} "F Line 80  VIAddVersionKey /LANG=${LANG_ENGLISH} "F
80  !insertmacro MUI_UNPAGE_CONFIRM  !insertmacro MUI_UNPAGE_CONFIRM
81  !insertmacro MUI_UNPAGE_INSTFILES  !insertmacro MUI_UNPAGE_INSTFILES
82    
 ;UninstPage uninstConfirm  
 ;UninstPage instfiles  
   
 ;LicenseData license.rtf  
   
83  ;--------------------------------  ;--------------------------------
84  ;Languages  ;Languages
85    
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-2015 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  ; Check for the presence of gtkmm, and if false, ask the user whether to  Function .onInit
103  ; download and install gtkmm now from the internet.    Var /GLOBAL installingLinuxSampler
104  Function CheckForGtkmm    Var /GLOBAL installingJSampler
105    Var /GLOBAL gtkmmSetupFile    Var /GLOBAL installingQSampler
106      Var /GLOBAL installinggigedit
107    ; This is just a lazy check for the presence of gtkmm, we should better use:    Var /GLOBAL installing32BitToo
108    ; System::Call function (NSI internal function) to actually call an arbitrary    StrCpy $installingLinuxSampler "0"
109    ; gtkmm function (/method) from a gtkmm DLL to make it certain    StrCpy $installingJSampler "0"
110    ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language"    StrCpy $installingQSampler "0"
111    IfErrors +2 0    StrCpy $installinggigedit "0"
112    goto NoAbort    StrCpy $installing32BitToo "0"
   MessageBox MB_YESNO "gtkmm not found. Install it now (internet connection needed)?" IDYES InstallGtkmm  
     MessageBox MB_YESNO "gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort  
       Abort ;  causes installer to quit  
   InstallGtkmm:  
     ClearErrors  
         StrCpy $gtkmmSetupFile $TEMP\gtkmm-win32-runtime-2.10.11-1.exe  
     NSISdl::download "http://ftp.gnome.org/pub/gnome/binaries/win32/gtkmm/2.10/gtkmm-win32-runtime-2.10.11-1.exe" $gtkmmSetupFile  
     IfErrors 0 +2  
         Goto InstallGtkmmFailed  
         ExecWait $gtkmmSetupFile  
     Delete $gtkmmSetupFile ; we don't need it anymore  
         IfErrors 0 +2  
         Goto InstallGtkmmFailed  
         Goto NoAbort  
   InstallGtkmmFailed:  
         MessageBox MB_YESNO "Could not download gtkmm. gigedit won't work without gtkmm. Continue anyway?" IDYES NoAbort  
       Abort ;  causes installer to quit  
   NoAbort:  
113  FunctionEnd  FunctionEnd
114    
115    !macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX
116    WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
117    WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
118    WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}"
119    !macroend
120    
121    ; detects CPU capabilities, determines which native binary type to install
122    ; and selects the appropriate windows registry view (32 bit or 64 bit)
123    !macro DetectSystemType un
124    Function ${un}DetectSystemType
125      ; check if this is a 64 bit windows
126      System::Call "kernel32::GetCurrentProcess() i .s"
127      System::Call "kernel32::IsWow64Process(i s, *i .r0)"
128      IntCmp $0 0 not64bit
129      StrCpy $binType BIN_TYPE_64BIT
130      DetailPrint "64 bit Windows detected."
131      SetRegView 64
132      Goto DetectSystemDone
133    
134      not64bit: ; a 32 bit system
135    
136      SetRegView 32
137    
138      ; check if CPU supports SSE
139      cpudesc::tell
140      Pop $0                     ; full identification string in $0
141      StrCpy $1 $0 1, 34         ; pull out one character after SSE=
142      IntFmt $2 "%u" $1          ; and turn it into a number
143      IntCmpU $2 1 +1 +4 +4
144      StrCpy $binType BIN_TYPE_686SSE
145      DetailPrint "32 bit Windows, SSE CPU detected."
146      Goto DetectSystemDone
147      StrCpy $binType BIN_TYPE_686
148      DetailPrint "32 bit Windows (no SSE support) detected."
149    
150      DetectSystemDone:
151    FunctionEnd
152    !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    ; Set output path to the installation directory.    DetailPrint "Installing LinuxSampler binaries ..."
283    SetOutPath $INSTDIR    StrCpy $installingLinuxSampler "1"
284    
285      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.dll    linuxsampler64:
292      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
293      File bin\64\linuxsampler.exe
294      File bin\64\liblinuxsampler-4.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-4.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-4.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.0.1" 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"
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 jsampler.jar    File bin\Fantasia-0.9.jar
335      File jsampler.ico
336  SectionEnd  SectionEnd
337    
338  Section "QSampler 0.2.0" SecQSampler  Section "QSampler ${QSAMPLER_VERSION}" SecQSampler
339      DetailPrint "Installing QSampler binaries ..."
340      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 liblscp.dll    File bin\686\liblscp-6.dll
346      File bin\686\QtCore4.dll
347      File bin\686\QtGui4.dll
348      File bin\686\mingwm10.dll
349      File bin\686\libgcc_s_dw2-1.dll
350      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"
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    SetOutPath "$INSTDIR\Plugins"    gigedit64:
375  ;  File libgigedit.dll    SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
376      File bin\64\gigedit.exe
377      File bin\64\libgigedit-3.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-3.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 ${LIBGIG_VERSION}" 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.dll  
503    ; As this is a mandatory component, we misuse it to install the uninstaller as well ...    libgig64:
504      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
505      File bin\64\libgig-7.dll
506      File bin\64\libakai-0.dll
507      File bin\64\rifftree.exe
508      File bin\64\dlsdump.exe
509      File bin\64\gigdump.exe
510      File bin\64\gigextract.exe
511      File bin\64\gigmerge.exe
512      File bin\64\gig2mono.exe
513      File bin\64\gig2stereo.exe
514      File bin\64\korg2gig.exe
515      File bin\64\korgdump.exe
516      File bin\64\akaidump.exe
517      File bin\64\akaiextract.exe
518      File bin\64\sf2dump.exe
519      File bin\64\sf2extract.exe
520      ; special dependencies for the 64 bit version
521      File bin\64\libgcc_s_sjlj-1.dll
522      File bin\64\libstdc++-6.dll
523    
524      ; shall we install the 32 bit version as well?
525      StrCmp $installing32BitToo "1" libgig686sse
526      StrCmp $installingQSampler "1" libgigForQsampler done
527    
528      ; QSampler needs the 32 bit libgig dll
529      libgigForQsampler:
530      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
531      File bin\686sse\libgig-7.dll
532      Goto done
533    
534      libgig686sse:
535      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
536      File bin\686sse\libgig-7.dll
537      File bin\686sse\libakai-0.dll
538      File bin\686sse\rifftree.exe
539      File bin\686sse\dlsdump.exe
540      File bin\686sse\gigdump.exe
541      File bin\686sse\gigextract.exe
542      File bin\686sse\gigmerge.exe
543      File bin\686sse\gig2mono.exe
544      File bin\686sse\gig2stereo.exe
545      File bin\686sse\korg2gig.exe
546      File bin\686sse\korgdump.exe
547      File bin\686sse\akaidump.exe
548      File bin\686sse\akaiextract.exe
549      File bin\686sse\sf2dump.exe
550      File bin\686sse\sf2extract.exe
551      Goto done
552    
553      libgig686:
554      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
555      File bin\686\libgig-7.dll
556      File bin\686\libakai-0.dll
557      File bin\686\rifftree.exe
558      File bin\686\dlsdump.exe
559      File bin\686\gigdump.exe
560      File bin\686\gigextract.exe
561      File bin\686\gigmerge.exe
562      File bin\686\gig2mono.exe
563      File bin\686\gig2stereo.exe
564      File bin\686\korg2gig.exe
565      File bin\686\korgdump.exe
566      File bin\686\akaidump.exe
567      File bin\686\akaiextract.exe
568      File bin\686\sf2dump.exe
569      File bin\686\sf2extract.exe
570      Goto done
571    
572      done:
573    
574      ; As this is a mandatory component, we misuse is for the following
575      ; common tasks as well ...
576    
577      ; Add LinuxSampler and friends to the system's PATH variable
578      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR"
579      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
580      ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
581    
582    ; Write the uninstall keys for Windows    ; Write the uninstall keys for Windows
583    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}"
584    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "UninstallString" '"$INSTDIR\uninstall.exe"'
585    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoModify" 1
586    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler" "NoRepair" 1
587    WriteUninstaller "uninstall.exe"    WriteUninstaller "uninstall.exe"
588    ;Store installation folder  
589    WriteRegStr HKCU "Software\LinuxSampler" "" $INSTDIR    ; Store installation folders
590      WriteRegStr HKLM "Software\LinuxSampler" "Main Directory" $INSTDIR
591      StrCmp $binType BIN_TYPE_64BIT 0 +3
592      WriteRegStr HKLM "Software\LinuxSampler" "VST 64 Directory" $vstPluginPath64
593      StrCmp $installing32BitToo "1" 0 +2
594      WriteRegStr HKLM "Software\LinuxSampler" "VST 32 Directory" $vstPluginPath
595    
596      ; Just for info, store the release date as well
597      WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE}
598  SectionEnd  SectionEnd
599    
600  Section "libsndfile 1.0.17" Seclibsndfile  Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile
601      DetailPrint "Installing libsndfile binaries ..."
602    ; We make this a mandatory component    ; We make this a mandatory component
603    SectionIn RO    SectionIn RO
604    ; Set output path to the installation directory.  
605    SetOutPath $INSTDIR    StrCmp $binType BIN_TYPE_64BIT libsndfile64
606      ; 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
607      ;StrCmp $binType BIN_TYPE_686SSE libsndfile686sse
608      Goto libsndfile686
609    
610    ; Files to install    ; Files to install
611  ;  File libsndfile-1.dll  
612      libsndfile64:
613      SetOutPath "$INSTDIR\${SUBDIR_64_BIT}"
614      File bin\64\libsndfile-1.dll
615      File bin\64\libFLAC-8.dll
616      File bin\64\libogg-0.dll
617      File bin\64\libvorbis-0.dll
618      File bin\64\libvorbisenc-2.dll
619    
620      ; shall we install the 32 bit version as well?
621      StrCmp $installing32BitToo "1" libsndfile686 done
622    
623      libsndfile686:
624      SetOutPath "$INSTDIR\${SUBDIR_32_BIT}"
625      File bin\686\libsndfile-1.dll
626      File bin\686\libFLAC-8.dll
627      File bin\686\libogg-0.dll
628      File bin\686\libvorbis-0.dll
629      File bin\686\libvorbisenc-2.dll
630      Goto done
631    
632      done:
633  SectionEnd  SectionEnd
634    
635  Section "Start Menu Shortcuts" SecShortcuts  Section "Start Menu Shortcuts" SecShortcuts
636      Var /GLOBAL javawbin
637      Var /GLOBAL samplerDir
638    
639      StrCmp $binType BIN_TYPE_64BIT 0 +3
640      StrCpy $samplerDir "$INSTDIR\${SUBDIR_64_BIT}"
641      Goto +2
642      StrCpy $samplerDir "$INSTDIR\${SUBDIR_32_BIT}"
643    
644      ; Switch system variables to 'all users', to ensure we create the start
645      ; menu shortcuts for all users and not just for the current user.
646      SetShellVarContext all
647    
648      ; try to resolve the full qualified path of the javaw binary
649      ClearErrors
650      SearchPath $javawbin javaw.exe
651      IfErrors 0 javawDetected
652      ClearErrors
653      ; if all fails, simply use SYSDIR (which should work almost always anyway)
654      DetailPrint "WRN: Could not resolve javaw.exe path, using SYSDIR."
655      StrCpy $javawbin "$SYSDIR\javaw.exe"
656      javawDetected:
657    
658    CreateDirectory "$SMPROGRAMS\LinuxSampler"    CreateDirectory "$SMPROGRAMS\LinuxSampler"
659    
660      SetOutPath $INSTDIR
661    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
662    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler (backend).lnk" "$INSTDIR\linuxsampler.exe" "" "$INSTDIR\linuxsampler.exe" 0  
663    CreateShortCut "$SMPROGRAMS\LinuxSampler\JSampler Fantasia (frontend).lnk" "$INSTDIR\jjjjjsampler.exe" "" "$INSTDIR\jjjjjsampler.exe" 0    StrCmp $installingLinuxSampler '1' 0 +3
664    CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.exe" 0    SetOutPath $samplerDir
665    CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit (stand alone).lnk" "$INSTDIR\gigedit.exe" "" "$INSTDIR\gigedit.exe" 0    CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0
666    
667      StrCmp $installingJSampler '1' 0 +3
668      SetOutPath $INSTDIR
669      CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia ${FANTASIA_VERSION} (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0
670    
671      StrCmp $installingQSampler '1' 0 +3
672      SetOutPath $INSTDIR
673      CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler ${QSAMPLER_VERSION} (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0
674    
675      StrCmp $installinggigedit '1' 0 +3
676      SetOutPath $samplerDir
677      CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0
678    
679      !insertmacro CreateInternetShortcut \
680      "$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \
681      "http://www.linuxsampler.org/donations.html" \
682      "" "0"
683  SectionEnd  SectionEnd
684    
685  ;--------------------------------  ;--------------------------------
# Line 213  SectionEnd Line 687  SectionEnd
687  ; Uninstaller  ; Uninstaller
688    
689  Section "Uninstall"  Section "Uninstall"
690    ; Remove registry keys    Var /GLOBAL vstdir32
691      Var /GLOBAL vstdir64
692    
693      Call un.DetectSystemType
694    
695      DetailPrint "Removing LinuxSampler directories from PATH variable ..."
696      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR"
697      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_32_BIT}"
698      ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\${SUBDIR_64_BIT}"
699    
700      StrCmp $binType BIN_TYPE_64BIT 0 uninstallVst32
701      DetailPrint "Searching for VST plugin (64 bit) ..."
702      ClearErrors
703      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 64 Directory"
704      IfErrors uninstallVst32 0
705      StrCpy $vstdir64 $0
706      DetailPrint "Removing VST plugin (64 bit) from: $vstdir64 ..."
707      Delete "$vstdir64\LinuxSampler64.dll"
708    
709      uninstallVst32:
710    
711      DetailPrint "Searching for VST plugin (32 bit) ..."
712      ClearErrors
713      ReadRegStr $0 HKLM "Software\LinuxSampler" "VST 32 Directory"
714      IfErrors uninstallVstDone 0
715      StrCpy $vstdir32 $0
716      DetailPrint "Removing VST plugin (32 bit) from: $vstdir32 ..."
717      Delete "$vstdir32\LinuxSampler32.dll"
718    
719      uninstallVstDone:
720      ClearErrors
721    
722      DetailPrint "Removing registry keys ..."
723    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\LinuxSampler"
724    ; Remove files and uninstaller    DeleteRegKey HKLM "Software\LinuxSampler"
725    Delete $INSTDIR\*.*  
726    ; Remove shortcuts, if any    ; Workaround for Vista and younger: switch system variables to 'all users'
727      ; otherwise e.g. we couldn't delete start menu shortcuts below on those
728      ; systems, as those variables would point to the current user.
729      SetShellVarContext all
730    
731      DetailPrint "Removing shortcuts (if any) from: $SMPROGRAMS ..."
732    Delete "$SMPROGRAMS\LinuxSampler\*.*"    Delete "$SMPROGRAMS\LinuxSampler\*.*"
733    ; Remove directories used  
734    RMDir "$SMPROGRAMS\LinuxSampler"    DetailPrint "Removing directories used ..."
735    RMDir "$INSTDIR"    RMDir /r "$SMPROGRAMS\LinuxSampler"
736      RMDir /r "$INSTDIR"
737  SectionEnd  SectionEnd
738    
739  ;--------------------------------  ;--------------------------------
740  ;Descriptions  ;Descriptions
741    
742  ;Language strings  ;Language strings
743  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."
744  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."
745  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!"
746  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."
747  LangString DESC_Seclibgig ${LANG_ENGLISH} "C++ program library for accessing DLS (Level 1 and Level 2) and Gigasampler format (v2 and v3) files. This library is required by LinuxSampler, gigedit and QSampler."  LangString DESC_Seclibgig ${LANG_ENGLISH} "C++ program library for accessing DLS (Level 1 and Level 2) and GigaStudio/Gigasampler format (up to v4), SoundFont, AKAI and KORG files. This library is required by LinuxSampler, gigedit and QSampler."
748  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."
749  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."  LangString DESC_SecShortcuts ${LANG_ENGLISH} "Installs start menu shortcuts for all applications."
750    

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

  ViewVC Help
Powered by ViewVC