|
|
465d31 |
; example2.nsi
|
|
|
465d31 |
;
|
|
|
465d31 |
; This script is based on example1.nsi, but it remember the directory,
|
|
|
465d31 |
; has uninstall support and (optionally) installs start menu shortcuts.
|
|
|
465d31 |
;
|
|
|
465d31 |
; It will install makensisw.exe into a directory that the user selects,
|
|
|
465d31 |
|
|
|
465d31 |
!include "MUI2.nsh"
|
|
|
465d31 |
|
|
|
465d31 |
;--------------------------------
|
|
|
465d31 |
|
|
|
465d31 |
; The name of the installer
|
|
|
833812 |
Name "Synfig Studio @VERSION@"
|
|
|
465d31 |
|
|
|
465d31 |
; The file to write
|
|
|
833812 |
OutFile "synfigstudio-@VERSION@.exe"
|
|
|
465d31 |
|
|
|
4e58f8 |
; The default installation directory and registry
|
|
|
4e58f8 |
!include "arch-specific.nsh"
|
|
|
465d31 |
|
|
|
465d31 |
; Request application privileges for Windows Vista
|
|
|
094500 |
RequestExecutionLevel highest
|
|
|
465d31 |
|
|
|
465d31 |
!define MUI_ABORTWARNING
|
|
|
465d31 |
|
|
|
465d31 |
!define SHCNE_ASSOCCHANGED 0x8000000
|
|
|
465d31 |
!define SHCNF_IDLIST 0
|
|
|
465d31 |
|
|
|
465d31 |
!define PRODUCT_REG_KEY "Software\synfigstudio\0.0"
|
|
|
465d31 |
!define PRODUCT_UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\synfigstudio"
|
|
|
465d31 |
!define PRODUCT_UNINSTALL_EXE "uninstall-synfigstudio.exe"
|
|
|
465d31 |
|
|
|
465d31 |
;--------------------------------
|
|
|
465d31 |
|
|
|
465d31 |
;!define MUI_HEADERIMAGE
|
|
|
465d31 |
;!define MUI_HEADERIMAGE_BITMAP "installer_logo.bmp"
|
|
|
e2e3f0 |
;!define MUI_WELCOMEFINISHPAGE_BITMAP ".\share\pixmaps\installer_logo.bmp"
|
|
|
465d31 |
|
|
|
465d31 |
; Pages
|
|
|
465d31 |
|
|
|
465d31 |
!insertmacro MUI_PAGE_WELCOME
|
|
|
465d31 |
;!insertmacro MUI_PAGE_LICENSE ".\alphalicense.txt"
|
|
|
465d31 |
!insertmacro MUI_PAGE_LICENSE ".\licenses\synfigstudio.txt"
|
|
|
465d31 |
!insertmacro MUI_PAGE_COMPONENTS
|
|
|
465d31 |
!insertmacro MUI_PAGE_DIRECTORY
|
|
|
465d31 |
!insertmacro MUI_PAGE_INSTFILES
|
|
|
465d31 |
|
|
|
465d31 |
!insertmacro MUI_UNPAGE_CONFIRM
|
|
|
465d31 |
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
465d31 |
|
|
|
465d31 |
!insertmacro MUI_LANGUAGE "English"
|
|
|
465d31 |
|
|
|
465d31 |
;--------------------------------
|
|
|
465d31 |
|
|
|
465d31 |
; The stuff to install
|
|
|
465d31 |
Section "Synfig Studio"
|
|
|
465d31 |
|
|
|
465d31 |
SectionIn RO
|
|
|
465d31 |
|
|
|
465d31 |
SetOutPath "$INSTDIR\bin"
|
|
|
1599d6 |
!include "bin.nsh"
|
|
|
465d31 |
|
|
|
1599d6 |
SetOutPath "$INSTDIR\etc"
|
|
|
1599d6 |
!include "etc.nsh"
|
|
|
1599d6 |
|
|
|
1599d6 |
SetOutPath "$INSTDIR\lib"
|
|
|
ddbebe |
!include "lib-gdk-pixbuf.nsh"
|
|
|
1599d6 |
!include "lib-gtk.nsh"
|
|
|
e7dbcc |
!include "lib-pango.nsh"
|
|
|
1599d6 |
!include "lib-synfig.nsh"
|
|
|
1599d6 |
|
|
|
1599d6 |
SetOutPath "$INSTDIR\licenses"
|
|
|
1599d6 |
!include "licenses.nsh"
|
|
|
ddbebe |
|
|
|
ddbebe |
SetOutPath "$INSTDIR\share"
|
|
|
ddbebe |
!include "share.nsh"
|
|
|
1599d6 |
|
|
|
1599d6 |
;SetOutPath "$INSTDIR\python"
|
|
|
1599d6 |
;!include "python.nsh"
|
|
|
465d31 |
SetOutPath "$INSTDIR"
|
|
|
465d31 |
File /r /x .* python
|
|
|
465d31 |
|
|
|
465d31 |
WriteRegStr HKLM "${PRODUCT_REG_KEY}" "Path" "$INSTDIR"
|
|
|
833812 |
WriteRegStr HKLM "${PRODUCT_REG_KEY}" "Version" "@VERSION@"
|
|
|
465d31 |
|
|
|
465d31 |
; Write the uninstall keys for Windows
|
|
|
465d31 |
WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayName" "Synfig Studio"
|
|
|
833812 |
WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion" "@VERSION@"
|
|
|
465d31 |
WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\${PRODUCT_UNINSTALL_EXE}"'
|
|
|
465d31 |
WriteRegDWORD HKLM "${PRODUCT_UNINSTALL_KEY}" "NoModify" 1
|
|
|
465d31 |
WriteRegDWORD HKLM "${PRODUCT_UNINSTALL_KEY}" "NoRepair" 1
|
|
|
465d31 |
|
|
|
465d31 |
|
|
|
465d31 |
WriteRegStr HKCR ".sif" "" "Synfig.Composition"
|
|
|
465d31 |
WriteRegStr HKCR ".sif" "Content Type" "image/x-sif"
|
|
|
465d31 |
WriteRegStr HKCR ".sif" "PerceivedType" "image"
|
|
|
465d31 |
|
|
|
465d31 |
WriteRegStr HKCR ".sifz" "" "Synfig.Composition"
|
|
|
465d31 |
WriteRegStr HKCR ".sifz" "Content Type" "image/x-sifz"
|
|
|
465d31 |
WriteRegStr HKCR ".sifz" "PerceivedType" "image"
|
|
|
465d31 |
|
|
|
465d31 |
WriteRegStr HKCR "Synfig.Composition" "" "Synfig Composition File"
|
|
|
465d31 |
WriteRegStr HKCR "Synfig.Composition\DefaultIcon" "" "$INSTDIR\share\pixmaps\sif_icon.ico"
|
|
|
465d31 |
WriteRegStr HKCR "Synfig.Composition\shell" "" "open"
|
|
|
465d31 |
WriteRegStr HKCR "Synfig.Composition\shell\open\command" "" '$INSTDIR\bin\synfigstudio.exe "%1"'
|
|
|
465d31 |
|
|
|
465d31 |
System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)'
|
|
|
465d31 |
WriteUninstaller "${PRODUCT_UNINSTALL_EXE}"
|
|
|
465d31 |
SectionEnd
|
|
|
465d31 |
|
|
|
1599d6 |
Section "FFMpeg"
|
|
|
1599d6 |
SetOutPath "$INSTDIR\bin"
|
|
|
1599d6 |
File "bin\ffmpeg.exe"
|
|
|
1599d6 |
SectionEnd
|
|
|
1599d6 |
|
|
|
1599d6 |
Section "Examples"
|
|
|
1599d6 |
!include "examples.nsh"
|
|
|
1599d6 |
SectionEnd
|
|
|
465d31 |
|
|
|
465d31 |
; Optional section (can be disabled by the user)
|
|
|
465d31 |
Section "Start Menu Shortcuts"
|
|
|
465d31 |
|
|
|
179fcd |
SetOutPath "$INSTDIR\bin"
|
|
|
179fcd |
|
|
|
465d31 |
SetShellVarContext All
|
|
|
465d31 |
CreateDirectory "$SMPROGRAMS\Synfig"
|
|
|
465d31 |
CreateShortCut "$SMPROGRAMS\Synfig\Uninstall Synfig Studio.lnk" "$INSTDIR\uninstall-synfigstudio.exe" "" "$INSTDIR\uninstall-synfigstudio.exe" 0
|
|
|
465d31 |
CreateShortCut "$SMPROGRAMS\Synfig\Synfig Studio.lnk" "$INSTDIR\bin\synfigstudio.exe" "" "$INSTDIR\share\pixmaps\synfig_icon.ico" 0
|
|
|
50dc98 |
CreateShortCut "$SMPROGRAMS\Synfig\Synfig Studio (Debug Console).lnk" "$INSTDIR\bin\synfigstudio.exe" "--console" "$INSTDIR\share\pixmaps\synfig_icon.ico" 0
|
|
|
465d31 |
|
|
|
465d31 |
SectionEnd
|
|
|
465d31 |
|
|
|
465d31 |
;--------------------------------
|
|
|
465d31 |
|
|
|
465d31 |
; Uninstaller
|
|
|
465d31 |
|
|
|
465d31 |
Section "Uninstall"
|
|
|
465d31 |
|
|
|
465d31 |
DeleteRegKey HKCR "Synfig.Composition\shell\open\command"
|
|
|
465d31 |
DeleteRegKey HKCR "Synfig.Composition\DefaultIcon"
|
|
|
465d31 |
DeleteRegKey HKCR "Synfig.Composition\shell"
|
|
|
465d31 |
DeleteRegKey HKCR "Synfig.Composition"
|
|
|
465d31 |
DeleteRegKey HKCR ".sif"
|
|
|
465d31 |
DeleteRegKey HKCR ".sifz"
|
|
|
465d31 |
|
|
|
465d31 |
; Remove registry keys
|
|
|
465d31 |
DeleteRegKey HKLM "${PRODUCT_REG_KEY}"
|
|
|
465d31 |
DeleteRegKey HKLM "${PRODUCT_UNINSTALL_KEY}"
|
|
|
465d31 |
|
|
|
465d31 |
; Remove files and uninstaller
|
|
|
465d31 |
Delete "$INSTDIR\${PRODUCT_UNINSTALL_EXE}"
|
|
|
1599d6 |
!include "bin-uninst.nsh"
|
|
|
1599d6 |
!include "etc-uninst.nsh"
|
|
|
1599d6 |
!include "examples-uninst.nsh"
|
|
|
755dac |
!include "lib-gdk-pixbuf-uninst.nsh"
|
|
|
1599d6 |
!include "lib-gtk-uninst.nsh"
|
|
|
755dac |
!include "lib-pango-uninst.nsh"
|
|
|
1599d6 |
!include "lib-synfig-uninst.nsh"
|
|
|
1599d6 |
RMDir "$INSTDIR\lib"
|
|
|
1599d6 |
!include "licenses-uninst.nsh"
|
|
|
1599d6 |
;!include "python-uninst.nsh"
|
|
|
465d31 |
RMDir /r "$INSTDIR\python"
|
|
|
8642ea |
!include "share-uninst.nsh"
|
|
|
3c99b8 |
RMDir "$INSTDIR\share"
|
|
|
465d31 |
|
|
|
465d31 |
; Remove shortcuts, if any
|
|
|
465d31 |
SetShellVarContext All
|
|
|
465d31 |
Delete "$SMPROGRAMS\Synfig\Uninstall Synfig Studio.lnk"
|
|
|
465d31 |
Delete "$SMPROGRAMS\Synfig\Synfig Studio.lnk"
|
|
|
465d31 |
|
|
|
465d31 |
; Remove directories used
|
|
|
465d31 |
RMDir "$SMPROGRAMS\Synfig"
|
|
|
465d31 |
RMDir "$INSTDIR"
|
|
|
465d31 |
|
|
|
465d31 |
System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)'
|
|
|
465d31 |
SectionEnd
|
|
|
465d31 |
|
|
|
465d31 |
Function .onInit
|
|
|
465d31 |
; Get installer location
|
|
|
465d31 |
ReadRegStr $R0 HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString"
|
|
|
465d31 |
; IfErrors 0 +2
|
|
|
465d31 |
; ReadRegStr $R0 HKCU "${PRODUCT_UNINSTALL_KEY}" "UninstallString"
|
|
|
465d31 |
|
|
|
465d31 |
StrCmp $R0 "" done
|
|
|
465d31 |
|
|
|
465d31 |
; Get current installed version
|
|
|
465d31 |
ReadRegStr $R1 HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion"
|
|
|
465d31 |
; IfErrors 0 +2
|
|
|
465d31 |
; ReadRegStr $R1 HKCU "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion"
|
|
|
465d31 |
|
|
|
465d31 |
; StrCmp $R1 ${PRODUCT_VERSION} done
|
|
|
465d31 |
|
|
|
465d31 |
MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "A previous version of Synfig Studio appears to be installed. Would you like to uninstall it first?" IDNO done IDCANCEL abortInstall
|
|
|
465d31 |
|
|
|
465d31 |
; Run the uninstaller
|
|
|
465d31 |
|
|
|
465d31 |
ClearErrors
|
|
|
465d31 |
; CopyFiles "$R0" $TEMP
|
|
|
465d31 |
ExecWait '$R0 _?=$INSTDIR'
|
|
|
465d31 |
IfErrors no_remove_uninstaller
|
|
|
465d31 |
Delete $R0
|
|
|
465d31 |
RMDir $INSTDIR
|
|
|
465d31 |
|
|
|
465d31 |
no_remove_uninstaller:
|
|
|
465d31 |
; Delete "$TEMP\$R0"
|
|
|
465d31 |
|
|
|
465d31 |
; Check that the user completed the uninstallation by examining the registry
|
|
|
465d31 |
ReadRegStr $R0 HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString"
|
|
|
465d31 |
StrCmp $R0 "" done abortInstall
|
|
|
465d31 |
ReadRegStr $R0 HKCU "${PRODUCT_UNINSTALL_KEY}" "UninstallString"
|
|
|
465d31 |
StrCmp $R0 "" done abortInstall
|
|
|
465d31 |
|
|
|
465d31 |
abortInstall:
|
|
|
465d31 |
MessageBox MB_OK|MB_ICONEXCLAMATION "Unable to uninstall previous version of Synfig Studio"
|
|
|
465d31 |
Abort
|
|
|
465d31 |
|
|
|
465d31 |
done:
|
|
|
465d31 |
BringToFront
|
|
|
465d31 |
|
|
|
465d31 |
FunctionEnd
|