#!Nsis Installer Command Script # # The following external defines are recognized: # ${VERSION} = YYYYMMDD # ${VARIANT} = serial or mpich2 # ${BIT} = 32 or 64 # ${LIBGCC} = name of libgcc dll file to use # ${MINGW} = !include "LogicLib.nsh" !include "EnvVarUpdate.nsh" !include "x64.nsh" RequestExecutionLevel admin !macro VerifyUserIsAdmin UserInfo::GetAccountType pop $0 ${If} $0 != "admin" messageBox mb_iconstop "Administrator rights required!" setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED quit ${EndIf} !macroend !macro CreateInternetShortcut FILENAME URL ICONFILE ICONINDEX WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}" WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}" WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "${ICONINDEX}" !macroend !ifndef LIBGCC !define LIBGCC libgcc_s_sjlj-1.dll !endif !define QE4WIN "Quantum ESPRESSO ${BIT}-bit ${VERSION}-${VARIANT}" OutFile "qe4win/qe4win-${VERSION}-${BIT}bit-${VARIANT}.exe" Name "${QE4WIN}" !if ${BIT} == 64 InstallDir "$ProgramFiles64\${QE4WIN}" !define MPICHDIR "$ProgramFiles64\MPICH2\bin" !else InstallDir "$ProgramFiles\${QE4WIN}" !define MPICHDIR "$ProgramFiles\MPICH2\bin" !endif XPStyle on ShowInstDetails show ShowUninstDetails show SetCompressor lzma Page directory Page instfiles DirText "Please select the Quantum ESPRESSO installation folder." function .onInit setShellVarContext all !insertmacro VerifyUserIsAdmin functionEnd Section "${QE4WIN}" SectionIn RO SetRegView ${BIT} CreateDirectory "$SMPROGRAMS\${QE4WIN}" CreateShortCut "$SMPROGRAMS\${QE4WIN}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "" CreateShortCut "$SMPROGRAMS\${QE4WIN}\README.lnk" "$INSTDIR\README.txt" "" "" CreateShortCut "$SMPROGRAMS\${QE4WIN}\Input Reference.lnk" "$INSTDIR\doc\qe-input-ref.html" "" "" CreateShortCut "$SMPROGRAMS\${QE4WIN}\Documentation.lnk" "$WINDIR\explorer.exe" \ '/e,"$INSTDIR\doc"' "" CreateShortCut "$SMPROGRAMS\${QE4WIN}\License.lnk" "$INSTDIR\License.txt" "" "" CreateShortCut "$SMPROGRAMS\${QE4WIN}\Release Notes.lnk" "$INSTDIR\Release-Notes.txt" "" "" !insertmacro CreateInternetShortcut "$SMPROGRAMS\${QE4WIN}\Quantum ESPRESSO Home Page" \ "http://www.quantum-espresso.org" "" "0" SetOutPath "$INSTDIR" CreateDirectory "$INSTDIR\bin" CreateDirectory "$INSTDIR\doc" CreateDirectory "$INSTDIR\pseudo" File qe-docs/License.txt File qe-docs/README.txt File qe-docs/Release-Notes.txt SetOutPath "$INSTDIR\bin" File ${MINGW}/${LIBGCC} File ${MINGW}/libgfortran-3.dll File ${MINGW}/libquadmath-0.dll File qe-${VARIANT}-${BIT}/*.* SetOutPath "$INSTDIR\doc" File qe-docs/qe-input-ref.html File qe-docs/QE-logo.jpg File qe-docs/*.pdf SetOutPath "$INSTDIR\pseudo" File espresso-current/pseudo/*.UPF File espresso-current/pseudo/*.van File espresso-current/pseudo/*.bhs ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "${MPICHDIR}" ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" ${EnvVarUpdate} $0 "ESPRESSO_PSEUDO" "A" "HKLM" "$INSTDIR\pseudo" # ${EnvVarUpdate} $0 "ESPRESSO_TMPDIR" "A" "HKLM" "$AppData\Local\Temp" SectionEnd function un.onInit SetShellVarContext all !insertmacro VerifyUserIsAdmin functionEnd Section "Uninstall" SetRegView ${BIT} ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "${MPICHDIR}" ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin" ${un.EnvVarUpdate} $0 "ESPRESSO_PSEUDO" "R" "HKLM" "$INSTDIR\pseudo" # ${un.EnvVarUpdate} $0 "ESPRESSO_TMPDIR" "R" "HKLM" "$AppData\Local\Temp" RMDir /r "$SMPROGRAMS\${QE4WIN}" Delete /REBOOTOK "$INSTDIR\*.txt" Delete /REBOOTOK "$INSTDIR\Uninstall.exe" RMDir /r /REBOOTOK "$INSTDIR\bin" RMDir /r /REBOOTOK "$INSTDIR\doc" RMDir /r /REBOOTOK "$INSTDIR\pseudo" RMDir /REBOOTOK "$INSTDIR" SectionEnd Section -post SetRegView ${BIT} WriteUninstaller "$INSTDIR\Uninstall.exe" SectionEnd # Local Variables: # mode: sh # End: