[6] | 1 | ;NSIS Modern User Interface
|
---|
| 2 | ;HeuristicLab Installation Script
|
---|
| 3 | ;Written by Stefan Wagner
|
---|
| 4 |
|
---|
| 5 | ;--------------------------------
|
---|
| 6 | ;Global
|
---|
| 7 |
|
---|
| 8 | !define PRODUCT "HeuristicLab"
|
---|
| 9 | !define VERSION "3.0"
|
---|
| 10 | !define CONFIGURATION "Release"
|
---|
| 11 | !define ALL_USERS
|
---|
| 12 |
|
---|
| 13 | ;--------------------------------
|
---|
| 14 | ;Include Modern UI
|
---|
| 15 |
|
---|
| 16 | !include "MUI2.nsh"
|
---|
| 17 |
|
---|
| 18 | ;--------------------------------
|
---|
| 19 | ;General
|
---|
| 20 |
|
---|
| 21 | ;Name and file
|
---|
| 22 | Name "${PRODUCT} ${VERSION}"
|
---|
| 23 | OutFile "${PRODUCT} ${VERSION} Setup.exe"
|
---|
| 24 |
|
---|
| 25 | ;Default installation folder
|
---|
| 26 | InstallDir "$PROGRAMFILES\${PRODUCT} ${VERSION}"
|
---|
| 27 |
|
---|
| 28 | ;Get installation folder from registry if available
|
---|
| 29 | InstallDirRegKey HKLM "Software\${PRODUCT} ${VERSION}" ""
|
---|
| 30 |
|
---|
| 31 | ;Request application privileges for Windows Vista
|
---|
| 32 | RequestExecutionLevel user
|
---|
| 33 |
|
---|
| 34 | ;--------------------------------
|
---|
| 35 | ;Interface Settings
|
---|
| 36 |
|
---|
| 37 | !define MUI_ABORTWARNING
|
---|
| 38 |
|
---|
| 39 | ;--------------------------------
|
---|
| 40 | ;Pages
|
---|
| 41 |
|
---|
| 42 | !insertmacro MUI_PAGE_WELCOME
|
---|
| 43 | !insertmacro MUI_PAGE_LICENSE "Files\HeuristicLab License.txt"
|
---|
| 44 | !insertmacro MUI_PAGE_COMPONENTS
|
---|
| 45 | !insertmacro MUI_PAGE_DIRECTORY
|
---|
| 46 | !insertmacro MUI_PAGE_INSTFILES
|
---|
| 47 | !define MUI_FINISHPAGE_RUN "$INSTDIR\HeuristicLab.exe"
|
---|
| 48 | !define MUI_FINISHPAGE_RUN_NOTCHECKED
|
---|
| 49 | !define MUI_FINISHPAGE_LINK "http://www.heuristiclab.com"
|
---|
| 50 | !define MUI_FINISHPAGE_LINK_LOCATION "http://www.heuristiclab.com"
|
---|
| 51 | !insertmacro MUI_PAGE_FINISH
|
---|
| 52 |
|
---|
| 53 | !insertmacro MUI_UNPAGE_WELCOME
|
---|
| 54 | !insertmacro MUI_UNPAGE_CONFIRM
|
---|
| 55 | !insertmacro MUI_UNPAGE_INSTFILES
|
---|
| 56 | !insertmacro MUI_UNPAGE_FINISH
|
---|
| 57 |
|
---|
| 58 |
|
---|
| 59 | ;--------------------------------
|
---|
| 60 | ;Languages
|
---|
| 61 |
|
---|
| 62 | !insertmacro MUI_LANGUAGE "English"
|
---|
| 63 |
|
---|
| 64 | ;--------------------------------
|
---|
| 65 | ;Installer Sections
|
---|
| 66 |
|
---|
| 67 | Section "HeuristicLab (required)" SecHeuristicLab
|
---|
| 68 | SectionIn RO
|
---|
| 69 |
|
---|
| 70 | ;Get personal data folder
|
---|
| 71 | ReadRegStr $9 HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" Personal
|
---|
| 72 |
|
---|
| 73 | ;Install files
|
---|
| 74 | SetOutPath "$INSTDIR"
|
---|
| 75 | CreateDirectory "$INSTDIR\plugins"
|
---|
| 76 | CreateDirectory "$INSTDIR\plugins\backup"
|
---|
| 77 | CreateDirectory "$INSTDIR\plugins\cache"
|
---|
| 78 | CreateDirectory "$INSTDIR\plugins\temp"
|
---|
| 79 |
|
---|
| 80 | File "..\sources\HeuristicLab.PluginInfrastructure\bin\${CONFIGURATION}\HeuristicLab.PluginInfrastructure.dll"
|
---|
| 81 | File "..\sources\HeuristicLab.PluginInfrastructure.GUI\bin\${CONFIGURATION}\HeuristicLab.PluginInfrastructure.GUI.dll"
|
---|
| 82 | File "..\sources\HeuristicLab.PluginInfrastructure.GUI\ICSharpCode.SharpZipLib.dll"
|
---|
| 83 | File "..\sources\HeuristicLab.PluginInfrastructure.GUI\ICSharpCode.SharpZipLib License.txt"
|
---|
| 84 | File "..\sources\HeuristicLab\bin\${CONFIGURATION}\HeuristicLab.exe"
|
---|
| 85 | File "..\sources\HeuristicLab\bin\${CONFIGURATION}\HeuristicLab.exe.config"
|
---|
| 86 | File "Files\HeuristicLab.ico"
|
---|
| 87 | File /a "Files\HeuristicLab License.txt"
|
---|
| 88 | File "..\documentation\API Documentation\HeuristicLab API Documentation.chm"
|
---|
| 89 |
|
---|
| 90 | ;Add install folder
|
---|
| 91 | WriteRegStr HKLM "Software\${PRODUCT} ${VERSION}" "" $INSTDIR
|
---|
| 92 |
|
---|
| 93 | ;Add uninstall information to "Add/Remove Programs"
|
---|
| 94 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "UninstallString" "$INSTDIR\Uninstall HeuristicLab.exe"
|
---|
| 95 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "InstallLocation" "$INSTDIR"
|
---|
| 96 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "DisplayName" "${PRODUCT} ${VERSION}"
|
---|
| 97 | ;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "DisplayVersion" "${VERSION}"
|
---|
| 98 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "DisplayIcon" "$INSTDIR\HeuristicLab.exe"
|
---|
| 99 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "Publisher" "HEAL"
|
---|
| 100 | ;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "Contact" "HEAL"
|
---|
| 101 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "URLInfoAbout" "http://www.heuristiclab.com"
|
---|
| 102 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "HelpLink" "http://www.heuristiclab.com"
|
---|
| 103 | ;WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "Readme" "$INSTDIR\ReadMe.txt"
|
---|
| 104 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "Comments" "A paradigm-independent and extensible environment for heuristic optimization."
|
---|
| 105 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "NoModify" 1
|
---|
| 106 | WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}" "NoRepair" 1
|
---|
| 107 |
|
---|
| 108 | ;Create uninstaller
|
---|
| 109 | WriteUninstaller "$INSTDIR\Uninstall HeuristicLab.exe"
|
---|
| 110 | SectionEnd
|
---|
| 111 |
|
---|
| 112 | SubSection "File Types" SubSecFileTypes
|
---|
| 113 | Section "HeuristicLab Files (.hl)" SecHeuristicLabFiles
|
---|
| 114 | ;Backup old extension association if any exists
|
---|
| 115 | ReadRegStr $R0 HKCR ".hl" ""
|
---|
| 116 | StrCmp $R0 "" skipBackup
|
---|
| 117 | StrCmp $R0 "HeuristicLab.File" skipBackup
|
---|
| 118 | WriteRegStr HKCR ".hl" "backup_value" $R0
|
---|
| 119 |
|
---|
| 120 | skipBackup:
|
---|
| 121 | ;Write extension association
|
---|
| 122 | WriteRegStr HKCR ".hl" "" "HeuristicLab.File"
|
---|
| 123 |
|
---|
| 124 | ;Delete file type if any exists
|
---|
| 125 | ReadRegStr $R0 HKCR "HeuristicLab.File" ""
|
---|
| 126 | StrCmp $R0 "" skipDelete
|
---|
| 127 | DeleteRegKey HKCR "HeuristicLab.File"
|
---|
| 128 |
|
---|
| 129 | skipDelete:
|
---|
| 130 | ;Write file type
|
---|
| 131 | WriteRegStr HKCR "HeuristicLab.File" "" "HeuristicLab File"
|
---|
| 132 | WriteRegStr HKCR "HeuristicLab.File\DefaultIcon" "" $INSTDIR\HeuristicLab.ico
|
---|
| 133 | WriteRegStr HKCR "HeuristicLab.File\shell" "" "open"
|
---|
| 134 | WriteRegStr HKCR "HeuristicLab.File\shell\open\command" "" '$INSTDIR\HeuristicLab.exe "%1"'
|
---|
| 135 | SectionEnd
|
---|
| 136 | SubSectionEnd
|
---|
| 137 |
|
---|
| 138 | SubSection "Shortcuts" SubSecShortcuts
|
---|
| 139 | Section "Create Start Menu Shortcuts" SecStartMenuShortcuts
|
---|
| 140 | CreateDirectory "$SMPROGRAMS\${PRODUCT} ${VERSION}"
|
---|
| 141 | CreateShortCut "$SMPROGRAMS\${PRODUCT} ${VERSION}\HeuristicLab.lnk" "$INSTDIR\HeuristicLab.exe"
|
---|
| 142 | CreateShortCut "$SMPROGRAMS\${PRODUCT} ${VERSION}\Uninstall HeuristicLab.lnk" "$INSTDIR\Uninstall HeuristicLab.exe"
|
---|
| 143 | CreateShortCut "$SMPROGRAMS\${PRODUCT} ${VERSION}\HeuristicLab API Documentation.lnk" "$INSTDIR\HeuristicLab API Documentation.chm"
|
---|
| 144 | SectionEnd
|
---|
| 145 |
|
---|
| 146 | Section "Create Desktop Shortcuts" SecDesktopShortcuts
|
---|
| 147 | CreateShortCut "$DESKTOP\HeuristicLab ${VERSION}.lnk" "$INSTDIR\HeuristicLab.exe"
|
---|
| 148 | SectionEnd
|
---|
| 149 |
|
---|
| 150 | Section "Create Quick Launch Shortcuts" SecQuickLaunchShortcuts
|
---|
| 151 | StrCmp $QUICKLAUNCH $TEMP skip
|
---|
| 152 | CreateShortCut "$QUICKLAUNCH\HeuristicLab ${VERSION}.lnk" "$INSTDIR\HeuristicLab.exe"
|
---|
| 153 | skip:
|
---|
| 154 | SectionEnd
|
---|
| 155 | SubSectionEnd
|
---|
| 156 |
|
---|
| 157 | ;--------------------------------
|
---|
| 158 | ;Descriptions
|
---|
| 159 |
|
---|
| 160 | ;Language strings
|
---|
| 161 | LangString DESC_SecHeuristicLab ${LANG_ENGLISH} "Installs HeuristicLab and the core components."
|
---|
| 162 |
|
---|
| 163 | LangString DESC_SubSecFileTypes ${LANG_ENGLISH} "Registers HeuristicLab specific file types."
|
---|
| 164 | LangString DESC_SecHeuristicLabFiles ${LANG_ENGLISH} "Associates HeuristicLab files (.hl) with HeuristicLab."
|
---|
| 165 |
|
---|
| 166 | LangString DESC_SubSecShortcuts ${LANG_ENGLISH} "Adds shortcuts to the start menu, the desktop, etc. for easy and quick access."
|
---|
| 167 | LangString DESC_SecStartMenuShortcuts ${LANG_ENGLISH} "Adds shortcuts to the start menu of the current user."
|
---|
| 168 | LangString DESC_SecDesktopShortcuts ${LANG_ENGLISH} "Adds shortcuts to the desktop of the current user."
|
---|
| 169 | LangString DESC_SecQuickLaunchShortcuts ${LANG_ENGLISH} "Adds shortcuts to the quick launch bar of the current user."
|
---|
| 170 |
|
---|
| 171 | ;Assign language strings to sections
|
---|
| 172 | !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
---|
| 173 | !insertmacro MUI_DESCRIPTION_TEXT ${SecHeuristicLab} $(DESC_SecHeuristicLab)
|
---|
| 174 | !insertmacro MUI_DESCRIPTION_TEXT ${SubSecFileTypes} $(DESC_SubSecFileTypes)
|
---|
| 175 | !insertmacro MUI_DESCRIPTION_TEXT ${SecHeuristicLabFiles} $(DESC_SecHeuristicLabFiles)
|
---|
| 176 | !insertmacro MUI_DESCRIPTION_TEXT ${SubSecShortcuts} $(DESC_SubSecShortcuts)
|
---|
| 177 | !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenuShortcuts} $(DESC_SecStartMenuShortcuts)
|
---|
| 178 | !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopShortcuts} $(DESC_SecDesktopShortcuts)
|
---|
| 179 | !insertmacro MUI_DESCRIPTION_TEXT ${SecQuickLaunchShortcuts} $(DESC_SecQuickLaunchShortcuts)
|
---|
| 180 | !insertmacro MUI_FUNCTION_DESCRIPTION_END
|
---|
| 181 |
|
---|
| 182 | ;--------------------------------
|
---|
| 183 | ;Uninstaller Section
|
---|
| 184 |
|
---|
| 185 | Section "Uninstall"
|
---|
| 186 | ;Delete HeuristicLab
|
---|
| 187 | Delete "$INSTDIR\HeuristicLab.PluginInfrastructure.dll"
|
---|
| 188 | Delete "$INSTDIR\HeuristicLab.PluginInfrastructure.GUI.dll"
|
---|
| 189 | Delete "$INSTDIR\ICSharpCode.SharpZipLib.dll"
|
---|
| 190 | Delete "$INSTDIR\ICSharpCode.SharpZipLib License.txt"
|
---|
| 191 | Delete "$INSTDIR\HeuristicLab.exe"
|
---|
| 192 | Delete "$INSTDIR\HeuristicLab.exe.config"
|
---|
| 193 | Delete "$INSTDIR\Uninstall HeuristicLab.exe"
|
---|
| 194 | Delete "$INSTDIR\HeuristicLab.ico"
|
---|
| 195 | Delete "$INSTDIR\HeuristicLab License.txt"
|
---|
| 196 | Delete "$INSTDIR\HeuristicLab API Documentation.chm"
|
---|
| 197 |
|
---|
| 198 | ;Delete shortcuts
|
---|
| 199 | Delete "$DESKTOP\HeuristicLab ${VERSION}.lnk"
|
---|
| 200 | Delete "$SMPROGRAMS\${PRODUCT} ${VERSION}\HeuristicLab.lnk"
|
---|
| 201 | Delete "$SMPROGRAMS\${PRODUCT} ${VERSION}\Uninstall HeuristicLab.lnk"
|
---|
| 202 | Delete "$SMPROGRAMS\${PRODUCT} ${VERSION}\HeuristicLab API Documentation.lnk"
|
---|
| 203 | RMDir "$SMPROGRAMS\${PRODUCT} ${VERSION}"
|
---|
| 204 | StrCmp $QUICKLAUNCH $TEMP skip
|
---|
| 205 | Delete "$QUICKLAUNCH\HeuristicLab ${VERSION}.lnk"
|
---|
| 206 | skip:
|
---|
| 207 |
|
---|
| 208 | ;Delete folders
|
---|
| 209 | RMDir "$INSTDIR\plugins"
|
---|
| 210 | RMDir /r "$INSTDIR"
|
---|
| 211 |
|
---|
| 212 | ;Remove install folder
|
---|
| 213 | DeleteRegKey /ifempty HKLM "Software\${PRODUCT} ${VERSION}"
|
---|
| 214 |
|
---|
| 215 | ;Remove uninstall information from "Add/Remove Programs"
|
---|
| 216 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT} ${VERSION}"
|
---|
| 217 |
|
---|
| 218 | ;Remove extension associations
|
---|
| 219 | ;HeuristicLab File (hl)
|
---|
| 220 | ReadRegStr $R0 HKCR ".hl" ""
|
---|
| 221 | StrCmp $R0 "HeuristicLab.File" 0 hlFinished
|
---|
| 222 | ReadRegStr $R0 HKCR ".hl" "backup_value"
|
---|
| 223 | StrCmp $R0 "" 0 restoreHl
|
---|
| 224 | DeleteRegKey HKCR ".hl"
|
---|
| 225 | Goto hlFinished
|
---|
| 226 | restoreHl:
|
---|
| 227 | WriteRegStr HKCR ".hl" "" $R0
|
---|
| 228 | DeleteRegValue HKCR ".hl" "backup_value"
|
---|
| 229 | HlFinished:
|
---|
| 230 |
|
---|
| 231 | ;Remove file types
|
---|
| 232 | DeleteRegKey HKCR "HeuristicLab.File"
|
---|
| 233 | SectionEnd
|
---|