summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/CMakeLists.txt45
1 files changed, 45 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt
index 93a811b1..c6fffdee 100644
--- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt
+++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt
@@ -187,6 +187,51 @@ else()
list(APPEND PRIVATE_DEPENDENCIES SPIRV-Tools-opt)
endif()
+# find Vulkan SDK
+if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.7")
+ find_package(Vulkan)
+ if(Vulkan_FOUND)
+ get_filename_component(VulkanSDKPath ${Vulkan_LIBRARY} DIRECTORY)
+ set(VulkanSDKPath "${VulkanSDKPath}/..")
+ if(NOT EXISTS "${VulkanSDKPath}")
+ message(FATAL_ERROR "can't get Vulkan SDK path")
+ endif()
+ if(PLATFORM_WIN32)
+ if (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
+ set(Vulkan_BINARY "${VulkanSDKPath}/Bin/dxcompiler.dll")
+ else()
+ set(Vulkan_BINARY "${VulkanSDKPath}/Bin32/dxcompiler.dll")
+ endif()
+ elseif(PLATFORM_LINUX)
+ set(Vulkan_BINARY "${VulkanSDKPath}/bin/dxcompiler.so")
+ endif()
+ endif()
+endif()
+# Try to find Vulkan SDK from environment variable
+if(NOT Vulkan_FOUND)
+ if(EXISTS "$ENV{VULKAN_SDK}")
+ set(Vulkan_FOUND TRUE)
+ if(PLATFORM_WIN32)
+ if (${CMAKE_SIZEOF_VOID_P} EQUAL 8)
+ set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/Lib")
+ set(Vulkan_BINARY "$ENV{VULKAN_SDK}/Bin/dxcompiler.dll")
+ else()
+ set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/Lib32")
+ set(Vulkan_BINARY "$ENV{VULKAN_SDK}/Bin32/dxcompiler.dll")
+ endif()
+ elseif(PLATFORM_LINUX)
+ set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/lib")
+ set(Vulkan_BINARY "$ENV{VULKAN_SDK}/bin/dxcompiler.so")
+ endif()
+ endif()
+endif()
+if(EXISTS ${Vulkan_BINARY})
+ set(HAS_VK_DXIL_COMPILER TRUE CACHE INTERNAL "" FORCE)
+ set(DXC_VK_COMPILER_PATH "${Vulkan_BINARY}" CACHE INTERNAL "" FORCE)
+ target_compile_definitions(Diligent-GraphicsEngineVk-static PRIVATE HAS_VK_DXIL_COMPILER)
+ message(STATUS "Found DXIL compiler for Vulkan")
+endif()
+
if(PLATFORM_WIN32)
# Use Volk
elseif(PLATFORM_MACOS)