Skip to content

Commit a6990ed

Browse files
authored
Merge branch 'main' into feature/sdk-manager
2 parents 88d966e + e0a9393 commit a6990ed

5 files changed

Lines changed: 55 additions & 9 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
namespace Xamarin.Android.Tools
5+
{
6+
/// <summary>
7+
/// Constants for environment variable names used by Android SDK tooling.
8+
/// See https://developer.android.com/tools/variables#envar
9+
/// </summary>
10+
internal static class EnvironmentVariableNames
11+
{
12+
/// <summary>
13+
/// The preferred variable for the Android SDK root directory.
14+
/// </summary>
15+
public const string AndroidHome = "ANDROID_HOME";
16+
17+
/// <summary>
18+
/// Deprecated — use <see cref="AndroidHome"/> instead.
19+
/// Retained for reading existing environment configurations.
20+
/// </summary>
21+
[System.Obsolete ("ANDROID_SDK_ROOT is deprecated. Use ANDROID_HOME instead.")]
22+
public const string AndroidSdkRoot = "ANDROID_SDK_ROOT";
23+
24+
/// <summary>
25+
/// The JDK installation directory.
26+
/// </summary>
27+
public const string JavaHome = "JAVA_HOME";
28+
29+
/// <summary>
30+
/// Internal/override JDK path. Takes precedence over JAVA_HOME when set.
31+
/// </summary>
32+
public const string JiJavaHome = "JI_JAVA_HOME";
33+
34+
/// <summary>
35+
/// Executable search paths.
36+
/// </summary>
37+
public const string Path = "PATH";
38+
39+
/// <summary>
40+
/// Executable file extensions (Windows).
41+
/// </summary>
42+
public const string PathExt = "PATHEXT";
43+
}
44+
}

src/Xamarin.Android.Tools.AndroidSdk/JdkInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ public static IEnumerable<JdkInfo> GetKnownSystemJdkInfos (Action<TraceLevel, st
328328
{
329329
logger = logger ?? AndroidSdkInfo.DefaultConsoleLogger;
330330

331-
return GetEnvironmentVariableJdks ("JI_JAVA_HOME", logger)
331+
return GetEnvironmentVariableJdks (EnvironmentVariableNames.JiJavaHome, logger)
332332
.Concat (JdkLocations.GetPreferredJdks (logger))
333333
.Concat (XAPrepareJdkLocations.GetXAPrepareJdks (logger))
334334
.Concat (MicrosoftOpenJdkLocations.GetMicrosoftOpenJdks (logger))
@@ -337,7 +337,7 @@ public static IEnumerable<JdkInfo> GetKnownSystemJdkInfos (Action<TraceLevel, st
337337
.Concat (OracleJdkLocations.GetOracleJdks (logger))
338338
.Concat (VSAndroidJdkLocations.GetVSAndroidJdks (logger))
339339
.Concat (MicrosoftDistJdkLocations.GetMicrosoftDistJdks (logger))
340-
.Concat (GetEnvironmentVariableJdks ("JAVA_HOME", logger))
340+
.Concat (GetEnvironmentVariableJdks (EnvironmentVariableNames.JavaHome, logger))
341341
.Concat (GetPathEnvironmentJdks (logger))
342342
.Concat (GetLibexecJdks (logger))
343343
.Concat (GetJavaAlternativesJdks (logger))

src/Xamarin.Android.Tools.AndroidSdk/ProcessUtils.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static class ProcessUtils
1818

1919
static ProcessUtils ()
2020
{
21-
var pathExt = Environment.GetEnvironmentVariable ("PATHEXT");
21+
var pathExt = Environment.GetEnvironmentVariable (EnvironmentVariableNames.PathExt);
2222
var pathExts = pathExt?.Split (new char [] { Path.PathSeparator }, StringSplitOptions.RemoveEmptyEntries) ?? new string [0];
2323

2424
ExecutableFileExtensions = pathExts;
@@ -205,7 +205,7 @@ static string JoinArguments (string[] args)
205205

206206
internal static IEnumerable<string> FindExecutablesInPath (string executable)
207207
{
208-
var path = Environment.GetEnvironmentVariable ("PATH") ?? "";
208+
var path = Environment.GetEnvironmentVariable (EnvironmentVariableNames.Path) ?? "";
209209
var pathDirs = path.Split (new char[] { Path.PathSeparator }, StringSplitOptions.RemoveEmptyEntries);
210210

211211
foreach (var dir in pathDirs) {

src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkBase.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ abstract class AndroidSdkBase
1616
static readonly char[] SourcePropertiesKeyValueSplit = new char[] { '=' };
1717

1818
// Per https://developer.android.com/studio/command-line/variables#envar
19-
protected static readonly string[] AndroidSdkEnvVars = {"ANDROID_HOME", "ANDROID_SDK_ROOT"};
19+
#pragma warning disable CS0618 // ANDROID_SDK_ROOT is obsolete but still needed for compat
20+
protected static readonly string[] AndroidSdkEnvVars = {EnvironmentVariableNames.AndroidHome, EnvironmentVariableNames.AndroidSdkRoot};
21+
#pragma warning restore CS0618
2022

2123
string[]? allAndroidSdks;
2224

src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkWindows.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,16 @@ public override void Initialize (string? androidSdkPath = null, string? androidN
185185

186186
var jdkPath = JavaSdkPath;
187187
if (!string.IsNullOrEmpty (jdkPath)) {
188-
var cur = Environment.GetEnvironmentVariable ("JAVA_HOME");
188+
var cur = Environment.GetEnvironmentVariable (EnvironmentVariableNames.JavaHome);
189189
if (!string.IsNullOrEmpty (cur))
190-
Environment.SetEnvironmentVariable ("JAVA_HOME", jdkPath);
190+
Environment.SetEnvironmentVariable (EnvironmentVariableNames.JavaHome, jdkPath);
191191

192192
var javaBinPath = this.JavaBinPath;
193193
if (!string.IsNullOrEmpty (javaBinPath)) {
194-
var environmentPath = Environment.GetEnvironmentVariable ("PATH") ?? "";
194+
var environmentPath = Environment.GetEnvironmentVariable (EnvironmentVariableNames.Path) ?? "";
195195
if (!environmentPath.Contains (javaBinPath)) {
196196
var processPath = string.Concat (javaBinPath, Path.PathSeparator, environmentPath);
197-
Environment.SetEnvironmentVariable ("PATH", processPath);
197+
Environment.SetEnvironmentVariable (EnvironmentVariableNames.Path, processPath);
198198
}
199199
}
200200
}

0 commit comments

Comments
 (0)