mirror of
https://github.com/janet-lang/janet
synced 2025-07-03 10:32:53 +00:00
Fix installer.
This commit is contained in:
parent
b9daf41327
commit
0a54e1ed62
@ -13,9 +13,12 @@ VIFileVersion "${PRODUCT_VERSION}"
|
|||||||
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\Janet\${VERSION}"
|
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "Software\Janet\${VERSION}"
|
||||||
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME ""
|
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME ""
|
||||||
!define MULTIUSER_INSTALLMODE_INSTDIR "Janet-${VERSION}"
|
!define MULTIUSER_INSTALLMODE_INSTDIR "Janet-${VERSION}"
|
||||||
|
|
||||||
|
# Includes
|
||||||
!include "MultiUser.nsh"
|
!include "MultiUser.nsh"
|
||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
!include ".\tools\EnvVarUpdate.nsh"
|
!include ".\tools\EnvVarUpdate.nsh"
|
||||||
|
!include "LogicLib.nsh"
|
||||||
|
|
||||||
# Basics
|
# Basics
|
||||||
Name "Janet"
|
Name "Janet"
|
||||||
@ -27,6 +30,23 @@ OutFile "janet-v${VERSION}-windows-installer.exe"
|
|||||||
!define HELPURL "http://janet-lang.org"
|
!define HELPURL "http://janet-lang.org"
|
||||||
BrandingText "The Janet Programming Language"
|
BrandingText "The Janet Programming Language"
|
||||||
|
|
||||||
|
# Macros for setting registry values
|
||||||
|
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet-${VERSION}"
|
||||||
|
!macro WriteEnv key value
|
||||||
|
${If} $MultiUser.InstallMode == "AllUsers"
|
||||||
|
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "${key}" "${value}"
|
||||||
|
${Else}
|
||||||
|
WriteRegExpandStr HKCU "Environment" "${key}" "${value}"
|
||||||
|
${EndIf}
|
||||||
|
!macroend
|
||||||
|
!macro DelEnv key
|
||||||
|
${If} $MultiUser.InstallMode == "AllUsers"
|
||||||
|
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "${key}"
|
||||||
|
${Else}
|
||||||
|
DeleteRegValue HKCU "Environment" "${key}"
|
||||||
|
${EndIf}
|
||||||
|
!macroend
|
||||||
|
|
||||||
# MUI Configuration
|
# MUI Configuration
|
||||||
!define MUI_ICON "assets\icon.ico"
|
!define MUI_ICON "assets\icon.ico"
|
||||||
!define MUI_UNICON "assets\icon.ico"
|
!define MUI_UNICON "assets\icon.ico"
|
||||||
@ -78,7 +98,7 @@ section "Janet" BfWSection
|
|||||||
file /oname=C\janet.c dist\janet.c
|
file /oname=C\janet.c dist\janet.c
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
file /oname=docs/docs.html dist/doc.html
|
file /oname=docs\docs.html dist\doc.html
|
||||||
|
|
||||||
# Other
|
# Other
|
||||||
file README.md
|
file README.md
|
||||||
@ -90,14 +110,10 @@ section "Janet" BfWSection
|
|||||||
# Start Menu
|
# Start Menu
|
||||||
createShortCut "$SMPROGRAMS\Janet.lnk" "$INSTDIR\bin\janet.exe" "" "$INSTDIR\logo.ico"
|
createShortCut "$SMPROGRAMS\Janet.lnk" "$INSTDIR\bin\janet.exe" "" "$INSTDIR\logo.ico"
|
||||||
|
|
||||||
# HKLM (all users) vs HKCU (current user)
|
# Set up Environment variables
|
||||||
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_PATH "$INSTDIR\Library"
|
!insertmacro WriteEnv JANET_PATH "$INSTDIR\Library"
|
||||||
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_HEADERPATH "$INSTDIR\C"
|
!insertmacro WriteEnv JANET_HEADERPATH "$INSTDIR\C"
|
||||||
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_BINPATH "$INSTDIR\bin"
|
!insertmacro WriteEnv JANET_BINPATH "$INSTDIR\bin"
|
||||||
|
|
||||||
WriteRegExpandStr HKCU "Environment" JANET_PATH "$INSTDIR\Library"
|
|
||||||
WriteRegExpandStr HKCU "Environment" JANET_HEADERPATH "$INSTDIR\C"
|
|
||||||
WriteRegExpandStr HKCU "Environment" JANET_BINPATH "$INSTDIR\bin"
|
|
||||||
|
|
||||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
||||||
|
|
||||||
@ -106,23 +122,23 @@ section "Janet" BfWSection
|
|||||||
${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" ; Append
|
${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" ; Append
|
||||||
|
|
||||||
# Registry information for add/remove programs
|
# Registry information for add/remove programs
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "DisplayName" "Janet"
|
WriteRegStr SHCTX "${UNINST_KEY}" "DisplayName" "Janet"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "UninstallString" "$INSTDIR\uninstall.exe"
|
WriteRegStr SHCTX "${UNINST_KEY}" "InstallLocation" "$INSTDIR"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "QuietUninstallString" "$INSTDIR\uninstall.exe /S"
|
WriteRegStr SHCTX "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\logo.ico"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "InstallLocation" "$INSTDIR"
|
WriteRegStr SHCTX "${UNINST_KEY}" "Publisher" "Janet-Lang.org"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "DisplayIcon" "$INSTDIR\logo.ico"
|
WriteRegStr SHCTX "${UNINST_KEY}" "HelpLink" "${HELPURL}"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "Publisher" "Janet-Lang.org"
|
WriteRegStr SHCTX "${UNINST_KEY}" "URLUpdateInfo" "${HELPURL}"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "HelpLink" "${HELPURL}"
|
WriteRegStr SHCTX "${UNINST_KEY}" "URLInfoAbout" "${HELPURL}"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "URLUpdateInfo" "${HELPURL}"
|
WriteRegStr SHCTX "${UNINST_KEY}" "DisplayVersion" "0.6.0"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "URLInfoAbout" "${HELPURL}"
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "VersionMajor" 0
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "DisplayVersion" "0.6.0"
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "VersionMinor" 6
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "VersionMajor" 0
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "NoModify" 1
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "VersionMinor" 6
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "NoRepair" 1
|
||||||
# There is no option for modifying or repairing the install
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "EstimatedSize" 1000
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "NoModify" 1
|
# Add uninstall
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "NoRepair" 1
|
WriteRegStr SHCTX "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\" /$MultiUser.InstallMode"
|
||||||
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
WriteRegStr SHCTX "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /$MultiUser.InstallMode /S"
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet" "EstimatedSize" 1000
|
|
||||||
sectionEnd
|
sectionEnd
|
||||||
|
|
||||||
# Uninstaller
|
# Uninstaller
|
||||||
@ -146,14 +162,9 @@ section "uninstall"
|
|||||||
rmdir /r "$INSTDIR\docs"
|
rmdir /r "$INSTDIR\docs"
|
||||||
|
|
||||||
# Remove env vars
|
# Remove env vars
|
||||||
|
!insertmacro DelEnv JANET_PATH
|
||||||
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_PATH
|
!insertmacro DelEnv JANET_HEADERPATH
|
||||||
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_HEADERPATH
|
!insertmacro DelEnv JANET_BINPATH
|
||||||
DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" JANET_BINPATH
|
|
||||||
|
|
||||||
DeleteRegValue HKCU "Environment" JANET_PATH
|
|
||||||
DeleteRegValue HKCU "Environment" JANET_HEADERPATH
|
|
||||||
DeleteRegValue HKCU "Environment" JANET_BINPATH
|
|
||||||
|
|
||||||
# Unset PATH
|
# Unset PATH
|
||||||
${un.EnvVarUpdate} $0 "PATH" "R" "HKCU" "$INSTDIR\bin" ; Remove
|
${un.EnvVarUpdate} $0 "PATH" "R" "HKCU" "$INSTDIR\bin" ; Remove
|
||||||
@ -166,5 +177,5 @@ section "uninstall"
|
|||||||
delete "$INSTDIR\uninstall.exe"
|
delete "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
# Remove uninstaller information from the registry
|
# Remove uninstaller information from the registry
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Janet"
|
DeleteRegKey SHCTX "${UNINST_KEY}"
|
||||||
sectionEnd
|
sectionEnd
|
||||||
|
Loading…
x
Reference in New Issue
Block a user