X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=win%2Fzebra.nsi;h=b43e67347f921d3ab8faacd5aab6896a7785835f;hp=3bace919544be159a847bdcce9862726827826af;hb=aae116a2ec79fd3487ac2d50ad2d6110f64145b2;hpb=b397f6feaa676b4b01f64d6278fb33075b78730f diff --git a/win/zebra.nsi b/win/zebra.nsi index 3bace91..b43e673 100644 --- a/win/zebra.nsi +++ b/win/zebra.nsi @@ -1,18 +1,42 @@ -; $Id: zebra.nsi,v 1.50 2008-03-05 09:29:10 adam Exp $ +!include EnvVarUpdate.nsh +!include version.nsi +!include "MUI.nsh" -!define VERSION "2.0.33" +!define VS_REDIST_FULL "c:\Program Files (x86)\Microsoft Visual Studio ${VSVER}.0\VC\redist\1033\${VS_REDIST_EXE}" -; VS 2005 -; !define VS_RUNTIME_DLL "c:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll" -; !define VS_RUNTIME_MANIFEST "c:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" +; For example can be found with regedit: +; Microsoft Visual C++ 2013 x86 Minimum Runtime +!if "${VSARCH}" = "x64" +; 64-bit +!if "${VSVER}" = "12" +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\6E8D947A316B3EB3F8F540C548BE2AB9" +!endif +!if "${VSVER}" = "14" +; Microsoft Visual C++ 2015 x64 Minimum Runtime - 14.0.23026 +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\51E9E3D0A7EDB003691F4BFA219B4688" +!endif -; VS 2003 -; !define VS_RUNTIME_DLL "c:\Program files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\msvcr71.dll" +InstallDir "$PROGRAMFILES64\Zebra" +!else +; 32-bit +!if "${VSVER}" = "12" +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\21EE4A31AE32173319EEFE3BD6FDFFE3" +!endif +!if "${VSVER}" = "14" +; Microsoft Visual C++ 2015 x86 Minimum Runtime - 14.0.23026 +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\55E3652ACEB38283D8765E8E9B8E6B57" +!endif -; VS 6.0 -; (no defines) +InstallDir "$PROGRAMFILES\Zebra" +!endif -!include "MUI.nsh" +!if "${VSVER}" = "14" +!define VS_REDIST_EXE vc_redist.${VSARCH}.exe +!else +!define VS_REDIST_EXE vcredist_${VSARCH}.exe +!endif + +RequestExecutionLevel admin SetCompressor bzip2 @@ -27,7 +51,6 @@ ComponentText "This will install Zebra on your computer:" InstType "Full (w/ Source)" InstType "Lite (w/o Source)" -InstallDir "$PROGRAMFILES\Zebra" InstallDirRegKey HKLM "SOFTWARE\Index Data\Zebra" "" ;-------------------------------- @@ -37,7 +60,7 @@ InstallDirRegKey HKLM "SOFTWARE\Index Data\Zebra" "" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES - + !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ; Page components @@ -49,7 +72,7 @@ InstallDirRegKey HKLM "SOFTWARE\Index Data\Zebra" "" ;-------------------------------- ;Languages - + !insertmacro MUI_LANGUAGE "English" ;-------------------------------- @@ -78,25 +101,21 @@ SectionEnd ; end of default section Section "Zebra Runtime" SectionIn 1 2 SetOutPath $INSTDIR\bin -!ifdef VS_RUNTIME_DLL - File "${VS_RUNTIME_DLL}" -!endif -!ifdef VS_RUNTIME_MANIFEST - File "${VS_RUNTIME_MANIFEST}" - File ..\bin\*.manifest +!if "${VS_REDIST_FULL}" != "" + File "${VS_REDIST_FULL}" + ReadRegDword $1 HKLM "${VS_REDIST_KEY}" "Version" + ${If} $1 == "" + ExecWait '"$INSTDIR\bin\${VS_REDIST_EXE}" /passive /nostart' + ${endif} + Delete "$INSTDIR\bin\${VS_REDIST_EXE}" !endif File ..\bin\*.exe File ..\bin\idzebra.dll - File ..\bin\iconv.dll - File ..\bin\zlib1.dll File ..\bin\libxml2.dll File ..\bin\libxslt.dll - File ..\bin\yaz3.dll + File ..\bin\yaz*.dll + File ..\bin\icu*.dll File ..\bin\libexpat.dll - File ..\bin\icudt38.dll - File ..\bin\icuin38.dll - File ..\bin\icuuc38.dll - File ..\bin\yaz_icu3.dll SectionEnd Section "Zebra Development" @@ -112,7 +131,7 @@ SectionEnd Section "Zebra Documentation" SectionIn 1 2 SetOutPath $INSTDIR\doc - File /r ..\doc\*.html + File /nonfatal /r ..\doc\*.html File /r ..\doc\*.png File /r ..\doc\*.xml File /r ..\doc\*.xsl @@ -132,8 +151,11 @@ SectionEnd Section "Zebra Source" SectionIn 1 + SetOutPath $INSTDIR + File ..\IDMETA SetOutPath $INSTDIR\util File ..\util\*.c + File ..\util\*.tcl SetOutPath $INSTDIR\dfa File ..\dfa\*.c File ..\dfa\*.h @@ -166,6 +188,11 @@ Section "Zebra Source" File *.txt SectionEnd +Section "Zebra Path" + SectionIn 1 2 + ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" +SectionEnd + ; begin uninstall settings/section UninstallText "This will uninstall Zebra ${VERSION} from your system" @@ -177,7 +204,8 @@ Section Uninstall ExecWait '"$INSTDIR\bin\zebrasrv" -remove' RMDir /r "$SMPROGRAMS\Index Data\Zebra" RMDir /r $INSTDIR - IfFileExists $INSTDIR 0 Removed + ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin" + IfFileExists $INSTDIR 0 Removed MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." Removed: