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