utils/chemdiff/chemdiff_installer.nsi (130 lines of code) (raw):

!define WEB_SITE "http://epam.com/opensource/indigo/chemdiff" !define APP_NAME "ChemDiff" !define COMP_NAME "EPAM Systems" !define COPYRIGHT "EPAM Systems � 2010" !define DESCRIPTION "ChemDiff is an Indigo-based utility for visual comparison of two files containing multiple structures." SetCompressor /SOLID lzma !define MULTIUSER_EXECUTIONLEVEL Highest !define MULTIUSER_MUI !define MULTIUSER_INSTALLMODE_COMMANDLINE !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "Software\EPAM Systems\${APP_NAME}" !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "" !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\EPAM Systems\${APP_NAME}" !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "" !define MULTIUSER_INSTALLMODE_INSTDIR "EPAM Systems\${APP_NAME}" !include "MultiUser.nsh" !include "MUI2.nsh" ;-------------------------------- ;General ;Name and file Name "${APP_NAME}" OutFile "chemdiff-${VERSION}-installer.exe" ;-------------------------------- ;Variables Var StartMenuFolder ;-------------------------------- ;Interface Settings !define MUI_ABORTWARNING ;-------------------------------- ;Language Selection Dialog Settings ;Remember the installer language !define MUI_LANGDLL_REGISTRY_ROOT "SHCTX" !define MUI_LANGDLL_REGISTRY_KEY "Software\EPAM Systems\${APP_NAME}" !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" ;-------------------------------- ;Pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "LICENSE" !insertmacro MULTIUSER_PAGE_INSTALLMODE !insertmacro MUI_PAGE_DIRECTORY ;Start Menu Folder Page Configuration !define MUI_STARTMENUPAGE_DEFAULTFOLDER "EPAM Systems\${APP_NAME}" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX" !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\EPAM Systems\${APP_NAME}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder !insertmacro MUI_PAGE_INSTFILES Function finishpageaction CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\launch.bat" FunctionEnd !define MUI_FINISHPAGE_RUN $INSTDIR\launch.bat !define MUI_FINISHPAGE_SHOWREADME "" !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED !define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut" !define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES ;-------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" ;first language is the default language ;-------------------------------- ;Installer Sections Section "${APP_NAME}" SetOutPath "$INSTDIR\lib\" File /r "lib\" SetOutPath $INSTDIR File "chemdiff.jar" File "launch.bat" SetOutPath "$INSTDIR\examples\" File /r "examples\" ;%NSIS_INSTALL_FILES ;Store installation folder WriteRegStr SHCTX "Software\EPAM Systems\${APP_NAME}" "" $INSTDIR ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" !insertmacro MUI_STARTMENU_WRITE_BEGIN Application ;Create shortcuts CreateDirectory "$SMPROGRAMS\$StartMenuFolder" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${APP_NAME}.lnk" "$INSTDIR\launch.bat" "" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" !ifdef WEB_SITE WriteIniStr "$INSTDIR\${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}" CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Website.lnk" "$INSTDIR\${APP_NAME} website.url" !endif !insertmacro MUI_STARTMENU_WRITE_END SectionEnd ;-------------------------------- ;Installer Functions Function .onInit !insertmacro MULTIUSER_INIT FunctionEnd ;-------------------------------- ;This function and example function call can be used to recursively delete empty parent folders of a given folder. Function un.RMDirUP !define RMDirUP "!insertmacro RMDirUPCall" !macro RMDirUPCall _PATH push '${_PATH}' Call un.RMDirUP !macroend ; $0 - current folder ClearErrors Exch $0 ;DetailPrint "ASDF - $0\.." RMDir "$0\.." IfErrors Skip ${RMDirUP} "$0\.." Skip: Pop $0 FunctionEnd ;-------------------------------- ;Uninstaller Section Section "Uninstall" RMDir /r $INSTDIR !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Delete "$SMPROGRAMS\$StartMenuFolder\${APP_NAME}.lnk" Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" !ifdef WEB_SITE Delete "$SMPROGRAMS\$StartMenuFolder\Website.lnk" !endif RMDir "$SMPROGRAMS\$StartMenuFolder" ${RMDirUP} "$SMPROGRAMS\$StartMenuFolder" Delete "$DESKTOP\${APP_NAME}.lnk" DeleteRegKey SHCTX "Software\EPAM Systems\${APP_NAME}" DeleteRegKey /ifempty SHCTX "Software\EPAM Systems" SectionEnd ;-------------------------------- ;Uninstaller Functions Function un.onInit !insertmacro MULTIUSER_UNINIT FunctionEnd