1 #.rst: 2 # FindVulkanHeaders 3 # ----------------- 4 # 5 # Try to find Vulkan Headers and Registry. 6 # 7 # This module is intended to be used by projects that build Vulkan 8 # "system" components such as the loader and layers. 9 # Vulkan applications should instead use the FindVulkan (or similar) 10 # find module that locates the headers and the loader library. 11 # 12 # When using this find module to locate the headers and registry 13 # in a Vulkan-Headers repository, the Vulkan-Headers repository 14 # should be built with 'install' target and the following environment 15 # or CMake variable set to the location of the install directory. 16 # 17 # VULKAN_HEADERS_INSTALL_DIR 18 # 19 # IMPORTED Targets 20 # ^^^^^^^^^^^^^^^^ 21 # 22 # This module defines no IMPORTED targets 23 # 24 # Result Variables 25 # ^^^^^^^^^^^^^^^^ 26 # 27 # This module defines the following variables:: 28 # 29 # VulkanHeaders_FOUND - True if VulkanHeaders was found 30 # VulkanHeaders_INCLUDE_DIRS - include directories for VulkanHeaders 31 # 32 # VulkanRegistry_FOUND - True if VulkanRegistry was found 33 # VulkanRegistry_DIRS - directories for VulkanRegistry 34 # 35 # The module will also define two cache variables:: 36 # 37 # VulkanHeaders_INCLUDE_DIR - the VulkanHeaders include directory 38 # VulkanRegistry_DIR - the VulkanRegistry directory 39 # 40 41 # Use HINTS instead of PATH to search these locations before 42 # searching system environment variables like $PATH that may 43 # contain SDK directories. 44 find_path(VulkanHeaders_INCLUDE_DIR 45 NAMES vulkan/vulkan.h 46 HINTS 47 ${VULKAN_HEADERS_INSTALL_DIR}/include 48 "$ENV{VULKAN_HEADERS_INSTALL_DIR}/include" 49 "$ENV{VULKAN_SDK}/include") 50 51 if(VulkanHeaders_INCLUDE_DIR) 52 get_filename_component(VULKAN_REGISTRY_PATH_HINT ${VulkanHeaders_INCLUDE_DIR} DIRECTORY) 53 find_path(VulkanRegistry_DIR 54 NAMES vk.xml 55 HINTS "${VULKAN_REGISTRY_PATH_HINT}/share/vulkan/registry") 56 endif() 57 58 set(VulkanHeaders_INCLUDE_DIRS ${VulkanHeaders_INCLUDE_DIR}) 59 set(VulkanRegistry_DIRS ${VulkanRegistry_DIR}) 60 61 include(FindPackageHandleStandardArgs) 62 find_package_handle_standard_args(VulkanHeaders 63 DEFAULT_MSG 64 VulkanHeaders_INCLUDE_DIR) 65 find_package_handle_standard_args(VulkanRegistry 66 DEFAULT_MSG 67 VulkanRegistry_DIR) 68 69 mark_as_advanced(VulkanHeaders_INCLUDE_DIR VulkanRegistry_DIR) 70