summaryrefslogtreecommitdiff
path: root/indra/newview/installers/windows/installer_template.nsi
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2018-11-15 12:06:30 -0500
committerNat Goodspeed <nat@lindenlab.com>2018-11-15 12:06:30 -0500
commitdd9f6784ccc5d285ef50f0b8693ee92bb872d992 (patch)
tree17767e8f611dd235c84c52d9d1b6310d509196f3 /indra/newview/installers/windows/installer_template.nsi
parentf49ee0a0538ae03e9299c95a15f0485dee971dbd (diff)
SL-10010: Use c:\Program Files rather than c:\Program Files (x86)
for 64-bit viewers. It seems there's a longstanding bug in NSIS: it fails to use $PROGRAMFILES64 rather than $PROGRAMFILES when performing an all-users install of a 64-bit program. Try to remedy that. Also pick up a few NSIS suggestions from Ansariel Hiller.
Diffstat (limited to 'indra/newview/installers/windows/installer_template.nsi')
-rw-r--r--indra/newview/installers/windows/installer_template.nsi22
1 files changed, 21 insertions, 1 deletions
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index bd290b710b..840203c178 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -46,9 +46,13 @@ RequestExecutionLevel highest # match MULTIUSER_EXECUTIONLEVEL
;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
;; application directory so we have to add a path to these include files)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ansariel notes: "Under certain circumstances the installer will fall back
+;; to the first defined (aka default) language version. So you want to include
+;; en-us as first language file."
+!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
+
!include "%%SOURCE%%\installers\windows\lang_da.nsi"
!include "%%SOURCE%%\installers\windows\lang_de.nsi"
-!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
!include "%%SOURCE%%\installers\windows\lang_es.nsi"
!include "%%SOURCE%%\installers\windows\lang_fr.nsi"
!include "%%SOURCE%%\installers\windows\lang_ja.nsi"
@@ -108,8 +112,22 @@ AutoCloseWindow true # After all files install, close window
!define MULTIUSER_INSTALLMODE_COMMANDLINE
# appended to $PROGRAMFILES, as affected by MULTIUSER_USE_PROGRAMFILES64
!define MULTIUSER_INSTALLMODE_INSTDIR "${INSTNAME}"
+
# expands to !define MULTIUSER_USE_PROGRAMFILES64 or nothing
%%PROGRAMFILES%%
+# Bug in MultiUser.nsh?! This reference:
+# http://nsis.sourceforge.net/Docs/MultiUser/Readme.html
+# says:
+# MULTIUSER_USE_PROGRAMFILES64 Use $PROGRAMFILES64 instead of $PROGRAMFILES as the default all users directory.
+# Yet as far as I can tell from:
+# https://sourceforge.net/p/nsis/mailman/message/22246769/
+# (which contains a patch), that functionality has never been released with
+# NSIS. Instead of applying a patch to each developer machine and each
+# TeamCity build host, try overwriting $PROGRAMFILES with $PROGRAMFILES64?!
+!ifdef MULTIUSER_USE_PROGRAMFILES64
+ StrCpy $PROGRAMFILES $PROGRAMFILES64
+!endif
+
# should make MultiUser.nsh initialization read existing INSTDIR from registry
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "${INSTNAME_KEY}"
!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME ""
@@ -118,6 +136,8 @@ AutoCloseWindow true # After all files install, close window
!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "InstallMode"
!include MultiUser.nsh
!include MUI2.nsh
+!define MUI_BGCOLOR FFFFFF
+!insertmacro MUI_FUNCTION_GUIINIT
UninstallText $(UninstallTextMsg)
DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)