aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/installers/windows/installer_template.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/installers/windows/installer_template.nsi')
-rw-r--r--linden/indra/newview/installers/windows/installer_template.nsi361
1 files changed, 217 insertions, 144 deletions
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi
index 8ab7c4f..1b5226c 100644
--- a/linden/indra/newview/installers/windows/installer_template.nsi
+++ b/linden/indra/newview/installers/windows/installer_template.nsi
@@ -1,63 +1,70 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;;; @file viewer_manifest.py 2;; secondlife setup.nsi
3;;; @author James Cook, Don Kjer 3;; Copyright 2004-2007, Linden Research, Inc.
4;;; @brief NSIS script for creating a Windows installer. 4;; For info, see http://www.nullsoft.com/free/nsis/
5;;; This file has variables expanded by viewer_manifest.py 5;;
6;;; to produce the complete nsi script file. 6;; NSIS 2.22 or higher required
7;;; For info, see http://www.nullsoft.com/free/nsis/ 7;; Author: James Cook, Don Kjer, Callum Prentice
8;;; NSIS 2.02 or higher required 8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9;;; 9
10;;; Copyright (c) 2006-$CurrentYear$, Linden Research, Inc. 10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;;; $License$
12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
13
14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15;;; Compiler flags
16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17
18;;; Detect NSIS compiler version 11;;; Detect NSIS compiler version
19!define "NSIS${NSIS_VERSION}" 12!define "NSIS${NSIS_VERSION}"
20!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06" 13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06"
21 ;;; before 2.07 defaulted lzma to solid (whole file) 14 ;; before 2.07 defaulted lzma to solid (whole file)
22 SetCompressor lzma 15 SetCompressor lzma
23!else 16!else
24 ;;; after 2.07 required /solid for whole file compression 17 ;; after 2.07 required /solid for whole file compression
25 SetCompressor /solid lzma 18 SetCompressor /solid lzma
26!endif 19!endif
27 20
21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22;; Compiler flags
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28SetOverwrite on ; overwrite files 24SetOverwrite on ; overwrite files
29SetCompress auto ; compress iff saves space 25SetCompress auto ; compress iff saves space
30SetDatablockOptimize off ; only saves us 0.1%, not worth it 26SetDatablockOptimize off ; only saves us 0.1%, not worth it
31XPStyle on ; add an XP manifest to the installer 27XPStyle on ; add an XP manifest to the installer
32 28
33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34;;; Project flags 30;;; Project flags
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36 32
37%%VERSION%% 33%%VERSION%%
38 34
39;;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py) 35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36;; - language files - one for each language (or flavor thereof)
37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
38;; application directory so we have to add a path to these include files)
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40#!include "installers\windows\lang_de.nsi"
41!include "installers\windows\lang_en-us.nsi"
42#!include "installers\windows\lang_ja.nsi"
43!include "installers\windows\lang_ko.nsi"
44
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py)
40%%GRID_VARS%% 47%%GRID_VARS%%
41 48
42Name ${INSTNAME} 49Name ${INSTNAME}
43 50
44SubCaption 0 " Setup" ; override "license agreement" text 51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text
45 52
46BrandingText " " ; bottom of window text 53BrandingText " " ; bottom of window text
47Icon res\install_icon.ico ; our custom icon 54Icon res\install_icon.ico ; our custom icon
48UninstallIcon res\uninstall_icon.ico ; our custom icon 55UninstallIcon res\uninstall_icon.ico ; our custom icon
49WindowIcon on ; show our icon in left corner 56WindowIcon on ; show our icon in left corner
50BGGradient off ; no big background window 57BGGradient off ; no big background window
51CRCCheck on ; make sure CRC is OK 58CRCCheck on ; make sure CRC is OK
52InstProgressFlags smooth colored ; new colored smooth look 59InstProgressFlags smooth colored ; new colored smooth look
53ShowInstDetails nevershow ; no details, no "show" button 60ShowInstDetails nevershow ; no details, no "show" button
54SetOverwrite on ; stomp files by default 61SetOverwrite on ; stomp files by default
55AutoCloseWindow true ; after all files install, close window 62AutoCloseWindow true ; after all files install, close window
56 63
57!ifdef UPDATE 64!ifdef UPDATE
58LicenseText "This package will update Second Life to version ${VERSION_LONG}." "Next >" 65LicenseText $(LicenseDescUpdate) $(LicenseDescNext)
59!else 66!else
60LicenseText "This package will install Second Life on your computer." "Next >" 67LicenseText $(LicenseDescSetup) $(LicenseDescNext)
61!endif 68!endif
62 69
63LicenseData "releasenotes.txt" 70LicenseData "releasenotes.txt"
@@ -65,30 +72,30 @@ LicenseData "releasenotes.txt"
65InstallDir "$PROGRAMFILES\${INSTNAME}" 72InstallDir "$PROGRAMFILES\${INSTNAME}"
66InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "" 73InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
67!ifdef UPDATE 74!ifdef UPDATE
68DirText "Installation Directory" "Select the Second Life directory to update:" 75DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate)
69!else 76!else
70DirText "Installation Directory" "Select the directory to install Second Life in:" 77DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
71!endif 78!endif
72 79
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;;; Variables 81;;; Variables
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76Var INSTPROG 83Var INSTPROG
77Var INSTEXE 84Var INSTEXE
78Var INSTFLAGS 85Var INSTFLAGS
86Var LANGFLAGS
79Var INSTSHORTCUT 87Var INSTSHORTCUT
80 88
81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82;;; Sections 90;;; Sections
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84
85Section "" ; (default section) 92Section "" ; (default section)
86 93
87SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well) 94SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well)
88 95
89
90; Start with some default values. 96; Start with some default values.
91StrCpy $INSTFLAGS "${INSTFLAGS}" 97StrCpy $INSTFLAGS "${INSTFLAGS}"
98StrCpy $INSTFLAGS "$INSTFLAGS $LANGFLAGS"
92StrCpy $INSTPROG "${INSTNAME}" 99StrCpy $INSTPROG "${INSTNAME}"
93StrCpy $INSTEXE "${INSTEXE}" 100StrCpy $INSTEXE "${INSTEXE}"
94StrCpy $INSTSHORTCUT "${SHORTCUT}" 101StrCpy $INSTSHORTCUT "${SHORTCUT}"
@@ -103,21 +110,22 @@ Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this v
103Call CloseSecondLife ; Make sure we're not running 110Call CloseSecondLife ; Make sure we're not running
104Call RemoveNSIS ; Check for old NSIS install to remove 111Call RemoveNSIS ; Check for old NSIS install to remove
105 112
113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
106;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. 114;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
107;Call RemoveCacheFiles ; Installing over removes potentially corrupted 115;Call RemoveCacheFiles ; Installing over removes potentially corrupted
108 ; VFS and cache files. 116 ; VFS and cache files.
109 117
110 118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
112;;; Files 119;;; Files
113;;; 120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
115;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py 121;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
116%%INSTALL_FILES%% 122%%INSTALL_FILES%%
117 123
124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
118; If this is a silent update, we don't need to re-create these shortcuts or registry entries. 125; If this is a silent update, we don't need to re-create these shortcuts or registry entries.
119IfSilent POST_INSTALL 126IfSilent POST_INSTALL
120 127
128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
121; Shortcuts in start menu 129; Shortcuts in start menu
122CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT" 130CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT"
123SetOutPath "$INSTDIR" 131SetOutPath "$INSTDIR"
@@ -146,6 +154,7 @@ CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \
146CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ 154CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
147 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 155 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
148 156
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
149; Other shortcuts 158; Other shortcuts
150SetOutPath "$INSTDIR" 159SetOutPath "$INSTDIR"
151CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 160CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
@@ -164,6 +173,7 @@ CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "
164 173
165!endif 174!endif
166 175
176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
167; Write registry 177; Write registry
168WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR" 178WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
169WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}" 179WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
@@ -173,6 +183,7 @@ WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
173WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)" 183WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
174WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"' 184WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"'
175 185
186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
176; Write URL registry info 187; Write URL registry info
177WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life" 188WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
178WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" 189WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
@@ -192,10 +203,10 @@ WriteUninstaller "$INSTDIR\uninst.exe"
192; end of default section 203; end of default section
193SectionEnd 204SectionEnd
194 205
195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
196; PostInstallExe 207; PostInstallExe
197; This just runs any post installation scripts. 208; This just runs any post installation scripts.
198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
199Function PostInstallExe 210Function PostInstallExe
200push $0 211push $0
201 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe" 212 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe"
@@ -204,11 +215,10 @@ push $0
204pop $0 215pop $0
205FunctionEnd 216FunctionEnd
206 217
207 218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
209; CheckStartupParameters 219; CheckStartupParameters
210; Sets INSTFLAGS, INSTPROG, and INSTEXE. 220; Sets INSTFLAGS, INSTPROG, and INSTEXE.
211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
212Function CheckStartupParams 222Function CheckStartupParams
213push $0 223push $0
214push $R0 224push $R0
@@ -237,7 +247,7 @@ push $R0
237 Goto FINISHED 247 Goto FINISHED
238 248
239ABORT: 249ABORT:
240 MessageBox MB_OK "Could not find the program '$INSTPROG'. Silent update failed." 250 MessageBox MB_OK $(CheckStartupParamsMB)
241 Quit 251 Quit
242 252
243FINISHED: 253FINISHED:
@@ -246,6 +256,9 @@ pop $R0
246pop $0 256pop $0
247FunctionEnd 257FunctionEnd
248 258
259;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
260;;
261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
249Function un.CheckStartupParams 262Function un.CheckStartupParams
250push $0 263push $0
251push $R0 264push $R0
@@ -274,7 +287,7 @@ push $R0
274 Goto FINISHED 287 Goto FINISHED
275 288
276ABORT: 289ABORT:
277 MessageBox MB_OK "Could not find the program '$INSTPROG'. Silent update failed." 290 MessageBox MB_OK $(CheckStartupParamsMB)
278 Quit 291 Quit
279 292
280FINISHED: 293FINISHED:
@@ -283,26 +296,26 @@ pop $R0
283pop $0 296pop $0
284FunctionEnd 297FunctionEnd
285 298
286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
287;;; After install completes, offer readme file 300;;; After install completes, offer readme file
288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
289Function .onInstSuccess 302Function .onInstSuccess
290 MessageBox MB_YESNO \ 303 MessageBox MB_YESNO \
291 "Start Second Life now?" /SD IDYES IDNO NoReadme 304 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme
292 ; Assumes SetOutPath $INSTDIR 305 ; Assumes SetOutPath $INSTDIR
293 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS' 306 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS'
294 NoReadme: 307 NoReadme:
295FunctionEnd 308FunctionEnd
296 309
297;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 310;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
298; Remove old NSIS version. Modifies no variables. 311; Remove old NSIS version. Modifies no variables.
299; Does NOT delete the LindenWorld directory, or any 312; Does NOT delete the LindenWorld directory, or any
300; user files in that directory. 313; user files in that directory.
301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
302Function RemoveNSIS 315Function RemoveNSIS
303 Push $0 316 Push $0
304 ; Grab the installation directory of the old version 317 ; Grab the installation directory of the old version
305 DetailPrint "Checking for old version..." 318 DetailPrint $(RemoveOldNSISVersion)
306 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 319 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
307 320
308 ; If key doesn't exist, skip uninstall 321 ; If key doesn't exist, skip uninstall
@@ -323,9 +336,9 @@ Function RemoveNSIS
323 Pop $0 336 Pop $0
324FunctionEnd 337FunctionEnd
325 338
326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
327; Make sure we're not on Windows 98 / ME 340; Make sure we're not on Windows 98 / ME
328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
329Function CheckWindowsVersion 342Function CheckWindowsVersion
330 DetailPrint "Checking Windows version..." 343 DetailPrint "Checking Windows version..."
331 Call GetWindowsVersion 344 Call GetWindowsVersion
@@ -339,46 +352,49 @@ Function CheckWindowsVersion
339 StrCmp $R0 "NT" win_ver_bad 352 StrCmp $R0 "NT" win_ver_bad
340 Return 353 Return
341win_ver_bad: 354win_ver_bad:
342 MessageBox MB_YESNO 'Second Life only supports Windows XP, Windows 2000, and Mac OS X.$\n$\nAttempting to install on Windows $R0 can result in crashes and data loss.$\n$\nInstall anyway?' IDNO win_ver_abort 355 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort
343 Return 356 Return
344win_ver_abort: 357win_ver_abort:
345 Quit 358 Quit
346FunctionEnd 359FunctionEnd
347 360
348;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 361;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
349; Make sure the user can install/uninstall 362; Make sure the user can install/uninstall
350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
351Function CheckIfAdministrator 364Function CheckIfAdministrator
352 DetailPrint "Checking for permission to install..." 365 DetailPrint $(CheckAdministratorInstDP)
353 UserInfo::GetAccountType 366 UserInfo::GetAccountType
354 Pop $R0 367 Pop $R0
355 StrCmp $R0 "Admin" is_admin 368 StrCmp $R0 "Admin" is_admin
356 MessageBox MB_OK 'You appear to be using a "limited" account.$\nYou must be an "administrator" to install Second Life.' 369 MessageBox MB_OK $(CheckAdministratorInstMB)
357 Quit 370 Quit
358is_admin: 371is_admin:
359 Return 372 Return
360FunctionEnd 373FunctionEnd
361 374
375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
376;;
377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
362Function un.CheckIfAdministrator 378Function un.CheckIfAdministrator
363 DetailPrint "Checking for permission to uninstall..." 379 DetailPrint $(CheckAdministratorUnInstDP)
364 UserInfo::GetAccountType 380 UserInfo::GetAccountType
365 Pop $R0 381 Pop $R0
366 StrCmp $R0 "Admin" is_admin 382 StrCmp $R0 "Admin" is_admin
367 MessageBox MB_OK 'You appear to be using a "limited" account.$\nYou must be an "administrator" to uninstall Second Life.' 383 MessageBox MB_OK $(CheckAdministratorUnInstMB)
368 Quit 384 Quit
369is_admin: 385is_admin:
370 Return 386 Return
371FunctionEnd 387FunctionEnd
372 388
373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 389;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
374; Checks to see if the current version has already been installed (according to the registry). 390; Checks to see if the current version has already been installed (according to the registry).
375; If it has, allow user to bail out of install process. 391; If it has, allow user to bail out of install process.
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377Function CheckIfAlreadyCurrent 393Function CheckIfAlreadyCurrent
378 Push $0 394 Push $0
379 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" 395 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version"
380 StrCmp $0 ${VERSION_LONG} 0 DONE 396 StrCmp $0 ${VERSION_LONG} 0 DONE
381 MessageBox MB_OKCANCEL "It appears that Second Life ${VERSION_LONG} is already installed.$\n$\nWould you like to install it again?" /SD IDOK IDOK DONE 397 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE
382 Quit 398 Quit
383 399
384 DONE: 400 DONE:
@@ -386,22 +402,21 @@ Function CheckIfAlreadyCurrent
386 Return 402 Return
387FunctionEnd 403FunctionEnd
388 404
389 405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
390;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
391; Close the program, if running. Modifies no variables. 406; Close the program, if running. Modifies no variables.
392; Allows user to bail out of install process. 407; Allows user to bail out of install process.
393;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
394Function CloseSecondLife 409Function CloseSecondLife
395 Push $0 410 Push $0
396 FindWindow $0 "Second Life" "" 411 FindWindow $0 "Second Life" ""
397 IntCmp $0 0 DONE 412 IntCmp $0 0 DONE
398 MessageBox MB_OKCANCEL "Second Life can't be installed while it is already running.$\n$\nFinish what you're doing then select OK to close Second Life and continue.$\nSelect CANCEL to cancel installation." IDOK CLOSE IDCANCEL CANCEL_INSTALL 413 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL
399 414
400 CANCEL_INSTALL: 415 CANCEL_INSTALL:
401 Quit 416 Quit
402 417
403 CLOSE: 418 CLOSE:
404 DetailPrint "Waiting for Second Life to shut down..." 419 DetailPrint $(CloseSecondLifeInstDP)
405 SendMessage $0 16 0 0 420 SendMessage $0 16 0 0
406 421
407 LOOP: 422 LOOP:
@@ -416,59 +431,59 @@ Function CloseSecondLife
416FunctionEnd 431FunctionEnd
417 432
418 433
419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420; Delete files in Documents and Settings\<user>\SecondLife\cache 435; Delete files in Documents and Settings\<user>\SecondLife\cache
421; Delete files in Documents and Settings\All Users\SecondLife\cache 436; Delete files in Documents and Settings\All Users\SecondLife\cache
422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 437;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
423Function RemoveCacheFiles 438;Function RemoveCacheFiles
424 439;
425; Delete files in Documents and Settings\<user>\SecondLife 440;; Delete files in Documents and Settings\<user>\SecondLife
426Push $0 441;Push $0
427Push $1 442;Push $1
428Push $2 443;Push $2
429 DetailPrint "Deleting cache files in Documents and Settings folder" 444; DetailPrint $(RemoveCacheFilesDP)
430 445;
431 StrCpy $0 0 ; Index number used to iterate via EnumRegKey 446; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
432 447;
433 LOOP: 448; LOOP:
434 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 449; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
435 StrCmp $1 "" DONE ; no more users 450; StrCmp $1 "" DONE ; no more users
436 451;
437 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 452; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
438 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 453; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
439 454;
440 ; Required since ProfileImagePath is of type REG_EXPAND_SZ 455; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
441 ExpandEnvStrings $2 $2 456; ExpandEnvStrings $2 $2
442 457;
443 ; When explicitly uninstalling, everything goes away 458; ; When explicitly uninstalling, everything goes away
444 RMDir /r "$2\Application Data\SecondLife\cache" 459; RMDir /r "$2\Application Data\SecondLife\cache"
445 460;
446 CONTINUE: 461; CONTINUE:
447 IntOp $0 $0 + 1 462; IntOp $0 $0 + 1
448 Goto LOOP 463; Goto LOOP
449 DONE: 464; DONE:
450Pop $2 465;Pop $2
451Pop $1 466;Pop $1
452Pop $0 467;Pop $0
453 468;
454; Delete files in Documents and Settings\All Users\SecondLife 469;; Delete files in Documents and Settings\All Users\SecondLife
455Push $0 470;Push $0
456 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 471; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
457 StrCmp $0 "" +2 472; StrCmp $0 "" +2
458 RMDir /r "$0\SecondLife\cache" 473; RMDir /r "$0\SecondLife\cache"
459Pop $0 474;Pop $0
460 475;
461; Delete filse in C:\Windows\Application Data\SecondLife 476;; Delete filse in C:\Windows\Application Data\SecondLife
462; If the user is running on a pre-NT system, Application Data lives here instead of 477;; If the user is running on a pre-NT system, Application Data lives here instead of
463; in Documents and Settings. 478;; in Documents and Settings.
464RMDir /r "$WINDIR\Application Data\SecondLife\cache" 479;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
465 480;
466FunctionEnd 481;FunctionEnd
467 482
468;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
469; Delete files in Documents and Settings\<user>\SecondLife 484; Delete files in Documents and Settings\<user>\SecondLife
470; Delete files in Documents and Settings\All Users\SecondLife 485; Delete files in Documents and Settings\All Users\SecondLife
471;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 486;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
472Function un.DocumentsAndSettingsFolder 487Function un.DocumentsAndSettingsFolder
473 488
474; Delete files in Documents and Settings\<user>\SecondLife 489; Delete files in Documents and Settings\<user>\SecondLife
@@ -522,21 +537,21 @@ RMDir /r "$WINDIR\Application Data\SecondLife"
522 537
523FunctionEnd 538FunctionEnd
524 539
525;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 540;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
526; Close the program, if running. Modifies no variables. 541; Close the program, if running. Modifies no variables.
527; Allows user to bail out of uninstall process. 542; Allows user to bail out of uninstall process.
528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
529Function un.CloseSecondLife 544Function un.CloseSecondLife
530 Push $0 545 Push $0
531 FindWindow $0 "Second Life" "" 546 FindWindow $0 "Second Life" ""
532 IntCmp $0 0 DONE 547 IntCmp $0 0 DONE
533 MessageBox MB_OKCANCEL "Second Life can't be uninstalled while it is already running.$\n$\nFinish what you're doing then select OK to close Second Life and continue.$\nSelect CANCEL to cancel installation." IDOK CLOSE IDCANCEL CANCEL_UNINSTALL 548 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL
534 549
535 CANCEL_UNINSTALL: 550 CANCEL_UNINSTALL:
536 Quit 551 Quit
537 552
538 CLOSE: 553 CLOSE:
539 DetailPrint "Waiting for Second Life to shut down..." 554 DetailPrint $(CloseSecondLifeUnInstDP)
540 SendMessage $0 16 0 0 555 SendMessage $0 16 0 0
541 556
542 LOOP: 557 LOOP:
@@ -550,7 +565,7 @@ Function un.CloseSecondLife
550 Return 565 Return
551FunctionEnd 566FunctionEnd
552 567
553;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 568;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
554;;; Delete the installed files 569;;; Delete the installed files
555;;; This deletes the uninstall executable, but it works 570;;; This deletes the uninstall executable, but it works
556;;; because it is copied to temp directory before running 571;;; because it is copied to temp directory before running
@@ -558,7 +573,7 @@ FunctionEnd
558;;; Note: You must list all files here, because we only 573;;; Note: You must list all files here, because we only
559;;; want to delete our files, not things users left in the 574;;; want to delete our files, not things users left in the
560;;; application directories. 575;;; application directories.
561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 576;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
562Function un.ProgramFiles 577Function un.ProgramFiles
563 578
564;; Remove mozilla file first so recursive directory deletion doesn't get hung up 579;; Remove mozilla file first so recursive directory deletion doesn't get hung up
@@ -597,26 +612,26 @@ RMDir "$INSTDIR"
597IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER 612IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
598 613
599FOLDERFOUND: 614FOLDERFOUND:
600 MessageBox MB_YESNO "There are still files in your SecondLife program directory.$\n$\nThese are possibly files you created or moved to:$\n$INSTDIR$\n$\nDo you want to remove them?" IDNO NOFOLDER 615 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER
601 RMDir /r "$INSTDIR" 616 RMDir /r "$INSTDIR"
602 617
603NOFOLDER: 618NOFOLDER:
604 619
605FunctionEnd 620FunctionEnd
606 621
607;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 622;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
608;;; Uninstall settings 623;;; Uninstall settings
609;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
610UninstallText "This will uninstall Second Life ${VERSION_LONG} from your system." 625UninstallText $(UninstallTextMsg)
611ShowUninstDetails show 626ShowUninstDetails show
612 627
613;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 628;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
614;;; Uninstall section 629;;; Uninstall section
615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 630;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
616Section Uninstall 631Section Uninstall
617 632
618; Start with some default values. 633; Start with some default values.
619StrCpy $INSTFLAGS "${INSTFLAGS}" 634StrCpy $INSTFLAGS ""
620StrCpy $INSTPROG "${INSTNAME}" 635StrCpy $INSTPROG "${INSTNAME}"
621StrCpy $INSTEXE "${INSTEXE}" 636StrCpy $INSTEXE "${INSTEXE}"
622StrCpy $INSTSHORTCUT "${SHORTCUT}" 637StrCpy $INSTSHORTCUT "${SHORTCUT}"
@@ -629,9 +644,10 @@ SetShellVarContext all
629; Make sure we're not running 644; Make sure we're not running
630Call un.CloseSecondLife 645Call un.CloseSecondLife
631 646
632; Clean up registry keys 647; Clean up registry keys (these should all be !defines somewhere)
633DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" 648DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG"
634DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" 649DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG"
650DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language"
635 651
636; Clean up shortcuts 652; Clean up shortcuts
637Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*" 653Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
@@ -652,7 +668,7 @@ Call un.ProgramFiles
652 668
653SectionEnd ; end of uninstall section 669SectionEnd ; end of uninstall section
654 670
655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 671;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
656; (From the NSIS wiki, DK) 672; (From the NSIS wiki, DK)
657; GetParameterValue 673; GetParameterValue
658; 674;
@@ -667,7 +683,7 @@ SectionEnd ; end of uninstall section
667; or: 683; or:
668; foo.exe /S "/L=1033" /D="C:\Program Files\Foo" 684; foo.exe /S "/L=1033" /D="C:\Program Files\Foo"
669; gpv "/L=" "1033" 685; gpv "/L=" "1033"
670;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 686;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
671 687
672 !macro GetParameterValue SWITCH DEFAULT 688 !macro GetParameterValue SWITCH DEFAULT
673 Push $0 689 Push $0
@@ -770,7 +786,7 @@ Function un.GetProgramName
770 !insertmacro GetParameterValue "/P=" "SecondLife" 786 !insertmacro GetParameterValue "/P=" "SecondLife"
771FunctionEnd 787FunctionEnd
772 788
773;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
774; (From the NSIS documentation, JC) 790; (From the NSIS documentation, JC)
775; GetWindowsVersion 791; GetWindowsVersion
776; 792;
@@ -787,8 +803,7 @@ FunctionEnd
787; Call GetWindowsVersion 803; Call GetWindowsVersion
788; Pop $R0 804; Pop $R0
789; ; at this point $R0 is "NT 4.0" or whatnot 805; ; at this point $R0 is "NT 4.0" or whatnot
790;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 806;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
791
792Function GetWindowsVersion 807Function GetWindowsVersion
793 808
794 Push $R0 809 Push $R0
@@ -860,3 +875,61 @@ Function GetWindowsVersion
860 Exch $R0 875 Exch $R0
861 876
862FunctionEnd 877FunctionEnd
878
879;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
880;; Note: to add new languages, add a language file include to the list
881;; at the top of this file, add an entry to the menu and then add an
882;; entry to the language ID selector below
883;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
884Function .onInit
885
886 ; read the language from registry (ok if not there) and set langauge menu
887 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
888 StrCpy $LANGUAGE $0
889
890 Push ""
891 Push ${LANG_ENGLISH}
892 Push English
893# Push ${LANG_GERMAN}
894# Push German
895# Push ${LANG_JAPANESE}
896# Push Japanese
897 Push ${LANG_KOREAN}
898 Push Korean
899 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
900 LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
901 Pop $LANGUAGE
902 StrCmp $LANGUAGE "cancel" 0 +2
903 Abort
904
905 ; save language in registry
906 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE
907
908 ; generate language ID that will be used as a command line arg
909 StrCmp $LANGUAGE "1042" 0 +3
910 StrCpy $LANGFLAGS " -set SystemLanguage ko"
911 Goto EndOfFunc
912# StrCmp $LANGUAGE "1041" 0 +3
913# StrCpy $LANGFLAGS " -set SystemLanguage ja"
914# Goto EndOfFunc
915# StrCmp $LANGUAGE "1031" 0 +3
916# StrCpy $LANGFLAGS " -set SystemLanguage de"
917# Goto EndOfFunc
918 StrCmp $LANGUAGE "1033" 0 +3
919 StrCpy $LANGFLAGS " -set SystemLanguage en-us"
920 Goto EndOfFunc
921
922 EndOfFunc:
923
924FunctionEnd
925
926;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
927Function un.onInit
928
929 ; read language from registry and set for ininstaller
930 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
931 StrCpy $LANGUAGE $0
932
933FunctionEnd
934
935;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file