@@ -63,8 +63,8 @@ Source: "compiler:Setup.e32"; DestDir: "{tmp}"; Flags: deleteafterinstall
63
63
Source : " compiler:SetupLdr.e32" ; DestDir : " {tmp} " ; Flags : deleteafterinstall
64
64
65
65
[Run]
66
- Filename : " {tmp} \{#OTP_32_EXE}" ; Flags : hidewizard ; StatusMsg : " Installing {#OTP_32_NAME}..." ; Tasks: erlang\32
67
- Filename : " {tmp} \{#OTP_64_EXE}" ; Flags : hidewizard ; StatusMsg : " Installing {#OTP_64_NAME}..." ; Tasks: erlang\64
66
+ Filename : " {tmp} \{#OTP_32_EXE}" ; Flags : hidewizard ; StatusMsg : " Installing {#OTP_32_NAME}..." ; Tasks: erlang\32 ; AfterInstall : AppendErlangPathIfTaskSelected(False)
67
+ Filename : " {tmp} \{#OTP_64_EXE}" ; Flags : hidewizard ; StatusMsg : " Installing {#OTP_64_NAME}..." ; Tasks: erlang\64 ; AfterInstall : AppendErlangPathIfTaskSelected(True)
68
68
Filename : " {tmp} \7za.exe" ; Parameters : " x -oelixir Precompiled.zip" ; WorkingDir : " {tmp} " ; StatusMsg : " Extracting Precompiled.zip archive..."
69
69
Filename : " {tmp} \ISCC.exe" ; Parameters : " /dElixirVersion={code:ConstGetSelectedReleaseVersion} /dSkipWelcome /dNoCompression Elixir.iss" ; WorkingDir : " {tmp} " ; StatusMsg : " Compiling Elixir installer..."
70
70
Filename : " {tmp} \Output\elixir-v{code:ConstGetSelectedReleaseVersion}-setup.exe" ; Flags : nowait ; StatusMsg : " Starting Elixir installer..."
@@ -210,29 +210,29 @@ begin
210
210
Result := GetVersion(GetSelectedRelease());
211
211
end ;
212
212
213
- function GetErlangPath : String;
213
+ function GetErlangPath (Of64Bit: Boolean) : String;
214
214
var
215
215
Versions: TArrayOfString;
216
216
Path: String;
217
217
begin
218
218
Result := ' ' ;
219
219
220
- if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang' , Versions) then begin
221
- if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang\' + ' {#OTP_ERTS_VERSION}' , ' ' , Path) then begin
222
- Result := Path;
223
- end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1 ], ' ' , Path) then begin
224
- Result := Path;
225
- end ;
226
- end ;
227
-
228
- if IsWin64 then begin
220
+ if Of64Bit then begin
229
221
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, ' SOFTWARE\Wow6432Node\Ericsson\Erlang' , Versions) then begin
230
222
if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Wow6432Node\Ericsson\Erlang\' + ' {#OTP_ERTS_VERSION}' , ' ' , Path) then begin
231
223
Result := Path;
232
224
end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Wow6432Node\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1 ], ' ' , Path) then begin
233
225
Result := Path;
234
226
end ;
235
227
end ;
228
+ end else begin
229
+ if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang' , Versions) then begin
230
+ if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang\' + ' {#OTP_ERTS_VERSION}' , ' ' , Path) then begin
231
+ Result := Path;
232
+ end else if RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SOFTWARE\Ericsson\Erlang\' + Versions[GetArrayLength(Versions) - 1 ], ' ' , Path) then begin
233
+ Result := Path;
234
+ end ;
235
+ end ;
236
236
end ;
237
237
end ;
238
238
@@ -243,14 +243,30 @@ end;
243
243
244
244
function CheckToInstallErlang : Boolean;
245
245
begin
246
- Result := (GetErlangPath = ' ' );
246
+ Result := (GetErlangPath(False) = ' ' ) or (GetErlangPath(True) = ' ' );
247
247
end ;
248
248
249
249
function CheckToAddErlangPath : Boolean;
250
250
begin
251
251
Result := not ErlangInPath;
252
252
end ;
253
253
254
+ procedure AppendErlangPathIfTaskSelected (Of64Bit: Boolean);
255
+ var
256
+ Path: String;
257
+ RegValue: String;
258
+ begin
259
+ if IsTaskSelected(' erlpath' ) then begin
260
+ Path := GetErlangPath(Of64Bit);
261
+ if not (Path = ' ' ) then begin
262
+ RegQueryStringValue(HKEY_LOCAL_MACHINE, ' SYSTEM\CurrentControlSet\Control\Session Manager\Environment' , ' Path' , RegValue);
263
+ if Pos(Path, RegValue) = 0 then begin
264
+ RegWriteStringValue(HKEY_LOCAL_MACHINE, ' SYSTEM\CurrentControlSet\Control\Session Manager\Environment' , ' Path' , RegValue + ' ;' + Path + ' \bin' );
265
+ end ;
266
+ end ;
267
+ end ;
268
+ end ;
269
+
254
270
procedure CurPageChanged (CurPageID: Integer);
255
271
begin
256
272
if CurPageID = wpPreparing then begin
0 commit comments