| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- ; CMake install script designed for a nmake build
- ;--------------------------------
- ; You must define these values
- !define VERSION "@CMake_VERSION@"
- !define PATCH "@CMake_VERSION_PATCH@"
- !define INST_DIR "@CMake_INSTALL_TOP@"
- ;--------------------------------
- ;Variables
- Var MUI_TEMP
- Var STARTMENU_FOLDER
- ;--------------------------------
- ;Include Modern UI
- !include "MUI.nsh"
- ;Default installation folder
- InstallDir "$PROGRAMFILES\CMake ${VERSION}"
- ;--------------------------------
- ; determine admin versus local install
- Function .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
- ;--------------------------------
- ;General
- ;Name and file
- Name "CMake ${VERSION}"
- OutFile "@PROJECT_BINARY_DIR@\cmake-${VERSION}.${PATCH}-win32.exe"
- ;--------------------------------
- ;Interface Settings
- !define MUI_HEADERIMAGE
- !define MUI_ABORTWARNING
-
- ;--------------------------------
- ; Define some macro setting for the gui
- !define MUI_HEADERIMAGE_BITMAP "@PROJECT_SOURCE_DIR@\Utilities\Release\@[email protected]"
- ;--------------------------------
- ;Pages
- !insertmacro MUI_PAGE_DIRECTORY
-
- ;Start Menu Folder Page Configuration
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Kitware\CMake ${VERSION}"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
- !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
-
- ;--------------------------------
- ;Languages
-
- !insertmacro MUI_LANGUAGE "English"
- ;--------------------------------
- ;Installer Sections
- Section "Dummy Section" SecDummy
- ;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}\bin"
- File /r "${INST_DIR}\doc"
- File /r "${INST_DIR}\share"
- @NSIS_EXTRA_COMMANDS@
- ;Store installation folder
- WriteRegStr SHCTX "Software\Kitware\CMake ${VERSION}" "" $INSTDIR
-
- ;Create uninstaller
- WriteUninstaller "$INSTDIR\Uninstall.exe"
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\cmake.lnk" "$INSTDIR\bin\CMakeSetup.exe"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-
- !insertmacro MUI_STARTMENU_WRITE_END
- SectionEnd
- ;--------------------------------
- ; 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"
- ;Remove directories we installed.
- ;Keep the list of directories here in sync with the File commands above.
- RMDir /r "$INSTDIR\bin"
- RMDir /r "$INSTDIR\doc"
- RMDir /r "$INSTDIR\share"
- ;Remove the uninstaller itself.
- Delete "$INSTDIR\Uninstall.exe"
- ;Remove the installation directory if it is empty.
- RMDir "$INSTDIR"
- ; Remove the registry entries.
- DeleteRegKey SHCTX "Software\Kitware\CMake ${VERSION}"
- !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
-
- Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
- Delete "$SMPROGRAMS\$MUI_TEMP\cmake.lnk"
-
- ;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:
- DeleteRegKey /ifempty SHCTX "Software\Kitware\CMake ${VERSION}"
- SectionEnd
|