FindVulkan.cmake 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Find Vulkan installation
  2. #
  3. # This module defines
  4. # Vulkan_INCLUDE_DIRS
  5. # Vulkan_LIBRARIES
  6. # Vulkan_FOUND
  7. # TODO: Set default install paths for mac/unix
  8. # TODO: Don't hardcode the version (instead use regex or GLOB to match latest)
  9. set(Vulkan_INSTALL_DIRS "C:/VulkanSDK/1.0.37.0" CACHE PATH "")
  10. set(Vulkan_INCLUDE_SEARCH_DIRS "${Vulkan_INSTALL_DIRS}/Include")
  11. if(BS_64BIT)
  12. set(Vulkan_LIBRARY_SEARCH_DIRS "${Vulkan_INSTALL_DIRS}/Bin")
  13. else()
  14. set(Vulkan_LIBRARY_SEARCH_DIRS "${Vulkan_INSTALL_DIRS}/Bin32")
  15. endif()
  16. message(STATUS "Looking for Vulkan installation...")
  17. find_path(Vulkan_INCLUDE_DIR vulkan/vulkan.h PATHS ${Vulkan_INCLUDE_SEARCH_DIRS})
  18. find_library(Vulkan_LIBRARY_OPTIMIZED NAMES vulkan-1 PATHS ${Vulkan_LIBRARY_SEARCH_DIRS})
  19. find_library(Vulkan_LIBRARY_DEBUG NAMES vulkan-1 PATHS ${Vulkan_LIBRARY_SEARCH_DIRS})
  20. if(Vulkan_INCLUDE_DIR AND Vulkan_LIBRARY_OPTIMIZED AND Vulkan_LIBRARY_DEBUG)
  21. set(Vulkan_FOUND TRUE)
  22. endif()
  23. if(NOT Vulkan_FOUND)
  24. if(Vulkan_FIND_REQUIRED)
  25. message(FATAL_ERROR "Cannot find Vulkan installation. Try modifying the Vulkan_INSTALL_DIRS path.")
  26. else()
  27. message(WARNING "Cannot find Vulkan installation. Try modifying the Vulkan_INSTALL_DIRS path.")
  28. endif()
  29. else()
  30. message(STATUS "...Vulkan OK.")
  31. endif()
  32. if(Vulkan_FOUND)
  33. add_library(Vulkan STATIC IMPORTED)
  34. set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_DEBUG "${Vulkan_LIBRARY_DEBUG}")
  35. set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_OPTIMIZEDDEBUG "${Vulkan_LIBRARY_DEBUG}")
  36. set_target_properties(Vulkan PROPERTIES IMPORTED_LOCATION_RELEASE "${Vulkan_LIBRARY_OPTIMIZED}")
  37. endif()
  38. mark_as_advanced(
  39. Vulkan_INSTALL_DIRS
  40. Vulkan_INCLUDE_DIR
  41. Vulkan_LIBRARY_OPTIMIZED
  42. Vulkan_LIBRARY_DEBUG)
  43. set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
  44. set(Vulkan_LIBRARIES Vulkan)