Fix using Vulkan SDK header from system when cross-compiling

This commit is contained in:
Wojtek Figat
2023-02-28 15:49:59 +01:00
parent 12b330e4ec
commit 9df7489727
2 changed files with 9 additions and 4 deletions

View File

@@ -88,10 +88,12 @@ public sealed class VulkanSdk : Sdk
/// <summary>
/// Tries the get includes folder path (header files). This handles uppercase and lowercase installations for all platforms.
/// </summary>
/// <param name="platform">Target platform hint.</param>
/// <param name="includesFolderPath">The includes folder path.</param>
/// <returns>True if got valid folder, otherwise false.</returns>
public bool TryGetIncludePath(out string includesFolderPath)
public bool TryGetIncludePath(TargetPlatform platform, out string includesFolderPath)
{
includesFolderPath = string.Empty;
if (IsValid)
{
var vulkanSdk = RootPath;
@@ -99,6 +101,11 @@ public sealed class VulkanSdk : Sdk
// Use system-installed headers
if (vulkanSdk.EndsWith("/include") && Directory.Exists(vulkanSdk))
{
if (platform != Flax.Build.Platform.BuildTargetPlatform)
{
Log.Warning(string.Format("Cannot use system-installed VulkanSDK at {0} when building for platform {1}", vulkanSdk, platform));
return false;
}
includesFolderPath = vulkanSdk;
return true;
}
@@ -123,8 +130,6 @@ public sealed class VulkanSdk : Sdk
foreach (var include in includes)
Log.Warning(string.Format("No Vulkan header files in {0}", include));
}
includesFolderPath = string.Empty;
return false;
}
}

View File

@@ -48,7 +48,7 @@ public class volk : ThirdPartyModule
}
string includesFolderPath;
if (VulkanSdk.Instance.TryGetIncludePath(out includesFolderPath))
if (VulkanSdk.Instance.TryGetIncludePath(options.Platform.Target, out includesFolderPath))
{
options.PublicIncludePaths.Add(includesFolderPath);
}