X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=win%2Fyaz.nsi;h=c89ccdf34aaa3459d1d886f64642ba6f32807e52;hb=a4a4e9d375bfbcc823e8b3820ffb23272e919004;hp=194d1f4b7877d0aab6e3910952be9ca4f83c9149;hpb=15b8df11c04098a83b1d7e545ee07ad4589e484f;p=yaz-moved-to-github.git diff --git a/win/yaz.nsi b/win/yaz.nsi index 194d1f4..9d923e6 100644 --- a/win/yaz.nsi +++ b/win/yaz.nsi @@ -1,6 +1,51 @@ -; $Id: yaz.nsi,v 1.41 2004-03-16 13:29:44 adam Exp $ +; This file is part of the YAZ toolkit. +; Copyright (C) Index Data +; See the file LICENSE for details. -!define VERSION "2.0.16" +!include EnvVarUpdate.nsh +!include version.nsi + +!include "MUI.nsh" + +!define VS_REDIST_FULL "c:\Program Files (x86)\Microsoft Visual Studio ${VSVER}.0\VC\redist\1033\${VS_REDIST_EXE}" + +; 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 x86 Minimum Runtime - 14.0.23026 +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\55E3652ACEB38283D8765E8E9B8E6B57" +!endif + +InstallDir "$PROGRAMFILES64\YAZ" +!else +; 32-bit +!if "${VSVER}" = "12" +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\21EE4A31AE32173319EEFE3BD6FDFFE3" +!endif +!if "${VSVER}" = "14" +; Microsoft Visual C++ 2015 x64 Minimum Runtime - 14.0.23026 +!define VS_REDIST_KEY "SOFTWARE\Classes\Installer\Products\51E9E3D0A7EDB003691F4BFA219B4688" +!endif + +!if "${VSVER}" = "14" +!define VS_REDIST_EXE vc_redist.${VSARCH}.exe +!else +!define VS_REDIST_EXE vcredist_${VSARCH}.exe +!endif + + +InstallDir "$PROGRAMFILES\YAZ" +!endif + + +RequestExecutionLevel admin + +SetCompressor bzip2 Name "YAZ" Caption "Index Data YAZ ${VERSION} Setup" @@ -13,18 +58,33 @@ ComponentText "This will install the YAZ Toolkit on your computer:" InstType "Full (w/ Source)" InstType "Lite (w/o Source)" -; Some default compiler settings (uncomment and change at will): -; SetCompress auto ; (can be off or force) -; SetDatablockOptimize on ; (can be off) -; CRCCheck on ; (can be off) -; AutoCloseWindow false ; (can be true for the window go away automatically at end) -; ShowInstDetails hide ; (can be show to have them shown, or nevershow to disable) -; SetDateSave off ; (can be on to have files restored to their orginal date) - -InstallDir "$PROGRAMFILES\YAZ" InstallDirRegKey HKLM "SOFTWARE\Index Data\YAZ" "" -DirShow show ; (make this hide to not let the user change it) -DirText "Select the directory to install YAZ in:" + + +;---------------------------- +; Pages + + + !insertmacro MUI_PAGE_LICENSE "license.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES +; Page components +; Page directory +; Page instfiles + +; UninstPage uninstConfirm +; UninstPage instfiles + +;-------------------------------- +;Languages + +!insertmacro MUI_LANGUAGE "English" + +;-------------------------------- Section "" ; (default section) SetOutPath "$INSTDIR" @@ -38,15 +98,15 @@ Section "" ; (default section) CreateShortCut "$SMPROGRAMS\YAZ\YAZ Program Directory.lnk" \ "$INSTDIR" WriteINIStr "$SMPROGRAMS\YAZ\YAZ Home page.url" \ - "InternetShortcut" "URL" "http://www.indexdata.dk/yaz/" + "InternetShortcut" "URL" "http://www.indexdata.com/yaz/" CreateShortCut "$SMPROGRAMS\YAZ\Uninstall YAZ.lnk" \ "$INSTDIR\uninst.exe" SetOutPath $INSTDIR File LICENSE.txt File ..\README + File ..\NEWS SetOutPath $INSTDIR SetOutPath $INSTDIR\ztest - File ..\ztest\dummy-records File ..\ztest\dummy-grs File ..\ztest\dummy-words SetOutPath $INSTDIR\etc @@ -56,14 +116,22 @@ Section "" ; (default section) SectionEnd ; end of default section -Section "YAZ Runtime" +Section "YAZ Runtime" YAZ_Runtime SectionIn 1 2 + SetOutPath $INSTDIR\bin +!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 IfFileExists "$INSTDIR\bin\yaz-ztest.exe" 0 Noservice ExecWait '"$INSTDIR\bin\yaz-ztest.exe" -remove' Noservice: - SetOutPath $INSTDIR\bin - File ..\bin\*.exe File ..\bin\*.dll + File ..\bin\*.exe SetOutPath $SMPROGRAMS\YAZ CreateShortCut "$SMPROGRAMS\YAZ\YAZ Client.lnk" \ "$INSTDIR\bin\yaz-client.exe" @@ -76,73 +144,102 @@ Noservice: "$INSTDIR\bin\yaz-ztest.exe" '-remove' SectionEnd -Section "YAZ Development" +Section "YAZ Development" YAZ_Development SectionIn 1 2 SetOutPath $INSTDIR\include\yaz File ..\include\yaz\*.h SetOutPath $INSTDIR\lib - File ..\lib\*.lib + File ..\lib\yaz*.lib SectionEnd -Section "YAZ Documentation" +Section "YAZ Documentation" YAZ_Documentation SectionIn 1 2 SetOutPath $INSTDIR\doc - File ..\doc\*.html - File ..\doc\*.png - File ..\doc\*.pdf - File ..\doc\*.xml - File ..\doc\*.in - File ..\doc\*.dsl - File ..\doc\*.xsl - File ..\doc\*.css + File /nonfatal /r ..\doc\*.css + File /nonfatal /r ..\doc\*.ent + File /nonfatal /r ..\doc\*.html + File /r ..\doc\*.xml + File /r ..\doc\*.png + File /nonfatal /r ..\doc\*.xsl SetOutPath $SMPROGRAMS\YAZ CreateShortCut "$SMPROGRAMS\YAZ\HTML Documentation.lnk" \ - "$INSTDIR\doc\yaz.html" - CreateShortCut "$SMPROGRAMS\YAZ\PDF Documentaion.lnk" \ - "$INSTDIR\doc\yaz.pdf" + "$INSTDIR\doc\index.html" SectionEnd -Section "YAZ Source" +Section "YAZ Source" YAZ_Source SectionIn 1 + SetOutPath $INSTDIR + File ..\IDMETA + File /r ..\*.c + File /r /x yaz ..\*.h SetOutPath $INSTDIR\util - File ..\util\*.c File ..\util\yaz-asncomp SetOutPath $INSTDIR\src - File ..\src\*.c - File ..\src\*.h File ..\src\*.y File ..\src\*.tcl + File ..\src\*.csv File ..\src\*.asn - File ..\src\charconv.sgm - File ..\src\codetables.xml - SetOutPath $INSTDIR\zoom - File ..\zoom\*.c - SetOutPath $INSTDIR\ztest - File ..\ztest\*.c - SetOutPath $INSTDIR\client - File ..\client\*.c - File ..\client\*.h + File ..\src\codetables*.xml + SetOutPath $INSTDIR\test + File ..\test\marc*.* + File ..\test\*.sh + File ..\test\*.xml + File ..\test\*.asn SetOutPath $INSTDIR\win File makefile File *.nsi File *.rc - File *.h +SectionEnd + +Section "YAZ4J" YAZ4J + SectionIn 1 2 + SetOutPath $INSTDIR\bin + File /nonfatal ..\bin\yaz4j.dll + SetOutPath $INSTDIR\java + File /nonfatal ..\java\yaz4j.jar +SectionEnd + +Section "YAZ Path" YAZ_PATH + SectionIn 1 2 + ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" SectionEnd ; begin uninstall settings/section UninstallText "This will uninstall YAZ ${VERSION} from your system" Section Uninstall -; add delete commands to delete whatever files/registry keys/etc you installed here. + ExecWait '"$INSTDIR\bin\yaz-ztest" -remove' + RMDir /r $SMPROGRAMS\YAZ Delete "$INSTDIR\uninst.exe" DeleteRegKey HKLM "SOFTWARE\Index Data\YAZ" DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YAZ" - ExecWait '"$INSTDIR\bin\yaz-ztest" -remove' - RMDir /r $SMPROGRAMS\YAZ RMDir /r $INSTDIR + ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin" IfFileExists $INSTDIR 0 Removed MessageBox MB_OK|MB_ICONEXCLAMATION \ "Note: $INSTDIR could not be removed." Removed: SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings +LangString DESC_YAZ_Runtime ${LANG_ENGLISH} "YAZ runtime files needed in order for YAZ to run, such as DLLs." +LangString DESC_YAZ_Development ${LANG_ENGLISH} "Header files and import libraries required for developing software using YAZ." +LangString DESC_YAZ_Documentation ${LANG_ENGLISH} "YAZ Users' guide and reference in HTML. Describes both YAZ applications and the API." +LangString DESC_YAZ_Source ${LANG_ENGLISH} "Source code of YAZ. Required if you need to rebuild YAZ (for debugging purposes)." +LangString DESC_YAZ4J ${LANG_ENGLISH} "Java wrapper for the ZOOM API of YAZ." +LangString DESC_YAZ_PATH ${LANG_ENGLISH} "Update PATH to include binaries of YAZ." + +;Assign language strings to sections +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ_Runtime} $(DESC_YAZ_Runtime) +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ_Development} $(DESC_YAZ_Development) +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ_Documentation} $(DESC_YAZ_Documentation) +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ_Source} $(DESC_YAZ_Source) +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ4J} $(DESC_YAZ4J) +!insertmacro MUI_DESCRIPTION_TEXT ${YAZ_PATH} $(DESC_YAZ_PATH) +!insertmacro MUI_FUNCTION_DESCRIPTION_END + ; eof