X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fstable%2Fwin32inst.nsi.in;fp=synfig-studio%2Ftags%2Fstable%2Fwin32inst.nsi.in;h=e13fda12d7f4b3f904f617c19089abbc29cb12c8;hb=c1f365570ac471ede0668ad976fad345747aa8de;hp=0000000000000000000000000000000000000000;hpb=a80f59e6c17a85ed04890892fa1616732cdec646;p=synfig.git diff --git a/synfig-studio/tags/stable/win32inst.nsi.in b/synfig-studio/tags/stable/win32inst.nsi.in new file mode 100644 index 0000000..e13fda1 --- /dev/null +++ b/synfig-studio/tags/stable/win32inst.nsi.in @@ -0,0 +1,197 @@ +; example2.nsi +; +; This script is based on example1.nsi, but it remember the directory, +; has uninstall support and (optionally) installs start menu shortcuts. +; +; It will install makensisw.exe into a directory that the user selects, + +!include "MUI.nsh" + +;-------------------------------- + +; The name of the installer +Name "@PACKAGE_NAME@ @PACKAGE_VERSION@" + +; The file to write +OutFile "@PACKAGE_TARNAME@-@PACKAGE_VERSION@.exe" + +; The default installation directory +InstallDir $PROGRAMFILES\Synfig + +!define MUI_ABORTWARNING + +!define SHCNE_ASSOCCHANGED 0x8000000 +!define SHCNF_IDLIST 0 + +!define PRODUCT_REG_KEY "Software\@PACKAGE_TARNAME@\@API_VERSION@" +!define PRODUCT_UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\@PACKAGE_TARNAME@" +!define PRODUCT_UNINSTALL_EXE "uninstall-@PACKAGE_TARNAME@.exe" + +;-------------------------------- + +!define MUI_WELCOMEFINISHPAGE_BITMAP ".\images\installer_logo.bmp" + +; Pages + +!insertmacro MUI_PAGE_WELCOME +;!insertmacro MUI_PAGE_LICENSE "@srcdir@\alphalicense.txt" +!insertmacro MUI_PAGE_LICENSE "@srcdir@\COPYING" +!insertmacro MUI_PAGE_COMPONENTS +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES + +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +!insertmacro MUI_LANGUAGE "English" + +;-------------------------------- + +; The stuff to install +Section "Synfig Studio" + + SectionIn RO + + SetOutPath "$INSTDIR\share\pixmaps" + !include "images\images.nsh" + + SetOutPath "$INSTDIR\share\pixmaps" + !include "images\icons.nsh" + + SetOutPath "$INSTDIR\bin" + File "src\synfigapp\.libs\libsynfigapp-0.dll" + File "src\gtkmm\.libs\synfigstudio.exe" + + FileOpen $0 $PROFILE\.gtkrc-2.0 a + FileSeek $0 0 END + FileWrite $0 "gtk-toolbar-style = 0" + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileWrite $0 'gtk-theme-name = "Default"' + FileWriteByte $0 "13" + FileWriteByte $0 "10" + FileClose $0 + + WriteRegStr HKLM "${PRODUCT_REG_KEY}" "Path" "$INSTDIR" + WriteRegStr HKLM "${PRODUCT_REG_KEY}" "Version" "@PACKAGE_VERSION@" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayName" "@PACKAGE_NAME@" + WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion" "@PACKAGE_VERSION@" + WriteRegStr HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\${PRODUCT_UNINSTALL_EXE}"' + WriteRegDWORD HKLM "${PRODUCT_UNINSTALL_KEY}" "NoModify" 1 + WriteRegDWORD HKLM "${PRODUCT_UNINSTALL_KEY}" "NoRepair" 1 + + + WriteRegStr HKCR ".sif" "" "Synfig.Composition" + WriteRegStr HKCR ".sif" "Content Type" "image/x-sif" + WriteRegStr HKCR ".sif" "PerceivedType" "image" + + WriteRegStr HKCR ".sifz" "" "Synfig.Composition" + WriteRegStr HKCR ".sifz" "Content Type" "image/x-sifz" + WriteRegStr HKCR ".sifz" "PerceivedType" "image" + + WriteRegStr HKCR "Synfig.Composition" "" "Synfig Composition File" + WriteRegStr HKCR "Synfig.Composition\DefaultIcon" "" "$INSTDIR\share\pixmaps\sif_icon.ico" + WriteRegStr HKCR "Synfig.Composition\shell" "" "open" + WriteRegStr HKCR "Synfig.Composition\shell\open\command" "" '$INSTDIR\bin\synfigstudio.exe "%1"' + + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' + WriteUninstaller "${PRODUCT_UNINSTALL_EXE}" +SectionEnd + + +; Optional section (can be disabled by the user) +Section "Start Menu Shortcuts" + + SetShellVarContext All + CreateDirectory "$SMPROGRAMS\Voria" + CreateShortCut "$SMPROGRAMS\Voria\Uninstall Synfig Studio.lnk" "$INSTDIR\uninstall-@PACKAGE_TARNAME@.exe" "" "$INSTDIR\uninstall-@PACKAGE_TARNAME@.exe" 0 + CreateShortCut "$SMPROGRAMS\Voria\Synfig Studio.lnk" "$INSTDIR\bin\synfigstudio.exe" "" "$INSTDIR\share\pixmaps\synfig_icon.ico" 0 + +SectionEnd + +;-------------------------------- + +; Uninstaller + +Section "Uninstall" + + DeleteRegKey HKCR "Synfig.Composition\shell\open\command" + DeleteRegKey HKCR "Synfig.Composition\DefaultIcon" + DeleteRegKey HKCR "Synfig.Composition\shell" + DeleteRegKey HKCR "Synfig.Composition" + DeleteRegKey HKCR ".sif" + DeleteRegKey HKCR ".sifz" + + ; Remove registry keys + DeleteRegKey HKLM "${PRODUCT_REG_KEY}" + DeleteRegKey HKLM "${PRODUCT_UNINSTALL_KEY}" + + ; Remove images and icons + !include "images\unimages.nsh" + !include "images\unicons.nsh" + RMDir "$INSTDIR\share\pixmaps" + RMDir "$INSTDIR\share" + + ; Remove files and uninstaller + Delete "$INSTDIR\${PRODUCT_UNINSTALL_EXE}" + Delete $INSTDIR\bin\synfigstudio.exe + Delete $INSTDIR\bin\libsynfigapp-0.dll + RMDir "$INSTDIR\bin" + + ; Remove shortcuts, if any + SetShellVarContext All + Delete "$SMPROGRAMS\Voria\Uninstall Synfig Studio.lnk" + Delete "$SMPROGRAMS\Voria\Synfig Studio.lnk" + + ; Remove directories used + RMDir "$SMPROGRAMS\Voria" + RMDir "$INSTDIR" + + System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)' +SectionEnd + +Function .onInit + ; Get installer location + ReadRegStr $R0 HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString" +; IfErrors 0 +2 +; ReadRegStr $R0 HKCU "${PRODUCT_UNINSTALL_KEY}" "UninstallString" + + StrCmp $R0 "" done + + ; Get current installed version + ReadRegStr $R1 HKLM "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion" +; IfErrors 0 +2 +; ReadRegStr $R1 HKCU "${PRODUCT_UNINSTALL_KEY}" "DisplayVersion" + +; StrCmp $R1 ${PRODUCT_VERSION} done + + MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "A previous version of @PACKAGE_NAME@ appears to be installed. Would you like to uninstall it first?" IDNO done IDCANCEL abortInstall + + ; Run the uninstaller + + ClearErrors + ; CopyFiles "$R0" $TEMP + ExecWait '$R0 _?=$INSTDIR' + IfErrors no_remove_uninstaller + Delete $R0 + RMDir $INSTDIR + +no_remove_uninstaller: +; Delete "$TEMP\$R0" + + ; Check that the user completed the uninstallation by examining the registry + ReadRegStr $R0 HKLM "${PRODUCT_UNINSTALL_KEY}" "UninstallString" + StrCmp $R0 "" done abortInstall + ReadRegStr $R0 HKCU "${PRODUCT_UNINSTALL_KEY}" "UninstallString" + StrCmp $R0 "" done abortInstall + +abortInstall: + MessageBox MB_OK|MB_ICONEXCLAMATION "Unable to uninstall previous version of @PACKAGE_NAME@" + Abort + +done: + BringToFront + +FunctionEnd