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

  ViewVC Help
Powered by ViewVC