diff --git a/Source/Engine/GraphicsDevice/Vulkan/GraphicsDeviceVulkan.Build.cs b/Source/Engine/GraphicsDevice/Vulkan/GraphicsDeviceVulkan.Build.cs
index 252652978..9ffa68272 100644
--- a/Source/Engine/GraphicsDevice/Vulkan/GraphicsDeviceVulkan.Build.cs
+++ b/Source/Engine/GraphicsDevice/Vulkan/GraphicsDeviceVulkan.Build.cs
@@ -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;
}
diff --git a/Source/Tools/Flax.Build/Platforms/Android/AndroidNdk.cs b/Source/Tools/Flax.Build/Platforms/Android/AndroidNdk.cs
index 3d7359d93..ba1a5558d 100644
--- a/Source/Tools/Flax.Build/Platforms/Android/AndroidNdk.cs
+++ b/Source/Tools/Flax.Build/Platforms/Android/AndroidNdk.cs
@@ -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();
}
}
diff --git a/Source/Tools/Flax.Build/Utilities/Utilities.cs b/Source/Tools/Flax.Build/Utilities/Utilities.cs
index af6777199..268fb06c9 100644
--- a/Source/Tools/Flax.Build/Utilities/Utilities.cs
+++ b/Source/Tools/Flax.Build/Utilities/Utilities.cs
@@ -746,5 +746,28 @@ namespace Flax.Build
text = text.Replace(findWhat, replaceWith);
File.WriteAllText(file, text);
}
+
+ ///
+ /// Sorts the directories by name assuming they contain version text. Sorted from lowest to the highest version.
+ ///
+ /// The paths array to sort.
+ 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;
+ });
+ }
}
}