1 |
; LinuxSampler Windows installer |
; LinuxSampler Windows installer |
2 |
; |
; |
3 |
; Copyright (C) 2007-2009, The LinuxSampler Developers |
; Copyright (C) 2007-2012, 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: |
; PREREQUISITES: |
9 |
; |
; |
10 |
; -> You must install the file cpudesc\cpudesc.dll into the NSIS's |
; -> You must install the file cpudesc\cpudesc.dll into the working |
11 |
; plugin directory before being able to compile this installer! |
; directory before being able to compile this installer! |
12 |
; |
; |
13 |
; -> The compiled binaries must be placed into the respective directories |
; -> 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 |
; under bin\ (you have to read this file in order to get those exact |
15 |
; locations and expected file names). |
; 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 |
|
|
24 |
!include "MUI.nsh" |
!include "MUI.nsh" |
25 |
!include "EnvVarUpdate.nsh" |
!include "EnvVarUpdate.nsh" |
26 |
|
|
27 |
!define RELEASE_DATE "20090803" |
!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 (${RELEASE_DATE})" |
Name "LinuxSampler (${RELEASE_DATE})" |
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_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31621" |
; jre-6u32-windows-i586.exe: |
44 |
!define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=31623" |
!define JRE_32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=63258" |
45 |
|
; jre-6u32-windows-x64.exe: |
46 |
|
!define JRE_64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=63259" |
47 |
|
|
48 |
; The default installation directory |
; The default installation directory |
49 |
InstallDir "$PROGRAMFILES64\LinuxSampler" |
InstallDir "$PROGRAMFILES64\LinuxSampler" |
63 |
!define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp" |
!define MUI_HEADERIMAGE_BITMAP "linuxsampler.bmp" |
64 |
!define MUI_ABORTWARNING |
!define MUI_ABORTWARNING |
65 |
|
|
|
;-------------------------------- |
|
|
;Version Information |
|
|
|
|
|
VIProductVersion "0.0.0.0" |
|
|
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-2009 The LinuxSampler Project" |
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})" |
|
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0" |
|
|
|
|
66 |
!define BIN_TYPE_64BIT "64 bit" |
!define BIN_TYPE_64BIT "64 bit" |
67 |
!define BIN_TYPE_686SSE "686 SSE" |
!define BIN_TYPE_686SSE "686 SSE" |
68 |
!define BIN_TYPE_686 "686" |
!define BIN_TYPE_686 "686" |
85 |
!insertmacro MUI_LANGUAGE "English" |
!insertmacro MUI_LANGUAGE "English" |
86 |
|
|
87 |
;-------------------------------- |
;-------------------------------- |
88 |
|
;Version Information |
89 |
|
|
90 |
|
VIProductVersion "0.0.0.0" |
91 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "all-in-one installer" |
92 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "http://linuxsampler.org" |
93 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "The LinuxSampler Project" |
94 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "" |
95 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© 2003-2012 The LinuxSampler Project" |
96 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "LinuxSampler Installer (${RELEASE_DATE})" |
97 |
|
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "0.0.0" |
98 |
|
|
99 |
|
;-------------------------------- |
100 |
|
|
101 |
Function .onInit |
Function .onInit |
102 |
Var /GLOBAL installingLinuxSampler |
Var /GLOBAL installingLinuxSampler |
152 |
!insertmacro DetectSystemType "" |
!insertmacro DetectSystemType "" |
153 |
!insertmacro DetectSystemType "un." |
!insertmacro DetectSystemType "un." |
154 |
|
|
|
; Check for the presence of gtkmm, and if false, ask the user whether to |
|
|
; download and install gtkmm now from the internet. |
|
|
; (NOTE: this function is currently unused, since we include the gtk(mm) |
|
|
; DLLs with the installer ATM, this is the recommended way by the gtk |
|
|
; project) |
|
|
Function CheckForGtkmm |
|
|
Var /GLOBAL gtkmmSetupFile |
|
|
|
|
|
ClearErrors |
|
|
; This is just a lazy check for the presence of gtkmm, we should better use: |
|
|
; System::Call function (NSI internal function) to actually call an arbitrary |
|
|
; gtkmm function (/method) from a gtkmm DLL to make it certain |
|
|
ReadRegStr $0 HKCU "Software\gtkmm\2.4" "Installer Language" |
|
|
IfErrors +2 0 |
|
|
goto NoAbort |
|
|
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: |
|
|
FunctionEnd |
|
|
|
|
155 |
; Downloads and launches the JRE installer from the internet |
; Downloads and launches the JRE installer from the internet |
156 |
Function GetJRE |
Function GetJRE |
157 |
Var /GLOBAL jreUri |
Var /GLOBAL jreUri |
275 |
;-------------------------------- |
;-------------------------------- |
276 |
|
|
277 |
; The stuff to install |
; The stuff to install |
278 |
Section "LinuxSampler 1.0.0" SecLinuxSampler |
Section "LinuxSampler ${LINUXSAMPLER_VERSION}" SecLinuxSampler |
279 |
DetailPrint "Installing LinuxSampler binaries ..." |
DetailPrint "Installing LinuxSampler binaries ..." |
280 |
StrCpy $installingLinuxSampler "1" |
StrCpy $installingLinuxSampler "1" |
281 |
|
|
320 |
done: |
done: |
321 |
SectionEnd |
SectionEnd |
322 |
|
|
323 |
Section "JSampler 'Fantasia' 0.9" SecJSampler |
Section "JSampler 'Fantasia' ${FANTASIA_VERSION}" SecJSampler |
324 |
DetailPrint "Installing JSampler binaries ..." |
DetailPrint "Installing JSampler binaries ..." |
325 |
; make sure JRE is installed |
; make sure JRE is installed |
326 |
Call DetectJRE |
Call DetectJRE |
332 |
File jsampler.ico |
File jsampler.ico |
333 |
SectionEnd |
SectionEnd |
334 |
|
|
335 |
Section "QSampler 0.2.2" SecQSampler |
Section "QSampler ${QSAMPLER_VERSION}" SecQSampler |
336 |
DetailPrint "Installing QSampler binaries ..." |
DetailPrint "Installing QSampler binaries ..." |
337 |
StrCpy $installingQSampler "1" |
StrCpy $installingQSampler "1" |
338 |
; Set output path to the installation directory. |
; Set output path to the installation directory. |
339 |
SetOutPath $INSTDIR |
SetOutPath $INSTDIR |
340 |
; Files to install |
; Files to install |
341 |
File bin\686\qsampler.exe |
File bin\686\qsampler.exe |
342 |
|
File bin\686\liblscp-6.dll |
343 |
File bin\686\QtCore4.dll |
File bin\686\QtCore4.dll |
344 |
File bin\686\QtGui4.dll |
File bin\686\QtGui4.dll |
345 |
File bin\686\mingwm10.dll |
File bin\686\mingwm10.dll |
346 |
|
File bin\686\libgcc_s_dw2-1.dll |
347 |
File qsampler.ico |
File qsampler.ico |
348 |
SetOutPath $INSTDIR\share\locale |
SetOutPath $INSTDIR\share\locale |
349 |
File bin\686\share\locale\qsampler_ru.qm |
File bin\686\share\locale\qsampler_ru.qm |
350 |
|
File bin\686\share\locale\qsampler_cs.qm |
351 |
|
File bin\686\share\locale\qt_ru.qm |
352 |
|
File bin\686\share\locale\qt_cs.qm |
353 |
SectionEnd |
SectionEnd |
354 |
|
|
355 |
Section "gigedit 0.2.0" Secgigedit |
Section "gigedit ${GIGEDIT_VERSION}" Secgigedit |
356 |
DetailPrint "Installing gigedit binaries ..." |
DetailPrint "Installing gigedit binaries ..." |
357 |
StrCpy $installinggigedit "1" |
StrCpy $installinggigedit "1" |
358 |
|
|
379 |
File bin\64\libatkmm-1.6-1.dll |
File bin\64\libatkmm-1.6-1.dll |
380 |
File bin\64\libcairo-2.dll |
File bin\64\libcairo-2.dll |
381 |
File bin\64\libcairomm-1.0-1.dll |
File bin\64\libcairomm-1.0-1.dll |
382 |
|
File bin\64\libexpat-1.dll |
383 |
|
File bin\64\libfontconfig-1.dll |
384 |
|
File bin\64\libfreetype-6.dll |
385 |
File bin\64\libgdkmm-2.4-1.dll |
File bin\64\libgdkmm-2.4-1.dll |
386 |
File bin\64\libgdk_pixbuf-2.0-0.dll |
File bin\64\libgdk_pixbuf-2.0-0.dll |
387 |
File bin\64\libgdk-win32-2.0-0.dll |
File bin\64\libgdk-win32-2.0-0.dll |
395 |
File bin\64\libgtkmm-2.4-1.dll |
File bin\64\libgtkmm-2.4-1.dll |
396 |
File bin\64\libgtk-win32-2.0-0.dll |
File bin\64\libgtk-win32-2.0-0.dll |
397 |
File bin\64\libintl-8.dll |
File bin\64\libintl-8.dll |
|
File bin\64\libjpeg-62.dll |
|
398 |
File bin\64\libpango-1.0-0.dll |
File bin\64\libpango-1.0-0.dll |
399 |
File bin\64\libpangocairo-1.0-0.dll |
File bin\64\libpangocairo-1.0-0.dll |
400 |
|
File bin\64\libpangoft2-1.0-0.dll |
401 |
File bin\64\libpangomm-1.4-1.dll |
File bin\64\libpangomm-1.4-1.dll |
402 |
File bin\64\libpangowin32-1.0-0.dll |
File bin\64\libpangowin32-1.0-0.dll |
403 |
File bin\64\libpng12-0.dll |
File bin\64\libpng14-14.dll |
404 |
File bin\64\libsigc-2.0-0.dll |
File bin\64\libsigc-2.0-0.dll |
|
File bin\64\libtiff.dll |
|
405 |
File bin\64\zlib1.dll |
File bin\64\zlib1.dll |
406 |
SetOutPath $INSTDIR\${SUBDIR_64_BIT}\etc\gtk-2.0 |
SetOutPath $INSTDIR\${SUBDIR_64_BIT}\etc\gtk-2.0 |
407 |
File bin\64\etc\gtk-2.0\gtkrc |
File bin\64\etc\gtk-2.0\gtkrc |
504 |
File bin\64\dlsdump.exe |
File bin\64\dlsdump.exe |
505 |
File bin\64\gigdump.exe |
File bin\64\gigdump.exe |
506 |
File bin\64\gigextract.exe |
File bin\64\gigextract.exe |
507 |
; special dependency for the 64 bit version |
; special dependencies for the 64 bit version |
508 |
File bin\64\libgcc_s_sjlj-1.dll |
File bin\64\libgcc_s_sjlj-1.dll |
509 |
|
File bin\64\libstdc++-6.dll |
510 |
|
|
511 |
; shall we install the 32 bit version as well? |
; shall we install the 32 bit version as well? |
512 |
StrCmp $installing32BitToo "1" libgig686sse done |
StrCmp $installing32BitToo "1" libgig686sse done |
557 |
WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE} |
WriteRegStr HKLM "Software\LinuxSampler" "Release Date" ${RELEASE_DATE} |
558 |
SectionEnd |
SectionEnd |
559 |
|
|
560 |
Section "libsndfile 1.0.20" Seclibsndfile |
Section "libsndfile ${SNDFILE_VERSION}" Seclibsndfile |
561 |
DetailPrint "Installing libsndfile binaries ..." |
DetailPrint "Installing libsndfile binaries ..." |
562 |
; We make this a mandatory component |
; We make this a mandatory component |
563 |
SectionIn RO |
SectionIn RO |
572 |
libsndfile64: |
libsndfile64: |
573 |
SetOutPath "$INSTDIR\${SUBDIR_64_BIT}" |
SetOutPath "$INSTDIR\${SUBDIR_64_BIT}" |
574 |
File bin\64\libsndfile-1.dll |
File bin\64\libsndfile-1.dll |
575 |
|
File bin\64\libFLAC-8.dll |
576 |
|
File bin\64\libogg-0.dll |
577 |
|
File bin\64\libvorbis-0.dll |
578 |
|
File bin\64\libvorbisenc-2.dll |
579 |
|
|
580 |
; shall we install the 32 bit version as well? |
; shall we install the 32 bit version as well? |
581 |
StrCmp $installing32BitToo "1" libsndfile686 done |
StrCmp $installing32BitToo "1" libsndfile686 done |
583 |
libsndfile686: |
libsndfile686: |
584 |
SetOutPath "$INSTDIR\${SUBDIR_32_BIT}" |
SetOutPath "$INSTDIR\${SUBDIR_32_BIT}" |
585 |
File bin\686\libsndfile-1.dll |
File bin\686\libsndfile-1.dll |
586 |
|
File bin\686\libFLAC-8.dll |
587 |
|
File bin\686\libogg-0.dll |
588 |
|
File bin\686\libvorbis-0.dll |
589 |
|
File bin\686\libvorbisenc-2.dll |
590 |
Goto done |
Goto done |
591 |
|
|
592 |
done: |
done: |
622 |
|
|
623 |
StrCmp $installingLinuxSampler '1' 0 +3 |
StrCmp $installingLinuxSampler '1' 0 +3 |
624 |
SetOutPath $samplerDir |
SetOutPath $samplerDir |
625 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler 1.0.0 (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\LinuxSampler ${LINUXSAMPLER_VERSION} (stand alone backend).lnk" "$samplerDir\linuxsampler.exe" "" "$samplerDir\linuxsampler.exe" 0 |
626 |
|
|
627 |
StrCmp $installingJSampler '1' 0 +3 |
StrCmp $installingJSampler '1' 0 +3 |
628 |
SetOutPath $INSTDIR |
SetOutPath $INSTDIR |
629 |
CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia 0.9 (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0 |
CreateShortCut '$SMPROGRAMS\LinuxSampler\JSampler Fantasia ${FANTASIA_VERSION} (frontend).lnk' '$javawbin' '-jar "$INSTDIR\Fantasia-0.9.jar"' '$INSTDIR\jsampler.ico' 0 |
630 |
|
|
631 |
StrCmp $installingQSampler '1' 0 +3 |
StrCmp $installingQSampler '1' 0 +3 |
632 |
SetOutPath $INSTDIR |
SetOutPath $INSTDIR |
633 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler 0.2.2 (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\QSampler ${QSAMPLER_VERSION} (frontend).lnk" "$INSTDIR\qsampler.exe" "" "$INSTDIR\qsampler.ico" 0 |
634 |
|
|
635 |
StrCmp $installinggigedit '1' 0 +3 |
StrCmp $installinggigedit '1' 0 +3 |
636 |
SetOutPath $samplerDir |
SetOutPath $samplerDir |
637 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit 0.2.0 (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0 |
CreateShortCut "$SMPROGRAMS\LinuxSampler\gigedit ${GIGEDIT_VERSION} (stand alone).lnk" "$samplerDir\gigedit.exe" "" "$samplerDir\gigedit.exe" 0 |
638 |
|
|
639 |
!insertmacro CreateInternetShortcut \ |
!insertmacro CreateInternetShortcut \ |
640 |
"$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \ |
"$SMPROGRAMS\LinuxSampler\\Support LinuxSampler" \ |