mirror of
https://github.com/overte-org/overte.git
synced 2025-04-15 06:08:22 +02:00
remove CMake templated code for path changes
This commit is contained in:
parent
6934594bb9
commit
f393c5eeda
1 changed files with 0 additions and 279 deletions
|
@ -199,277 +199,10 @@ Var AR_RegFlags
|
||||||
!define MUI_HEADERIMAGE_UNBITMAP "@UNINSTALLER_HEADER_IMAGE@"
|
!define MUI_HEADERIMAGE_UNBITMAP "@UNINSTALLER_HEADER_IMAGE@"
|
||||||
!define MUI_ABORTWARNING
|
!define MUI_ABORTWARNING
|
||||||
|
|
||||||
;--------------------------------
|
|
||||||
; path functions
|
|
||||||
|
|
||||||
!verbose 3
|
|
||||||
!include "WinMessages.NSH"
|
|
||||||
!verbose 4
|
|
||||||
|
|
||||||
;----------------------------------------
|
|
||||||
; based upon a script of "Written by KiCHiK 2003-01-18 05:57:02"
|
|
||||||
;----------------------------------------
|
|
||||||
!verbose 3
|
|
||||||
!include "WinMessages.NSH"
|
|
||||||
!verbose 4
|
|
||||||
;====================================================
|
|
||||||
; get_NT_environment
|
|
||||||
; Returns: the selected environment
|
|
||||||
; Output : head of the stack
|
|
||||||
;====================================================
|
|
||||||
!macro select_NT_profile UN
|
|
||||||
Function ${UN}select_NT_profile
|
|
||||||
StrCmp $ADD_TO_PATH_ALL_USERS "1" 0 environment_single
|
|
||||||
DetailPrint "Selected environment for all users"
|
|
||||||
Push "all"
|
|
||||||
Return
|
|
||||||
environment_single:
|
|
||||||
DetailPrint "Selected environment for current user only."
|
|
||||||
Push "current"
|
|
||||||
Return
|
|
||||||
FunctionEnd
|
|
||||||
!macroend
|
|
||||||
!insertmacro select_NT_profile ""
|
|
||||||
!insertmacro select_NT_profile "un."
|
|
||||||
;----------------------------------------------------
|
|
||||||
!define NT_current_env 'HKCU "Environment"'
|
|
||||||
!define NT_all_env 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
|
||||||
|
|
||||||
!ifndef WriteEnvStr_RegKey
|
|
||||||
!ifdef ALL_USERS
|
|
||||||
!define WriteEnvStr_RegKey \
|
|
||||||
'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
|
|
||||||
!else
|
|
||||||
!define WriteEnvStr_RegKey 'HKCU "Environment"'
|
|
||||||
!endif
|
|
||||||
!endif
|
|
||||||
|
|
||||||
; AddToPath - Adds the given dir to the search path.
|
|
||||||
; Input - head of the stack
|
|
||||||
; Note - Win9x systems requires reboot
|
|
||||||
|
|
||||||
Function AddToPath
|
|
||||||
Exch $0
|
|
||||||
Push $1
|
|
||||||
Push $2
|
|
||||||
Push $3
|
|
||||||
|
|
||||||
# don't add if the path doesn't exist
|
|
||||||
IfFileExists "$0\*.*" "" AddToPath_done
|
|
||||||
|
|
||||||
ReadEnvStr $1 PATH
|
|
||||||
; if the path is too long for a NSIS variable NSIS will return a 0
|
|
||||||
; length string. If we find that, then warn and skip any path
|
|
||||||
; modification as it will trash the existing path.
|
|
||||||
StrLen $2 $1
|
|
||||||
IntCmp $2 0 CheckPathLength_ShowPathWarning CheckPathLength_Done CheckPathLength_Done
|
|
||||||
CheckPathLength_ShowPathWarning:
|
|
||||||
Messagebox MB_OK|MB_ICONEXCLAMATION "Warning! PATH too long installer unable to modify PATH!"
|
|
||||||
Goto AddToPath_done
|
|
||||||
CheckPathLength_Done:
|
|
||||||
Push "$1;"
|
|
||||||
Push "$0;"
|
|
||||||
Call StrStr
|
|
||||||
Pop $2
|
|
||||||
StrCmp $2 "" "" AddToPath_done
|
|
||||||
Push "$1;"
|
|
||||||
Push "$0\;"
|
|
||||||
Call StrStr
|
|
||||||
Pop $2
|
|
||||||
StrCmp $2 "" "" AddToPath_done
|
|
||||||
GetFullPathName /SHORT $3 $0
|
|
||||||
Push "$1;"
|
|
||||||
Push "$3;"
|
|
||||||
Call StrStr
|
|
||||||
Pop $2
|
|
||||||
StrCmp $2 "" "" AddToPath_done
|
|
||||||
Push "$1;"
|
|
||||||
Push "$3\;"
|
|
||||||
Call StrStr
|
|
||||||
Pop $2
|
|
||||||
StrCmp $2 "" "" AddToPath_done
|
|
||||||
|
|
||||||
Call IsNT
|
|
||||||
Pop $1
|
|
||||||
StrCmp $1 1 AddToPath_NT
|
|
||||||
; Not on NT
|
|
||||||
StrCpy $1 $WINDIR 2
|
|
||||||
FileOpen $1 "$1\autoexec.bat" a
|
|
||||||
FileSeek $1 -1 END
|
|
||||||
FileReadByte $1 $2
|
|
||||||
IntCmp $2 26 0 +2 +2 # DOS EOF
|
|
||||||
FileSeek $1 -1 END # write over EOF
|
|
||||||
FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
|
|
||||||
FileClose $1
|
|
||||||
SetRebootFlag true
|
|
||||||
Goto AddToPath_done
|
|
||||||
|
|
||||||
AddToPath_NT:
|
|
||||||
StrCmp $ADD_TO_PATH_ALL_USERS "1" ReadAllKey
|
|
||||||
ReadRegStr $1 ${NT_current_env} "PATH"
|
|
||||||
Goto DoTrim
|
|
||||||
ReadAllKey:
|
|
||||||
ReadRegStr $1 ${NT_all_env} "PATH"
|
|
||||||
DoTrim:
|
|
||||||
StrCmp $1 "" AddToPath_NTdoIt
|
|
||||||
Push $1
|
|
||||||
Call Trim
|
|
||||||
Pop $1
|
|
||||||
StrCpy $0 "$1;$0"
|
|
||||||
AddToPath_NTdoIt:
|
|
||||||
StrCmp $ADD_TO_PATH_ALL_USERS "1" WriteAllKey
|
|
||||||
WriteRegExpandStr ${NT_current_env} "PATH" $0
|
|
||||||
Goto DoSend
|
|
||||||
WriteAllKey:
|
|
||||||
WriteRegExpandStr ${NT_all_env} "PATH" $0
|
|
||||||
DoSend:
|
|
||||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
|
||||||
|
|
||||||
AddToPath_done:
|
|
||||||
Pop $3
|
|
||||||
Pop $2
|
|
||||||
Pop $1
|
|
||||||
Pop $0
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
|
|
||||||
; RemoveFromPath - Remove a given dir from the path
|
|
||||||
; Input: head of the stack
|
|
||||||
|
|
||||||
Function un.RemoveFromPath
|
|
||||||
Exch $0
|
|
||||||
Push $1
|
|
||||||
Push $2
|
|
||||||
Push $3
|
|
||||||
Push $4
|
|
||||||
Push $5
|
|
||||||
Push $6
|
|
||||||
|
|
||||||
IntFmt $6 "%c" 26 # DOS EOF
|
|
||||||
|
|
||||||
Call un.IsNT
|
|
||||||
Pop $1
|
|
||||||
StrCmp $1 1 unRemoveFromPath_NT
|
|
||||||
; Not on NT
|
|
||||||
StrCpy $1 $WINDIR 2
|
|
||||||
FileOpen $1 "$1\autoexec.bat" r
|
|
||||||
GetTempFileName $4
|
|
||||||
FileOpen $2 $4 w
|
|
||||||
GetFullPathName /SHORT $0 $0
|
|
||||||
StrCpy $0 "SET PATH=%PATH%;$0"
|
|
||||||
Goto unRemoveFromPath_dosLoop
|
|
||||||
|
|
||||||
unRemoveFromPath_dosLoop:
|
|
||||||
FileRead $1 $3
|
|
||||||
StrCpy $5 $3 1 -1 # read last char
|
|
||||||
StrCmp $5 $6 0 +2 # if DOS EOF
|
|
||||||
StrCpy $3 $3 -1 # remove DOS EOF so we can compare
|
|
||||||
StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
|
|
||||||
StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
|
|
||||||
StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
|
|
||||||
StrCmp $3 "" unRemoveFromPath_dosLoopEnd
|
|
||||||
FileWrite $2 $3
|
|
||||||
Goto unRemoveFromPath_dosLoop
|
|
||||||
unRemoveFromPath_dosLoopRemoveLine:
|
|
||||||
SetRebootFlag true
|
|
||||||
Goto unRemoveFromPath_dosLoop
|
|
||||||
|
|
||||||
unRemoveFromPath_dosLoopEnd:
|
|
||||||
FileClose $2
|
|
||||||
FileClose $1
|
|
||||||
StrCpy $1 $WINDIR 2
|
|
||||||
Delete "$1\autoexec.bat"
|
|
||||||
CopyFiles /SILENT $4 "$1\autoexec.bat"
|
|
||||||
Delete $4
|
|
||||||
Goto unRemoveFromPath_done
|
|
||||||
|
|
||||||
unRemoveFromPath_NT:
|
|
||||||
StrCmp $ADD_TO_PATH_ALL_USERS "1" unReadAllKey
|
|
||||||
ReadRegStr $1 ${NT_current_env} "PATH"
|
|
||||||
Goto unDoTrim
|
|
||||||
unReadAllKey:
|
|
||||||
ReadRegStr $1 ${NT_all_env} "PATH"
|
|
||||||
unDoTrim:
|
|
||||||
StrCpy $5 $1 1 -1 # copy last char
|
|
||||||
StrCmp $5 ";" +2 # if last char != ;
|
|
||||||
StrCpy $1 "$1;" # append ;
|
|
||||||
Push $1
|
|
||||||
Push "$0;"
|
|
||||||
Call un.StrStr ; Find `$0;` in $1
|
|
||||||
Pop $2 ; pos of our dir
|
|
||||||
StrCmp $2 "" unRemoveFromPath_done
|
|
||||||
; else, it is in path
|
|
||||||
# $0 - path to add
|
|
||||||
# $1 - path var
|
|
||||||
StrLen $3 "$0;"
|
|
||||||
StrLen $4 $2
|
|
||||||
StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
|
|
||||||
StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
|
|
||||||
StrCpy $3 $5$6
|
|
||||||
|
|
||||||
StrCpy $5 $3 1 -1 # copy last char
|
|
||||||
StrCmp $5 ";" 0 +2 # if last char == ;
|
|
||||||
StrCpy $3 $3 -1 # remove last char
|
|
||||||
|
|
||||||
StrCmp $ADD_TO_PATH_ALL_USERS "1" unWriteAllKey
|
|
||||||
WriteRegExpandStr ${NT_current_env} "PATH" $3
|
|
||||||
Goto unDoSend
|
|
||||||
unWriteAllKey:
|
|
||||||
WriteRegExpandStr ${NT_all_env} "PATH" $3
|
|
||||||
unDoSend:
|
|
||||||
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
|
|
||||||
|
|
||||||
unRemoveFromPath_done:
|
|
||||||
Pop $6
|
|
||||||
Pop $5
|
|
||||||
Pop $4
|
|
||||||
Pop $3
|
|
||||||
Pop $2
|
|
||||||
Pop $1
|
|
||||||
Pop $0
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
; Uninstall sutff
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
###########################################
|
###########################################
|
||||||
# Utility Functions #
|
# Utility Functions #
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
;====================================================
|
|
||||||
; IsNT - Returns 1 if the current system is NT, 0
|
|
||||||
; otherwise.
|
|
||||||
; Output: head of the stack
|
|
||||||
;====================================================
|
|
||||||
; IsNT
|
|
||||||
; no input
|
|
||||||
; output, top of the stack = 1 if NT or 0 if not
|
|
||||||
;
|
|
||||||
; Usage:
|
|
||||||
; Call IsNT
|
|
||||||
; Pop $R0
|
|
||||||
; ($R0 at this point is 1 or 0)
|
|
||||||
|
|
||||||
!macro IsNT un
|
|
||||||
Function ${un}IsNT
|
|
||||||
Push $0
|
|
||||||
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
|
|
||||||
StrCmp $0 "" 0 IsNT_yes
|
|
||||||
; we are not NT.
|
|
||||||
Pop $0
|
|
||||||
Push 0
|
|
||||||
Return
|
|
||||||
|
|
||||||
IsNT_yes:
|
|
||||||
; NT!!!
|
|
||||||
Pop $0
|
|
||||||
Push 1
|
|
||||||
FunctionEnd
|
|
||||||
!macroend
|
|
||||||
!insertmacro IsNT ""
|
|
||||||
!insertmacro IsNT "un."
|
|
||||||
|
|
||||||
; StrStr
|
; StrStr
|
||||||
; input, top of stack = string to search for
|
; input, top of stack = string to search for
|
||||||
; top of stack-1 = string to search in
|
; top of stack-1 = string to search in
|
||||||
|
@ -802,14 +535,6 @@ Section "-Core installation"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "-Add to path"
|
|
||||||
Push $INSTDIR\bin
|
|
||||||
StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 doNotAddToPath
|
|
||||||
StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
|
|
||||||
Call AddToPath
|
|
||||||
doNotAddToPath:
|
|
||||||
SectionEnd
|
|
||||||
|
|
||||||
; Make sure nsDialogs is included before we use it
|
; Make sure nsDialogs is included before we use it
|
||||||
!include "nsdialogs.nsh"
|
!include "nsdialogs.nsh"
|
||||||
|
|
||||||
|
@ -1222,10 +947,6 @@ Section "Uninstall"
|
||||||
|
|
||||||
DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
|
DeleteRegKey /ifempty SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
|
||||||
|
|
||||||
Push $INSTDIR\bin
|
|
||||||
StrCmp $DO_NOT_ADD_TO_PATH_ "1" doNotRemoveFromPath 0
|
|
||||||
Call un.RemoveFromPath
|
|
||||||
doNotRemoveFromPath:
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue