Add versions sorting to VulkanSDK selection on macOS
This commit is contained in:
@@ -51,7 +51,8 @@ public sealed class VulkanSdk : Sdk
|
||||
var subDirs = Directory.GetDirectories(path);
|
||||
if (subDirs.Length != 0)
|
||||
{
|
||||
path = Path.Combine(subDirs[0], "macOS");
|
||||
Flax.Build.Utilities.SortVersionDirectories(subDirs);
|
||||
path = Path.Combine(subDirs.Last(), "macOS");
|
||||
if (Directory.Exists(path))
|
||||
vulkanSdk = path;
|
||||
}
|
||||
|
||||
@@ -42,19 +42,7 @@ namespace Flax.Build.Platforms
|
||||
var subdirs = Directory.GetDirectories(Path.Combine(AndroidSdk.Instance.RootPath, "ndk"));
|
||||
if (subdirs.Length != 0)
|
||||
{
|
||||
Array.Sort(subdirs, (a, b) =>
|
||||
{
|
||||
Version va, vb;
|
||||
if (Version.TryParse(a, out va))
|
||||
{
|
||||
if (Version.TryParse(b, out vb))
|
||||
return va.CompareTo(vb);
|
||||
return 1;
|
||||
}
|
||||
if (Version.TryParse(b, out vb))
|
||||
return -1;
|
||||
return 0;
|
||||
});
|
||||
Utilities.SortVersionDirectories(subdirs);
|
||||
sdkPath = subdirs.Last();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -746,5 +746,28 @@ namespace Flax.Build
|
||||
text = text.Replace(findWhat, replaceWith);
|
||||
File.WriteAllText(file, text);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sorts the directories by name assuming they contain version text. Sorted from lowest to the highest version.
|
||||
/// </summary>
|
||||
/// <param name="file">The paths array to sort.</param>
|
||||
public static void SortVersionDirectories(string[] paths)
|
||||
{
|
||||
if (paths == null || paths.Length == 0)
|
||||
return;
|
||||
Array.Sort(paths, (a, b) =>
|
||||
{
|
||||
Version va, vb;
|
||||
if (Version.TryParse(a, out va))
|
||||
{
|
||||
if (Version.TryParse(b, out vb))
|
||||
return va.CompareTo(vb);
|
||||
return 1;
|
||||
}
|
||||
if (Version.TryParse(b, out vb))
|
||||
return -1;
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user