quantum-espresso/install/espresso.nsis

141 lines
4.1 KiB
Plaintext

#!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} = <path to mingw windows dlls>
!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: