158 lines
4.6 KiB
Plaintext
158 lines
4.6 KiB
Plaintext
#!Nsis Installer Command Script
|
|
#
|
|
# The following external defines are recognized:
|
|
# ${VERSION} = YYYYMMDD
|
|
|
|
!include "MUI2.nsh"
|
|
!include "FileFunc.nsh"
|
|
|
|
!define MUI_ICON "lammps.ico"
|
|
!define MUI_UNICON "lammps.ico"
|
|
!define MUI_HEADERIMAGE
|
|
!define MUI_HEADERIMAGE_BITMAP "lammps-text-logo-wide.bmp"
|
|
!define MUI_HEADERIMAGE_RIGHT
|
|
|
|
Unicode true
|
|
XPStyle on
|
|
|
|
!include "LogicLib.nsh"
|
|
!addplugindir "envvar/Plugins/x86-unicode"
|
|
!include "x64.nsh"
|
|
|
|
RequestExecutionLevel user
|
|
|
|
!macro VerifyUserIsAdmin
|
|
UserInfo::GetAccountType
|
|
pop $0
|
|
${If} $0 != "admin"
|
|
messageBox mb_iconstop "Administrator rights required!"
|
|
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
|
quit
|
|
${EndIf}
|
|
!macroend
|
|
|
|
!define PACEPLUGIN "LAMMPS ML-PACE Plugin ${VERSION}"
|
|
OutFile "LAMMPS-ML-PACE-plugin-${VERSION}.exe"
|
|
|
|
Name "${PACEPLUGIN}"
|
|
InstallDir "$LOCALAPPDATA\${PACEPLUGIN}"
|
|
|
|
ShowInstDetails show
|
|
ShowUninstDetails show
|
|
SetCompressor zlib
|
|
|
|
!define MUI_ABORTWARNING
|
|
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
function .onInit
|
|
# Determine if LAMMPS was already installed and check whether it was in 32-bit
|
|
# or 64-bit. Then look up path to uninstaller and offer to uninstall or quit
|
|
SetRegView 32
|
|
ReadRegDWORD $0 HKCU "Software\LAMMPS-ML-PACE" "Bits"
|
|
SetRegView LastUsed
|
|
${If} $0 == "32"
|
|
SetRegView 32
|
|
${ElseIf} $0 == "64"
|
|
SetRegView 64
|
|
${Else}
|
|
SetRegView 64
|
|
${EndIf}
|
|
ClearErrors
|
|
ReadRegStr $R0 HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" "UninstallString"
|
|
SetRegView LastUsed
|
|
${If} ${Errors}
|
|
DetailPrint "LAMMPS ML-PACE plugin not (yet) installed"
|
|
${Else}
|
|
MessageBox MB_YESNO "LAMMPS ML-PACE plugin ($0 bit) is already installed. Uninstall existing version?" /SD IDYES IDNO Quit
|
|
Pop $R1
|
|
StrCmp $R1 2 Quit +1
|
|
Exec $R0
|
|
Quit:
|
|
Quit
|
|
${EndIf}
|
|
setShellVarContext all
|
|
functionEnd
|
|
|
|
Section "${PACEPLUGIN}" SecPaceplugin
|
|
SectionIn RO
|
|
# Write LAMMPS installation bitness marker. Always use 32-bit registry view
|
|
SetRegView 32
|
|
IntFmt $0 "0x%08X" 64
|
|
WriteRegDWORD HKCU "Software\LAMMPS-ML-PACE" "Bits" $0
|
|
|
|
# Switch to "native" registry view
|
|
SetRegView 64
|
|
SetShellVarContext current
|
|
|
|
SetOutPath "$INSTDIR"
|
|
File lammps.ico
|
|
File paceplugin.so
|
|
|
|
# Register Application and its uninstaller
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"DisplayName" "${PACEPLUGIN}"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"Publisher" "The LAMMPS and PACE Developers"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"URLInfoAbout" "lammps.org"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"DisplayIcon" "$INSTDIR\lammps.ico"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"DisplayVersion" "${VERSION}"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"InstallLocation" "$INSTDIR"
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
|
|
|
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
|
IntFmt $0 "0x%08X" $0
|
|
WriteRegDWORD HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE" \
|
|
"EstimatedSize" "$0"
|
|
|
|
# update path variables
|
|
EnVar::SetHKCU
|
|
# add to LAMMPS plugin search path
|
|
EnVar::AddValue "LAMMPS_PLUGIN_PATH" "$INSTDIR"
|
|
|
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
SectionEnd
|
|
|
|
function un.onInit
|
|
SetShellVarContext current
|
|
functionEnd
|
|
|
|
Section "Uninstall"
|
|
# remove LAMMPS bitness/installation indicator always in 32-bit registry view
|
|
SetRegView 32
|
|
DeleteRegKey HKCU "Software\LAMMPS-ML-PACE"
|
|
|
|
# unregister extension, and uninstall info
|
|
SetRegView 64
|
|
SetShellVarContext current
|
|
# unregister installation
|
|
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\LAMMPS-ML-PACE"
|
|
|
|
# update path variables
|
|
EnVar::SetHKCU
|
|
# remove entry from LAMMPS plugin search path
|
|
EnVar::DeleteValue "LAMMPS_PLUGIN_PATH" "$INSTDIR"
|
|
|
|
Delete /REBOOTOK "$INSTDIR\paceplugin.so"
|
|
Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
|
|
Delete /REBOOTOK "$INSTDIR\lammps.ico"
|
|
RMDir /REBOOTOK "$INSTDIR"
|
|
SectionEnd
|
|
|
|
# Local Variables:
|
|
# mode: sh
|
|
# End:
|