1 |
|
2 |
; --- UAC NIGHTMARES --- |
3 |
; Ideally this would default to 'current' for user-level installs and 'all' for admin-level installs. |
4 |
; There are problems to be aware of, however! |
5 |
; |
6 |
; * If the user is an admin, Windows Vista/7 will DEFAULT to an "all" shell context (installing shortcuts |
7 |
; for all users), even if we don't want it to (which causes the uninstaller to fail!) |
8 |
; * If the user is not an admin, setting Shell Context to all will cause the installer to fail because the |
9 |
; user won't have permission enough to install it at all (sigh). |
10 |
; |
11 |
; For now we just require Admin rights to install PCSX2. An ideal solution would be to use our IsUserAdmin |
12 |
; function to auto-detect and modify nsis installer behavior accordingly. |
13 |
; |
14 |
; (note! the SetShellVarContext use in the uninstaller section must match this one!) |
15 |
|
16 |
SetShellVarContext all |
17 |
;SetShellVarContext current |
18 |
|
19 |
SetOutPath "$INSTDIR" |
20 |
|
21 |
!insertmacro UNINSTALL.LOG_OPEN_INSTALL |
22 |
File /oname=${APP_EXE} ..\bin\pcsx2.exe |
23 |
;File /nonfatal /oname=pcsx2-dev-r${SVNREV}.exe ..\bin\pcsx2-dev.exe |
24 |
|
25 |
; ------------------------------------------ |
26 |
; -- Shared Core Components -- |
27 |
; ------------------------------------------ |
28 |
; (Binaries, shared DLLs, null plugins, game database, languages, etc) |
29 |
|
30 |
; Note that v3 pthreads is compatible with v4 pthreads, so we just copy v4 oover both |
31 |
; filenames. This allows many older plugin versions to continue to work. (note that |
32 |
; v3 will be removed for 0.9.8). |
33 |
|
34 |
File ..\bin\w32pthreads.v4.dll |
35 |
File /oname=w32pthreads.v3.dll ..\bin\w32pthreads.v4.dll |
36 |
File ..\bin\GameIndex.dbf |
37 |
|
38 |
!insertmacro UNINSTALL.LOG_CLOSE_INSTALL |
39 |
|
40 |
SetOutPath "$INSTDIR\Plugins" |
41 |
|
42 |
!insertmacro UNINSTALL.LOG_OPEN_INSTALL |
43 |
; NULL plugins are required, because the PCSX2 plugin selector needs a dummy plugin in every slot |
44 |
; in order to run (including CDVD!) -- and really there should be more but we don't have working |
45 |
; SPU2 null plugins right now. |
46 |
|
47 |
File ..\bin\Plugins\GSnull.dll |
48 |
;File ..\bin\Plugins\SPU2null.dll |
49 |
File ..\bin\Plugins\USBnull.dll |
50 |
File ..\bin\Plugins\DEV9null.dll |
51 |
File ..\bin\Plugins\FWnull.dll |
52 |
File ..\bin\Plugins\CDVDnull.dll |
53 |
!insertmacro UNINSTALL.LOG_CLOSE_INSTALL |
54 |
|
55 |
; In 0.9.7 there is only English, so including the other mo files (for now) is pointless. |
56 |
; This code will be re-enabled when the new GUI is translated. |
57 |
|
58 |
!if ${INC_LANGS} > 0 |
59 |
SetOutPath $INSTDIR\Langs |
60 |
!insertmacro UNINSTALL.LOG_OPEN_INSTALL |
61 |
File /nonfatal /r ..\bin\Langs\*.mo |
62 |
!insertmacro UNINSTALL.LOG_CLOSE_INSTALL |
63 |
!endif |
64 |
|
65 |
|
66 |
; ------------------------------------------ |
67 |
; -- Registry Section -- |
68 |
; ------------------------------------------ |
69 |
|
70 |
; Write the installation path into the registry |
71 |
WriteRegStr HKLM Software\PCSX2 "Install_Dir" "$INSTDIR" |
72 |
|
73 |
; Write the uninstall keys for Windows |
74 |
WriteRegStr HKLM "${INSTDIR_REG_KEY}" "DisplayName" "PCSX2 - Playstation 2 Emulator" |
75 |
WriteRegStr HKLM "${INSTDIR_REG_KEY}" "UninstallString" "${UNINST_EXE}" |
76 |
WriteRegDWORD HKLM "${INSTDIR_REG_KEY}" "NoModify" 1 |
77 |
WriteRegDWORD HKLM "${INSTDIR_REG_KEY}" "NoRepair" 1 |
78 |
WriteUninstaller "${UNINST_EXE}" |