; 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@" !define PRODUCT_WEB_SITE "http://voria.com/synfig/" ; The file to write OutFile "@PACKAGE_TARNAME@-@PACKAGE_VERSION@.exe" ; The default installation directory InstallDir $PROGRAMFILES\@PACKAGE_TARNAME@ ; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\Voria_@PACKAGE_TARNAME@" "Install_Dir" !define VERSION_MAJ "@VERSION_MAJ@" !define VERSION_MIN "@VERSION_MIN@" !define VERSION_REV "@VERSION_REV@" !define SYNFIG_REG_KEY "Software\@PACKAGE_TARNAME@\@API_VERSION@" !define SYNFIG_UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\@PACKAGE_TARNAME@" !define SYNFIG_UNINSTALL_EXE "uninstall-@PACKAGE_TARNAME@.exe" !define MUI_ABORTWARNING ;-------------------------------- ; Pages #Page components #Page directory #Page instfiles #UninstPage uninstConfirm #UninstPage instfiles ;CustomGuiInit !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "@srcdir@\COPYING" #!insertmacro MUI_PAGE_LICENSE "@srcdir@\alphalicense.txt" ;Page custom PageReinstall ; PageLeaveReinstall !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_COMPONENTS !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" ;-------------------------------- ; The stuff to install Section "" SectionIn RO ; Set output path to the installation directory. SetOutPath $INSTDIR\bin File "C:\mingw\bin\mingwm10.dll" File "C:\GTK\bin\libfreetype-6.dll" File "C:\GTK\bin\libxml2.dll" ; Put file there ; File "synfig_modules.conf" CreateDirectory "$INSTDIR\etc" Delete $INSTDIR\etc\synfig_modules.conf ; Write the installation path into the registry ; WriteRegStr HKLM "Software\Voria_@PACKAGE_TARNAME@" "Install_Dir" "$INSTDIR" WriteRegStr HKLM "${SYNFIG_REG_KEY}" "Path" "$INSTDIR" WriteRegStr HKLM "${SYNFIG_REG_KEY}" "Version" "@PRODUCT_VERSION@" ; Write the uninstall keys for Windows WriteRegStr HKLM "${SYNFIG_UNINSTALL_KEY}" "DisplayName" "@PACKAGE_NAME@" WriteRegStr HKLM "${SYNFIG_UNINSTALL_KEY}" "DisplayVersion" "@PACKAGE_VERSION@" WriteRegStr HKLM "${SYNFIG_UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\${SYNFIG_UNINSTALL_EXE}"' WriteRegDWORD HKLM "${SYNFIG_UNINSTALL_KEY}" "NoModify" 1 WriteRegDWORD HKLM "${SYNFIG_UNINSTALL_KEY}" "NoRepair" 1 WriteUninstaller "${SYNFIG_UNINSTALL_EXE}" SectionEnd ; Optional section (can be disabled by the user) ;Section "Start Menu Shortcuts" ; CreateDirectory "$SMPROGRAMS\Example2" ; CreateShortCut "$SMPROGRAMS\Example2\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 ; CreateShortCut "$SMPROGRAMS\Example2\Example2 (MakeNSISW).lnk" "$INSTDIR\makensisw.exe" "" "$INSTDIR\makensisw.exe" 0 ;SectionEnd ; Optional section (can be disabled by the user) Section "Start Menu Shortcuts" CreateDirectory "$SMPROGRAMS\Voria" CreateShortCut "$SMPROGRAMS\Voria\Uninstall Synfig Core.lnk" "$INSTDIR\uninstall-@PACKAGE_TARNAME@.exe" "" "$INSTDIR\uninstall-@PACKAGE_TARNAME@.exe" 0 SectionEnd ;-------------------------------- ; Uninstaller Section "Uninstall" ; Remove registry keys DeleteRegKey HKLM "${SYNFIG_REG_KEY}" DeleteRegKey HKLM "${SYNFIG_UNINSTALL_KEY}" ; DeleteRegKey HKLM "Software\Voria_@PACKAGE_TARNAME@" ; Remove files and uninstaller ;Delete $INSTDIR\synfig.exe Delete $INSTDIR\uninstall-@PACKAGE_TARNAME@.exe Delete $INSTDIR\etc\synfig_modules.conf RMDir $INSTDIR\bin RMDir $INSTDIR\etc ; Remove shortcuts, if any Delete "$SMPROGRAMS\Voria\Uninstall Synfig Core.lnk" ; Remove directories used ;RMDir "$SMPROGRAMS\Example2" RMDir "$INSTDIR" SectionEnd !include @srcdir@\src\synfig\synfig.nsh !include @srcdir@\src\tool\tool.nsh Section "Examples" SetOutPath $INSTDIR\examples File "@srcdir@\examples\*.sif" CreateDirectory "$SMPROGRAMS\Voria" CreateShortCut "$SMPROGRAMS\Voria\Examples.lnk" "$INSTDIR\examples" "" "$INSTDIR\examples" 0 SectionEnd Section "un.Examples" Delete "$SMPROGRAMS\Voria\Examples.lnk" Delete "$INSTDIR\examples\*.sif" RMDir "$INSTDIR\examples" SectionEnd SubSection "PlugIns" SubSection "Layers" !include "@srcdir@\src\modules\lyr_std\lyr_std.nsh" !include "@srcdir@\src\modules\mod_filter\mod_filter.nsh" !include "@srcdir@\src\modules\mod_gradient\mod_gradient.nsh" !include "@srcdir@\src\modules\mod_noise\mod_noise.nsh" !include "@srcdir@\src\modules\mod_particle\mod_particle.nsh" !include "@srcdir@\src\modules\mod_geometry\mod_geometry.nsh" !include "@srcdir@\src\modules\lyr_freetype\lyr_freetype.nsh" SubSectionEnd SubSection "Render Targets" !include "@srcdir@\src\modules\mod_bmp\mod_bmp.nsh" ;!include "@srcdir@\src\modules\mod_dv\mod_dv.nsh" ;!include "@srcdir@\src\modules\mod_ffmpeg\mod_ffmpeg.nsh" ;!include "@srcdir@\src\modules\mod_gif\mod_gif.nsh" ;!include "@srcdir@\src\modules\mod_imagemagick\mod_imagemagick.nsh" !include "@srcdir@\src\modules\mod_jpeg\mod_jpeg.nsh" !include "@srcdir@\src\modules\mod_png\mod_png.nsh" !include "@srcdir@\src\modules\mod_ppm\mod_ppm.nsh" !include "@srcdir@\src\modules\mod_yuv420p\mod_yuv420p.nsh" SubSectionEnd SubSectionEnd SubSection "un.PlugIns" SubSection "un.Layers" !include "@srcdir@\src\modules\lyr_std\unlyr_std.nsh" !include "@srcdir@\src\modules\lyr_freetype\unlyr_freetype.nsh" !include "@srcdir@\src\modules\mod_filter\unmod_filter.nsh" !include "@srcdir@\src\modules\mod_gradient\unmod_gradient.nsh" !include "@srcdir@\src\modules\mod_noise\unmod_noise.nsh" !include "@srcdir@\src\modules\mod_particle\unmod_particle.nsh" !include "@srcdir@\src\modules\mod_geometry\unmod_geometry.nsh" SubSectionEnd SubSection "un.Render Targets" !include "@srcdir@\src\modules\mod_bmp\unmod_bmp.nsh" ;!include "@srcdir@\src\modules\mod_dv\unmod_dv.nsh" ;!include "@srcdir@\src\modules\mod_ffmpeg\unmod_ffmpeg.nsh" ;!include "@srcdir@\src\modules\mod_gif\unmod_gif.nsh" ;!include "@srcdir@\src\modules\mod_imagemagick\unmod_imagemagick.nsh" !include "@srcdir@\src\modules\mod_jpeg\unmod_jpeg.nsh" !include "@srcdir@\src\modules\mod_png\unmod_png.nsh" !include "@srcdir@\src\modules\mod_ppm\unmod_ppm.nsh" !include "@srcdir@\src\modules\mod_yuv420p\unmod_yuv420p.nsh" SubSectionEnd SubSectionEnd Function .onInit ; Get installer location ReadRegStr $R0 HKLM "${SYNFIG_UNINSTALL_KEY}" "UninstallString" ; IfErrors 0 +2 ; ReadRegStr $R0 HKCU "${SYNFIG_UNINSTALL_KEY}" "UninstallString" StrCmp $R0 "" done ; Get current installed version ReadRegStr $R1 HKLM "${SYNFIG_UNINSTALL_KEY}" "DisplayVersion" ; IfErrors 0 +2 ; ReadRegStr $R1 HKCU "${SYNFIG_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 "${SYNFIG_UNINSTALL_KEY}" "UninstallString" StrCmp $R0 "" done abortInstall ReadRegStr $R0 HKCU "${SYNFIG_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