1+ Unicode true
2+
13!include " MUI2.nsh"
24!include " nsDialogs.nsh"
35!include " winmessages.nsh"
46
5- Name " The Julia Language"
67OutFile " julia-installer.exe"
78SetCompress off
8- CRCCheck on
9+ CRCCheck off
910SetDataBlockOptimize on
10- ShowInstDetails show
11+ ShowInstDetails nevershow
12+ ShowUninstDetails nevershow
1113RequestExecutionLevel user
12- BrandingText " Julia ${Version}"
14+ BrandingText " "
15+
16+ !define /date YEAR " %Y"
17+
18+ Name " Julia"
19+ VIProductVersion " 10.20.0.0" # arbitrary value since it doesn't mater, but is required; format must be X.X.X.X
20+ VIAddVersionKey " ProductName" " Julia"
21+ VIAddVersionKey " CompanyName " " Julia Language"
22+ VIAddVersionKey " ProductVersion" " ${Version}"
23+ VIAddVersionKey " FileDescription" " Julia Language Installer"
24+ VIAddVersionKey " Comments" " https://julialang.org/"
25+ VIAddVersionKey " LegalCopyright" " Copyright (c) 2009-${YEAR} Julia Language"
26+ VIAddVersionKey " FileVersion" " "
27+
28+ Caption " Julia Installer" # title bar
29+
30+ !define MUI_ICON " ${JULIAHOME}\contrib\windows\julia.ico"
31+ !define MUI_UNICON " ${JULIAHOME}\contrib\windows\julia.ico"
32+ !define MUI_WELCOMEFINISHPAGE_BITMAP " ${JULIAHOME}\contrib\windows\julia-banner.bmp"
33+ !define MUI_HEADERIMAGE
34+ !define MUI_HEADERIMAGE_BITMAP " ${JULIAHOME}\contrib\windows\julia-header.bmp"
35+ !define MUI_HEADERIMAGE_RIGHT
1336
1437# Uninstall settings
1538!define UninstLog " uninstall.log"
@@ -29,7 +52,7 @@ FunctionEnd
2952Function createDesktopLink
3053 ${NSD_GetState} $Checkbox $0
3154 ${If} $0 <> 0
32- CreateShortCut " $DESKTOP\julia.lnk" " $INSTDIR\bin\julia.exe"
55+ CreateShortCut " $DESKTOP\julia.lnk" " $INSTDIR\bin\julia.exe" " " " $INSTDIR\bin\julia.exe " 0
3356 ${EndIf}
3457FunctionEnd
3558
@@ -38,25 +61,43 @@ InstallDir "$LOCALAPPDATA\Julia-${Version}"
3861!define JuliaStartMenuFolder " Julia ${Version}"
3962
4063# Page settings
41- # Note that we repurpose the checkboxes on the FinishPage
42- # in order to keep it simple.
43- !define MUI_DIRECTORYPAGE_TEXT_TOP " Julia may be installed in any accessible directory, including a home folder or portable device. Please run as Administrator to install for system-wide use."
64+ # Note that we repurpose the checkboxes on the FinishPage in order to keep it simple.
65+ !define MUI_DIRECTORYPAGE_TEXT_TOP " Julia may be installed in any accessible directory.$\r$\n$\r$\n Please run installer as Administrator to install Julia system-wide."
4466!define MUI_FINISHPAGE_SHOWREADME
4567!define MUI_FINISHPAGE_SHOWREADME_TEXT " Create Start Menu folder and shortcut"
4668!define MUI_FINISHPAGE_SHOWREADME_FUNCTION AddToStartMenu
69+
70+ !define MUI_WELCOMEPAGE_TITLE " Welcome to Julia ${Version}"
71+ !define MUI_WELCOMEPAGE_TEXT " Setup will guide you through installation.$\r$\n$\r$\n Click Next to continue."
72+ !define MUI_FINISHPAGE_TITLE " Julia installation complete"
73+ !define MUI_FINISHPAGE_TEXT " Julia has been successfully installed.$\r$\n$\r$\n Click Finish to close the installer."
74+
4775!define MUI_FINISHPAGE_RUN
48- !define MUI_FINISHPAGE_RUN_TEXT " Open Julia install folder"
76+ !define MUI_FINISHPAGE_RUN_TEXT " Open the Julia install folder"
4977!define MUI_FINISHPAGE_RUN_FUNCTION ShowInstallFolder
5078
51- # Pages to show
79+ !define MUI_UNCONFIRMPAGE_TEXT_TOP " Julia will be uninstalled from the following folder."
80+ !define MUI_UNCONFIRMPAGE_TEXT_LOCATION " Uninstalling from"
5281
82+ # Pages to show
83+ !define MUI_PAGE_HEADER_TEXT " Choose Installation Directory"
84+ !define MUI_PAGE_HEADER_SUBTEXT " "
85+ !insertmacro MUI_PAGE_WELCOME
5386!insertmacro MUI_PAGE_DIRECTORY
5487!insertmacro MUI_PAGE_INSTFILES
88+ Section
89+ !insertmacro MUI_HEADER_TEXT " Installing" " "
90+ SectionEnd
5591
5692!define MUI_PAGE_CUSTOMFUNCTION_SHOW desktopCheckbox
5793!define MUI_PAGE_CUSTOMFUNCTION_LEAVE createDesktopLink
5894!insertmacro MUI_PAGE_FINISH
5995
96+ !define MUI_PAGE_HEADER_TEXT " Uninstall Julia"
97+ !define MUI_PAGE_HEADER_SUBTEXT " "
98+ !insertmacro MUI_UNPAGE_CONFIRM
99+ !insertmacro MUI_UNPAGE_INSTFILES
100+
60101!insertmacro MUI_LANGUAGE " English"
61102
62103# Add/Remove Programs entry
@@ -65,14 +106,14 @@ InstallDir "$LOCALAPPDATA\Julia-${Version}"
65106Section " Dummy Section" SecDummy
66107 SetOutPath $INSTDIR
67108 File /a /r " julia-${Commit}\*"
68- WriteUninstaller " $INSTDIR\Uninstall .exe"
69- CreateShortcut " $INSTDIR\julia.lnk" " $INSTDIR\bin\julia.exe"
109+ WriteUninstaller " $INSTDIR\uninstall .exe"
110+ CreateShortcut " $INSTDIR\julia.lnk" " $INSTDIR\bin\julia.exe" " " " $INSTDIR\bin\julia.exe " 0
70111
71112 # ARP entries
72113 WriteRegStr HKCU " ${ARP}" \
73- " DisplayName" " Julia Language ${Version}"
114+ " DisplayName" " Julia ${Version}"
74115 WriteRegStr HKCU " ${ARP}" \
75- " Publisher" " The Julia Project "
116+ " Publisher" " Julia Language "
76117 WriteRegStr HKCU " ${ARP}" \
77118 " DisplayIcon" " $INSTDIR\bin\julia.exe"
78119 WriteRegStr HKCU " ${ARP}" \
@@ -145,13 +186,11 @@ SectionEnd
145186# Helper function to create Start Menu folder and shortcuts
146187Function AddToStartMenu
147188 CreateDirectory " $SMPROGRAMS\${JuliaStartMenuFolder}"
148- CreateShortcut " $SMPROGRAMS\${JuliaStartMenuFolder}\julia-${Version}.lnk" " $INSTDIR\julia.lnk" " " " " " " " " " " " The Julia Language "
149- CreateShortcut " $SMPROGRAMS\${JuliaStartMenuFolder}\Uninstall-Julia-${Version}.lnk" " $instdir\Uninstall .exe"
189+ CreateShortcut " $SMPROGRAMS\${JuliaStartMenuFolder}\julia-${Version}.lnk" " $INSTDIR\julia.lnk" " " " " " " " " " " " Julia"
190+ CreateShortcut " $SMPROGRAMS\${JuliaStartMenuFolder}\Uninstall-Julia-${Version}.lnk" " $instdir\uninstall .exe"
150191FunctionEnd
151192
152193# Opens the installation folder
153194Function ShowInstallFolder
154195 ExecShell " open" $INSTDIR
155196FunctionEnd
156-
157-
0 commit comments