protected override IEnumerable <string> GetAllAvailableAndroidSdks() { var preferedSdkPath = PreferedAndroidSdkPath; if (!string.IsNullOrEmpty(preferedSdkPath)) { yield return(preferedSdkPath !); } // Look in PATH foreach (var adb in ProcessUtils.FindExecutablesInPath(Adb)) { var path = Path.GetDirectoryName(adb); // Strip off "platform-tools" var dir = Path.GetDirectoryName(path); if (dir == null) { continue; } yield return(dir); } // Check some hardcoded paths for good measure var macSdkPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Library", "Android", "sdk"); yield return(macSdkPath); }
protected virtual IEnumerable <string> GetAllAvailableAndroidNdks() { // Look in PATH foreach (var ndkStack in ProcessUtils.FindExecutablesInPath(NdkStack)) { var ndkDir = Path.GetDirectoryName(ndkStack); if (string.IsNullOrEmpty(ndkDir)) { continue; } yield return(ndkDir); } // Check for the "ndk-bundle" directory inside other SDK directories foreach (var sdk in GetAllAvailableAndroidSdks()) { if (sdk == AndroidSdkPath) { continue; } var ndkDir = FindBestNDK(sdk); if (string.IsNullOrEmpty(ndkDir)) { continue; } yield return(ndkDir); } }
static IEnumerable <string> GetPathEnvironmentJdkPaths() { foreach (var java in ProcessUtils.FindExecutablesInPath("java")) { var props = GetJavaProperties(java); if (props.TryGetValue("java.home", out var java_homes)) { var java_home = java_homes [0]; // `java -XshowSettings:properties -version 2>&1 | grep java.home` ends with `/jre` on macOS. // We need the parent dir so we can properly lookup the `include` directories if (java_home.EndsWith("jre", StringComparison.OrdinalIgnoreCase)) { java_home = Path.GetDirectoryName(java_home); } yield return(java_home); } } }
protected override IEnumerable <string> GetAllAvailableAndroidNdks() { var preferedNdkPath = PreferedAndroidNdkPath; if (!string.IsNullOrEmpty(preferedNdkPath)) { yield return(preferedNdkPath !); } // Look in PATH foreach (var ndkStack in ProcessUtils.FindExecutablesInPath(NdkStack)) { var ndkDir = Path.GetDirectoryName(ndkStack); if (ValidateAndroidNdkLocation(ndkDir)) { yield return(ndkDir); } } }