d989ddd6693726b5e035d16f813541323ebbac62
[fw/altos] / altosui / Instdrv / NSIS / Includes / java.nsh
1 !include WordFunc.nsh
2
3 ; Definitions for Java Detection
4
5 !define JRE_VERSION "1.6"
6 !define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586.exe"
7 !define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52249&/jre-6u27-windows-x64.exe"
8
9 Var JavaDownload
10 Var JavaBits
11
12 Function GetJRE
13         ${If} ${RunningX64}
14            StrCpy $JavaDownload ${JRE64_URL}
15            StrCpy $JavaBits "64"
16         ${Else}
17            StrCpy $JavaDownload ${JRE32_URL}
18            StrCpy $JavaBits "32"
19         ${EndIf}
20
21         MessageBox MB_OK "This product uses Java ${JRE_VERSION}, \
22                         $JavaBits bits, it will now \
23                         be downloaded and installed"
24
25         StrCpy $2 "$TEMP\Java Runtime Environment.exe"
26         nsisdl::download /TIMEOUT=30000 $JavaDownload $2
27         Pop $R0 ;Get the return value
28                 StrCmp $R0 "success" +3
29                 MessageBox MB_OK "Download failed: $R0"
30                 Quit
31         ExecWait $2
32         Delete $2
33 FunctionEnd
34
35 Function DoDetectJRE
36
37   DetailPrint "Desired Java version ${JRE_VERSION}"
38
39   ; Check in HKCU for CurrentVersion
40
41   ClearErrors
42   ReadRegStr $2 HKCU "SOFTWARE\JavaSoft\Java Runtime Environment" \
43              "CurrentVersion"
44
45   IfErrors hkcuwow_version
46
47   DetailPrint "HKEY_CURRENT_USER Java version $2"
48
49   ${VersionCompare} $2 ${JRE_VERSION} $3
50
51   IntCmp $3 1 yes yes no
52
53 hkcuwow_version:
54
55   ; Check in HKCU Wow6432Node for CurrentVersion
56
57   ClearErrors
58   ReadRegStr $2 HKCU "SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" \
59              "CurrentVersion"
60
61   Iferrors hklm_version
62
63   DetailPrint "HKEY_CURRENT_USER Wow6432Node Java version $2"
64
65   ${VersionCompare} $2 ${JRE_VERSION} $3
66
67   IntCmp $3 1 yes yes no
68
69 hklm_version:
70
71   ; Check in HKLM for CurrentVersion
72
73   ClearErrors
74   ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
75              "CurrentVersion"
76   
77   IfErrors hklmwow_version
78
79   DetailPrint "HKEY_LOCAL_MACHINE Java version $2"
80
81   ${VersionCompare} $2 ${JRE_VERSION} $3
82
83   IntCmp $3 1 yes yes no
84
85 hklmwow_version:
86
87   ; Check in HKLM Wow6432Node for CurrentVersion
88
89   ClearErrors
90   ReadRegStr $2 HKLM "SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" \
91              "CurrentVersion"
92
93   Iferrors hkcu_any
94
95   DetailPrint "HKEY_LOCAL_MACHINE Wow6432Node Java version $2"
96
97   ${VersionCompare} $2 ${JRE_VERSION} $3
98
99   IntCmp $3 1 yes yes no
100
101 hkcu_any:
102
103   ; Check in HKCU for any Java install
104
105   StrCpy $0 0
106
107 hkcu_any_loop:
108   EnumRegKey $1 HKCU "SOFTWARE\JavaSoft" $0
109
110   StrCmp $1 "Java Runtime Environment" found_hkcu
111
112   StrCmp $1 "" hklm_any
113   
114   IntOp $0 $0 + 1
115
116   Goto hkcu_any_loop
117   
118 found_hkcu:
119
120   DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1"
121
122   Goto maybe
123
124 hklm_any:
125
126   ; Check in HKCU for any Java install
127
128   StrCpy $0 0
129
130 hklm_any_loop:
131   EnumRegKey $1 HKLM "SOFTWARE\JavaSoft" $0
132
133   StrCmp $1 "Java Runtime Environment" found_hklm
134
135   StrCmp $1 "" no
136   
137   IntOp $0 $0 + 1
138
139   Goto hklm_any_loop
140   
141 found_hklm:
142
143   DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1"
144
145   Goto maybe
146
147 yes:
148   StrCpy $0 2
149   Goto done
150
151 maybe:
152   StrCpy $0 1
153   Goto done
154
155 no:
156   StrCpy $0 0
157   Goto done  
158
159 done:
160
161 FunctionEnd
162
163 var dialog
164 var hwnd
165 var null
166
167 var install
168 var quit
169 var skip
170
171 Function DetectJRE
172
173   Call DoDetectJRE
174
175   IntCmp $0 1 ask_maybe ask_no yes
176
177 ask_no:
178   StrCpy $0 "No Java detected. Download and install?"
179   Goto ask
180
181 ask_maybe:
182   StrCpy $0 "Cannot determine installed Java version. Download and install?"
183   Goto ask
184
185 ask:
186   MessageBox MB_YESNOCANCEL $0 IDYES do_java IDNO skip_java
187
188 bail:
189   Abort
190
191 do_java:
192   Call GetJRE
193
194
195 skip_java:
196 yes:
197
198 FunctionEnd