diff --git a/Makefile b/Makefile index 3ab8f9444f932..6946b312288a7 100644 --- a/Makefile +++ b/Makefile @@ -462,7 +462,7 @@ ifeq ($(OS), WINNT) cd $(BUILDROOT)/julia-$(JULIA_COMMIT) && find * | sed -e 's/\//\\/g' -e 's/$$/\r/g' > etc/uninstall.log # build nsis package - cd $(BUILDROOT) && $(call spawn,$(JULIAHOME)/dist-extras/nsis/makensis.exe) -NOCD -DVersion=$(JULIA_VERSION) -DArch=$(ARCH) -DCommit=$(JULIA_COMMIT) -DMUI_ICON="$(call cygpath_w,$(JULIAHOME)/contrib/windows/julia.ico)" $(call cygpath_w,$(JULIAHOME)/contrib/windows/build-installer.nsi) | iconv -f latin1 + cd $(BUILDROOT) && $(call spawn,$(JULIAHOME)/dist-extras/nsis/makensis.exe) -NOCD -DVersion=$(JULIA_VERSION) -DArch=$(ARCH) -DCommit=$(JULIA_COMMIT) -DJULIAHOME="$(call cygpath_w,$(JULIAHOME))" $(call cygpath_w,$(JULIAHOME)/contrib/windows/build-installer.nsi) | iconv -f latin1 # compress nsis installer and combine with 7zip self-extracting header cd $(BUILDROOT) && $(JULIAHOME)/dist-extras/7z a -mx9 "julia-install-$(JULIA_COMMIT)-$(ARCH).7z" julia-installer.exe diff --git a/contrib/windows/build-installer.nsi b/contrib/windows/build-installer.nsi index 21415da06c9bb..ef81f18325977 100644 --- a/contrib/windows/build-installer.nsi +++ b/contrib/windows/build-installer.nsi @@ -4,14 +4,19 @@ Unicode true !include "nsDialogs.nsh" !include "winmessages.nsh" -Name "The Julia Language" +Name "Julia" OutFile "julia-installer.exe" SetCompress off CRCCheck on SetDataBlockOptimize on -ShowInstDetails show +ShowInstDetails nevershow RequestExecutionLevel user -BrandingText "Julia ${Version}" +BrandingText " " +Caption "Julia Installer" # title bar + +!define MUI_ICON "${JULIAHOME}\contrib\windows\julia.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico" +!define MUI_WELCOMEFINISHPAGE_BITMAP "${JULIAHOME}\contrib\windows\julia-banner.bmp" # Uninstall settings !define UninstLog "uninstall.log" @@ -42,18 +47,28 @@ InstallDir "$LOCALAPPDATA\Julia-${Version}" # Page settings # Note that we repurpose the checkboxes on the FinishPage # in order to keep it simple. +!define MUI_PAGE_HEADER_TEXT "Choose Installation Directory" +!define MUI_PAGE_HEADER_SUBTEXT "" !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." !define MUI_FINISHPAGE_SHOWREADME !define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Start Menu folder and shortcut" !define MUI_FINISHPAGE_SHOWREADME_FUNCTION AddToStartMenu + +!define MUI_WELCOMEPAGE_TITLE "Welcome to Julia ${Version}" +!define MUI_WELCOMEPAGE_TEXT "Setup will guide you through the installation of Julia.$\r$\n$\r$\nClick Next to continue." +!define MUI_FINISHPAGE_TITLE "Julia installation finished" + !define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_TEXT "Open Julia install folder" +!define MUI_FINISHPAGE_RUN_TEXT "Open the Julia install folder" !define MUI_FINISHPAGE_RUN_FUNCTION ShowInstallFolder # Pages to show - +!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES +Section +!insertmacro MUI_HEADER_TEXT "Installing" "" +SectionEnd !define MUI_PAGE_CUSTOMFUNCTION_SHOW desktopCheckbox !define MUI_PAGE_CUSTOMFUNCTION_LEAVE createDesktopLink @@ -147,7 +162,7 @@ SectionEnd # Helper function to create Start Menu folder and shortcuts Function AddToStartMenu CreateDirectory "$SMPROGRAMS\${JuliaStartMenuFolder}" - CreateShortcut "$SMPROGRAMS\${JuliaStartMenuFolder}\julia-${Version}.lnk" "$INSTDIR\julia.lnk" "" "" "" "" "" "The Julia Language" + CreateShortcut "$SMPROGRAMS\${JuliaStartMenuFolder}\julia-${Version}.lnk" "$INSTDIR\julia.lnk" "" "" "" "" "" "Julia" CreateShortcut "$SMPROGRAMS\${JuliaStartMenuFolder}\Uninstall-Julia-${Version}.lnk" "$instdir\Uninstall.exe" FunctionEnd diff --git a/contrib/windows/julia-banner.bmp b/contrib/windows/julia-banner.bmp new file mode 100755 index 0000000000000..964dfec8653e5 Binary files /dev/null and b/contrib/windows/julia-banner.bmp differ