Merge topic 'FindVulkan-debug-libraries'

74bb57cae9 FindVulkan: Search for dxc / volk debug libraries
7c7c7721e9 FindVulkan: Fix test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10475
This commit is contained in:
Brad King 2025-03-20 13:14:59 +00:00 committed by Kitware Robot
commit 0a69e10cbf
3 changed files with 66 additions and 28 deletions

View File

@ -461,7 +461,13 @@ if(volk IN_LIST Vulkan_FIND_COMPONENTS)
NAMES volk
HINTS
${_Vulkan_hint_library_search_paths})
mark_as_advanced(Vulkan_Volk_LIBRARY)
mark_as_advanced(Vulkan_volk_LIBRARY)
find_library(Vulkan_volk_DEBUG_LIBRARY
NAMES volkd
HINTS
${_Vulkan_hint_library_search_paths})
mark_as_advanced(Vulkan_volk_DEBUG_LIBRARY)
endif()
if (dxc IN_LIST Vulkan_FIND_COMPONENTS)
@ -471,6 +477,12 @@ if (dxc IN_LIST Vulkan_FIND_COMPONENTS)
${_Vulkan_hint_library_search_paths})
mark_as_advanced(Vulkan_dxc_LIBRARY)
find_library(Vulkan_dxc_DEBUG_LIBRARY
NAMES dxcompilerd
HINTS
${_Vulkan_hint_library_search_paths})
mark_as_advanced(Vulkan_dxc_DEBUG_LIBRARY)
find_program(Vulkan_dxc_EXECUTABLE
NAMES dxc
HINTS
@ -828,17 +840,27 @@ if(Vulkan_FOUND)
endif()
endif()
if(Vulkan_volk_LIBRARY AND NOT TARGET Vulkan::volk)
if((Vulkan_volk_LIBRARY OR Vulkan_volk_DEBUG_LIBRARY) AND NOT TARGET Vulkan::volk)
add_library(Vulkan::volk STATIC IMPORTED)
set_property(TARGET Vulkan::volk
PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
if(Vulkan_volk_LIBRARY)
set_property(TARGET Vulkan::volk APPEND
PROPERTY
IMPORTED_CONFIGURATIONS Release)
set_property(TARGET Vulkan::volk APPEND
set_property(TARGET Vulkan::volk
PROPERTY
IMPORTED_LOCATION_RELEASE "${Vulkan_volk_LIBRARY}")
endif()
if(Vulkan_volk_DEBUG_LIBRARY)
set_property(TARGET Vulkan::volk APPEND
PROPERTY
IMPORTED_CONFIGURATIONS Debug)
set_property(TARGET Vulkan::volk
PROPERTY
IMPORTED_LOCATION_DEBUG "${Vulkan_volk_DEBUG_LIBRARY}")
endif()
if (NOT WIN32)
set_property(TARGET Vulkan::volk APPEND
@ -847,18 +869,29 @@ if(Vulkan_FOUND)
endif()
endif()
if (Vulkan_dxc_LIBRARY AND NOT TARGET Vulkan::dxc_lib)
if ((Vulkan_dxc_LIBRARY OR Vulkan_dxc_DEBUG_LIBRARY) AND NOT TARGET Vulkan::dxc_lib)
add_library(Vulkan::dxc_lib STATIC IMPORTED)
set_property(TARGET Vulkan::dxc_lib
PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
if(Vulkan_dxc_LIBRARY)
set_property(TARGET Vulkan::dxc_lib APPEND
PROPERTY
IMPORTED_CONFIGURATIONS Release)
set_property(TARGET Vulkan::dxc_lib APPEND
set_property(TARGET Vulkan::dxc_lib
PROPERTY
IMPORTED_LOCATION_RELEASE "${Vulkan_dxc_LIBRARY}")
endif()
if(Vulkan_dxc_DEBUG_LIBRARY)
set_property(TARGET Vulkan::dxc_lib APPEND
PROPERTY
IMPORTED_CONFIGURATIONS Debug)
set_property(TARGET Vulkan::dxc_lib
PROPERTY
IMPORTED_LOCATION_DEBUG "${Vulkan_dxc_DEBUG_LIBRARY}")
endif()
endif()
if(Vulkan_dxc_EXECUTABLE AND NOT TARGET Vulkan::dxc_exe)
add_executable(Vulkan::dxc_exe IMPORTED)

View File

@ -1,7 +1,12 @@
#include <cassert>
#include <cstdint>
#include <cstdio>
#ifdef _WIN32
# include <Windows.h>
#endif
#include "dxc/dxcapi.h"
#include "printf.h"
int main()
{

View File

@ -15,7 +15,7 @@ int main()
try {
// initialize dynamic dispatcher
vk::DynamicLoader dl;
vk::detail::DynamicLoader dl;
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr =
dl.getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
VULKAN_HPP_DEFAULT_DISPATCHER.init(vkGetInstanceProcAddr);