فهرست منبع

FindVulkan: Fix finding versions < 1.2.175

Ralf Habacker 4 سال پیش
والد
کامیت
db8bd5965f
1فایلهای تغییر یافته به همراه9 افزوده شده و 4 حذف شده
  1. 9 4
      Modules/FindVulkan.cmake

+ 9 - 4
Modules/FindVulkan.cmake

@@ -143,10 +143,15 @@ if(Vulkan_INCLUDE_DIR)
   if(EXISTS ${VULKAN_CORE_H})
     file(STRINGS  ${VULKAN_CORE_H} VulkanHeaderVersionLine REGEX "^#define VK_HEADER_VERSION ")
     string(REGEX MATCHALL "[0-9]+" VulkanHeaderVersion "${VulkanHeaderVersionLine}")
-    file(STRINGS  ${VULKAN_CORE_H} VulkanHeaderVersionLine REGEX "^#define VK_HEADER_VERSION_COMPLETE ")
-    # "#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)"
-    string(REGEX REPLACE ".*\\([0_9]+[, ]+([0-9]+)[, ]+([0-9]+)[, ].*\\)"
-      "\\1.\\2.${VulkanHeaderVersion}" Vulkan_VERSION "${VulkanHeaderVersionLine}")
+    file(STRINGS  ${VULKAN_CORE_H} VulkanHeaderVersionLine2 REGEX "^#define VK_HEADER_VERSION_COMPLETE ")
+    string(REGEX MATCHALL "[0-9]+" VulkanHeaderVersion2 "${VulkanHeaderVersionLine2}")
+    list(LENGTH VulkanHeaderVersion2 _len)
+    #  versions >= 1.2.175 have an additional numbers in front of e.g. '0, 1, 2' instead of '1, 2'
+    if(_len EQUAL 3)
+        list(REMOVE_AT VulkanHeaderVersion2 0)
+    endif()
+    list(APPEND VulkanHeaderVersion2 ${VulkanHeaderVersion})
+    list(JOIN VulkanHeaderVersion2 "." Vulkan_VERSION)
   endif()
 endif()