| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633 |
- ; CPack install script designed for a nmake build
- ;--------------------------------
- ; You must define these values
- !define VERSION "@CPACK_PACKAGE_VERSION@"
- !define PATCH "@CPACK_PACKAGE_VERSION_PATCH@"
- !define INST_DIR "@CPACK_TEMPORARY_DIRECTORY@"
- ;--------------------------------
- ;Variables
- Var MUI_TEMP
- Var STARTMENU_FOLDER
- Var SV_ALLUSERS
- Var START_MENU
- Var DO_NOT_ADD_TO_PATH
- Var ADD_TO_PATH_ALL_USERS
- Var ADD_TO_PATH_CURRENT_USER
- ;--------------------------------
- ;Include Modern UI
- !include "MUI.nsh"
- ;Default installation folder
- InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
- ;--------------------------------
- ;General
- ;Name and file
- Name "@CPACK_PACKAGE_INSTALL_DIRECTORY@"
- OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
- ;Set compression
- SetCompressor @CPACK_NSIS_COMPRESSOR@
- ;--------------------------------
- ; determine admin versus local install
- ; Is install for "AllUsers" or "JustMe"?
- ; Default to "JustMe" - set to "AllUsers" if admin or on Win9x
- ; This function is used for the very first "custom page" of the installer.
- ; This custom page does not show up visibly, but it executes prior to the
- ; first visible page and sets up $INSTDIR properly...
- ; Choose different default installation folder based on SV_ALLUSERS...
- ; "Program Files" for AllUsers, "My Documents" for JustMe...
- Function .onInit
- StrCpy $SV_ALLUSERS "JustMe"
- StrCpy $INSTDIR "$DOCUMENTS\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
- ClearErrors
- UserInfo::GetName
- IfErrors noLM
- Pop $0
- UserInfo::GetAccountType
- Pop $1
- StrCmp $1 "Admin" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Admin group'
- StrCpy $SV_ALLUSERS "AllUsers"
- Goto done
- StrCmp $1 "Power" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Power Users group'
- StrCpy $SV_ALLUSERS "AllUsers"
- Goto done
-
- noLM:
- StrCpy $SV_ALLUSERS "AllUsers"
- ;Get installation folder from registry if available
- done:
- StrCmp $SV_ALLUSERS "AllUsers" 0 +2
- StrCpy $INSTDIR "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
- StrCmp "@CPACK_NSIS_MODIFY_PATH@" "ON" 0 noOptionsPage
- !insertmacro MUI_INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
- noOptionsPage:
- FunctionEnd
- ;--------------------------------
- ;Interface Settings
- !define MUI_HEADERIMAGE
- !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"'
- ;====================================================
- ; 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
- Call IsNT
- Pop $1
- StrCmp $1 1 AddToPath_NT
- ; Not on NT
- StrCpy $1 $WINDIR 2
- FileOpen $1 "$1\autoexec.bat" a
- FileSeek $1 0 END
- GetFullPathName /SHORT $0 $0
- FileWrite $1 "$\r$\n\
- $\r$\n\
- SET PATH=%PATH%;$0$\r$\n\
- $\r$\n\
- "
- FileClose $1
- Goto AddToPath_done
-
- AddToPath_NT:
- Push $4
- Call select_NT_profile
- Pop $4
-
- AddToPath_NT_selection_done:
- StrCmp $4 "current" read_path_NT_current
- ReadRegStr $1 ${NT_all_env} "PATH"
- Goto read_path_NT_resume
- read_path_NT_current:
- ReadRegStr $1 ${NT_current_env} "PATH"
- read_path_NT_resume:
- StrCmp $1 "" AddToPath_NoCurrentPath
- StrCpy $2 "$0;$1"
- Goto AddToPath_NTdoIt
- AddToPath_NoCurrentPath:
- DetailPrint "No current path, so just use $0"
- StrCpy $2 $0
- Goto AddToPath_NTdoIt
- AddToPath_NTdoIt:
- StrCmp $4 "current" write_path_NT_current
- ClearErrors
- WriteRegExpandStr ${NT_all_env} "PATH" $2
- IfErrors 0 write_path_NT_resume
- MessageBox MB_YESNO|MB_ICONQUESTION "The path could not be set for all users$\n\
- $\n\
- Should I try for the current user?" \
- IDNO write_path_NT_failed
- ; change selection
- StrCpy $4 "current"
- Goto AddToPath_NT_selection_done
- write_path_NT_current:
- ClearErrors
- WriteRegExpandStr ${NT_current_env} "PATH" $2
- IfErrors 0 write_path_NT_resume
- MessageBox MB_OK|MB_ICONINFORMATION "The path could not be set for the current user."
- Goto write_path_NT_failed
- write_path_NT_resume:
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
- DetailPrint "Added path for user ($4), $0"
- DetailPrint "New path is: $2"
- write_path_NT_failed:
-
- Pop $4
- AddToPath_done:
- 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
-
- 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"
- SetRebootFlag true
- Goto unRemoveFromPath_dosLoop
-
- unRemoveFromPath_dosLoop:
- FileRead $1 $3
- StrCmp $3 "$0$$\r$\n\
- $\r$\n\
- " unRemoveFromPath_dosLoop
- StrCmp $3 "$0$\r$\n\
- " unRemoveFromPath_dosLoop
- StrCmp $3 "$0" unRemoveFromPath_dosLoop
- StrCmp $3 "" unRemoveFromPath_dosLoopEnd
- FileWrite $2 $3
- 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:
- StrLen $2 $0
- Call un.select_NT_profile
- Pop $4
-
- StrCmp $4 "current" un_read_path_NT_current
- ReadRegStr $1 ${NT_all_env} "PATH"
- Goto un_read_path_NT_resume
- un_read_path_NT_current:
- ReadRegStr $1 ${NT_current_env} "PATH"
- un_read_path_NT_resume:
-
- StrCpy $8 $0
- Push $1
- Push $0
- Call un.StrStr ; Find $0 in $1
- Pop $0 ; pos of our dir
- IntCmp $0 -1 unRemoveFromPath_done
- ; else, it is in path
- StrLen $5 $1 ; Get the length of the original path
- StrLen $6 $0 ; get the length of path without the first path
- IntOp $5 $5 - $6
- IntOp $5 $5 - 1
- IntCmp $5 -1 unRemoveFromPath_nothingBefore
- StrCpy $3 $1 $5 ; $3 now has the part of the path before our dir
- Goto unRemoveFromPath_AfterBefore
- unRemoveFromPath_nothingBefore:
- StrCpy $3 ""
- unRemoveFromPath_AfterBefore:
- StrCpy $7 $0 "" $2 ; $3 now has the part of the path after our dir
- StrCpy $3 "$3$7"
- ; $3 now holds path, but there may be some stray semicolon at
- ; beginning. Let's remove it
- StrCpy $7 $3 1
- StrCmp $7 ";" 0 unRemoveFromPath_NoTrailingSemiColon
- StrCpy $3 $3 "" 1
- unRemoveFromPath_NoTrailingSemiColon:
-
- StrCmp $4 "current" un_write_path_NT_current
- WriteRegExpandStr ${NT_all_env} "PATH" $3
- Goto un_write_path_NT_resume
- un_write_path_NT_current:
- WriteRegExpandStr ${NT_current_env} "PATH" $3
- un_write_path_NT_resume:
- SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
- DetailPrint "Removed $8 from the path"
- DetailPrint "New path is: $3"
- unRemoveFromPath_done:
- Pop $4
- Pop $3
- Pop $2
- Pop $1
- Pop $0
- FunctionEnd
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Uninstall sutff
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ###########################################
- # 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
- ; input, top of stack = string to search for
- ; top of stack-1 = string to search in
- ; output, top of stack (replaces with the portion of the string remaining)
- ; modifies no other variables.
- ;
- ; Usage:
- ; Push "this is a long ass string"
- ; Push "ass"
- ; Call StrStr
- ; Pop $R0
- ; ($R0 at this point is "ass string")
-
- !macro StrStr un
- Function ${un}StrStr
- Exch $R1 ; st=haystack,old$R1, $R1=needle
- Exch ; st=old$R1,haystack
- Exch $R2 ; st=old$R1,old$R2, $R2=haystack
- Push $R3
- Push $R4
- Push $R5
- StrLen $R3 $R1
- StrCpy $R4 0
- ; $R1=needle
- ; $R2=haystack
- ; $R3=len(needle)
- ; $R4=cnt
- ; $R5=tmp
- loop:
- StrCpy $R5 $R2 $R3 $R4
- StrCmp $R5 $R1 done
- StrCmp $R5 "" done
- IntOp $R4 $R4 + 1
- Goto loop
- done:
- StrCpy $R1 $R2 "" $R4
- Pop $R5
- Pop $R4
- Pop $R3
- Pop $R2
- Exch $R1
- FunctionEnd
- !macroend
- !insertmacro StrStr ""
- !insertmacro StrStr "un."
- Function ConditionalAddToRegisty
- Pop $0
- Pop $1
- StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
- WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" \
- "$1" "$0"
- ;MessageBox MB_OK "Set Registry: '$1' to '$0'"
- DetailPrint "Set install registry entry: '$1' to '$0'"
- ConditionalAddToRegisty_EmptyString:
- FunctionEnd
- ;--------------------------------
- ; Define some macro setting for the gui
- !define CPACK_PACKAGE_ICON@CPACK_PACKAGE_ICON@
- !ifndef CPACK_PACKAGE_ICON
- !define MUI_HEADERIMAGE_BITMAP "@CPACK_PACKAGE_ICON@"
- !endif
- ;--------------------------------
- ;Pages
- !insertmacro MUI_PAGE_WELCOME
- !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
- Page custom InstallOptionsPage
- !insertmacro MUI_PAGE_DIRECTORY
-
- ;Start Menu Folder Page Configuration
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
- !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_PAGE_FINISH
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
-
- ;--------------------------------
- ;Languages
-
- !insertmacro MUI_LANGUAGE "English"
- ;--------------------------------
- ;Reserve Files
- ;These files should be inserted before other files in the data block
- ;Keep these lines before any File command
- ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
- ReserveFile "NSIS.InstallOptions.ini"
- !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
- ;--------------------------------
- ;Installer Sections
- Section "Add to path"
- Push $INSTDIR\bin
- ;Read a value from an InstallOptions INI file
- !insertmacro MUI_INSTALLOPTIONS_READ $DO_NOT_ADD_TO_PATH "NSIS.InstallOptions.ini" "Field 2" "State"
- !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_ALL_USERS "NSIS.InstallOptions.ini" "Field 3" "State"
- !insertmacro MUI_INSTALLOPTIONS_READ $ADD_TO_PATH_CURRENT_USER "NSIS.InstallOptions.ini" "Field 4" "State"
- StrCmp $DO_NOT_ADD_TO_PATH "1" doNotAddToPath 0
- Call AddToPath
- doNotAddToPath:
- SectionEnd
- Section "Installer Section" InstSection
- ;Use the entire tree produced by the INSTALL target. Keep the
- ;list of directories here in sync with the RMDir commands below.
- SetOutPath "$INSTDIR"
- File /r "${INST_DIR}\*.*"
- ;Store installation folder
- WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
- Push "DisplayName"
- Push "@CPACK_NSIS_DISPLAY_NAME@"
- Call ConditionalAddToRegisty
- Push "DisplayVersion"
- Push "@CPACK_PACKAGE_VERSION@"
- Call ConditionalAddToRegisty
- Push "Publisher"
- Push "@CPACK_PACKAGE_VENDOR@"
- Call ConditionalAddToRegisty
- Push "UninstallString"
- Push "$INSTDIR\Uninstall.exe"
- Call ConditionalAddToRegisty
- ; Optional registration
- Push "DisplayIcon"
- Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
- Call ConditionalAddToRegisty
- Push "HelpLink"
- Push "@CPACK_NSIS_HELP_LINK@"
- Call ConditionalAddToRegisty
- Push "URLInfoAbout"
- Push "@CPACK_NSIS_URL_INFO_ABOUT@"
- Call ConditionalAddToRegisty
- Push "Contact"
- Push "@CPACK_NSIS_CONTACT@"
- Call ConditionalAddToRegisty
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
- @CPACK_NSIS_CREATE_ICONS@
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
- ; Write special uninstall registry entries
- Push "StartMenu"
- Push "$STARTMENU_FOLDER"
- Call ConditionalAddToRegisty
- Push "DoNotAddToPath"
- Push "$DO_NOT_ADD_TO_PATH"
- Call ConditionalAddToRegisty
- Push "AddToPathAllUsers"
- Push "$ADD_TO_PATH_ALL_USERS"
- Call ConditionalAddToRegisty
- Push "AddToPathCurrentUser"
- Push "$ADD_TO_PATH_CURRENT_USER"
- Call ConditionalAddToRegisty
- @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
-
- !insertmacro MUI_STARTMENU_WRITE_END
- SectionEnd
- ;--------------------------------
- ; Create custom pages
- Function InstallOptionsPage
- !insertmacro MUI_HEADER_TEXT "Install Options" "Chose options for installing @CPACK_PACKAGE_INSTALL_DIRECTORY@"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
- FunctionEnd
- ;--------------------------------
- ; determine admin versus local install
- Function un.onInit
- ClearErrors
- UserInfo::GetName
- IfErrors noLM
- Pop $0
- UserInfo::GetAccountType
- Pop $1
- StrCmp $1 "Admin" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Admin group'
- Goto done
- StrCmp $1 "Power" 0 +3
- SetShellVarContext all
- ;MessageBox MB_OK 'User "$0" is in the Power Users group'
- Goto done
-
- noLM:
- ;Get installation folder from registry if available
- done:
- FunctionEnd
- ;--------------------------------
- ;Uninstaller Section
- Section "Uninstall"
- ReadRegStr $START_MENU SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "StartMenu"
- ;MessageBox MB_OK "Start menu is in: $START_MENU"
- ReadRegStr $DO_NOT_ADD_TO_PATH SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "DoNotAddToPath"
- ReadRegStr $ADD_TO_PATH_ALL_USERS SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathAllUsers"
- ReadRegStr $ADD_TO_PATH_CURRENT_USER SHCTX \
- "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@" "AddToPathCurrentUser"
- ;MessageBox MB_OK "Add to path: $DO_NOT_ADD_TO_PATH all users: $ADD_TO_PATH_ALL_USERS"
- @CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
- ;Remove files we installed.
- ;Keep the list of directories here in sync with the File commands above.
- @CPACK_NSIS_DELETE_FILES@
- @CPACK_NSIS_DELETE_DIRECTORIES@
- ;Remove the uninstaller itself.
- Delete "$INSTDIR\Uninstall.exe"
- DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
- ;Remove the installation directory if it is empty.
- RMDir "$INSTDIR"
- ; Remove the registry entries.
- DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
- !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
-
- Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
- @CPACK_NSIS_DELETE_ICONS@
-
- ;Delete empty start menu parent diretories
- StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
- startMenuDeleteLoop:
- ClearErrors
- RMDir $MUI_TEMP
- GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
- IfErrors startMenuDeleteLoopDone
-
- StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
- startMenuDeleteLoopDone:
- ; If the user changed the shortcut, then untinstall may not work. This should
- ; try to fix it.
- StrCpy $MUI_TEMP "$START_MENU"
- Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
- @CPACK_NSIS_DELETE_ICONS@
-
- ;Delete empty start menu parent diretories
- StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
-
- secondStartMenuDeleteLoop:
- ClearErrors
- RMDir $MUI_TEMP
- GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
-
- IfErrors secondStartMenuDeleteLoopDone
-
- StrCmp "$MUI_TEMP" "$SMPROGRAMS" secondStartMenuDeleteLoopDone secondStartMenuDeleteLoop
- secondStartMenuDeleteLoopDone:
- 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
|