# FindVulkan

Added in version 3.7.

Find Vulkan, which is a low-overhead, cross-platform 3D graphics and computing API.

## Optional COMPONENTS

Added in version 3.24.

This module respects several optional COMPONENTS. There are corresponding imported targets for each of these.

`glslc`

  The SPIR-V compiler.

`glslangValidator`

  The `glslangValidator` tool.

`glslang`

  The SPIR-V generator library.

`shaderc_combined`

  The static library for Vulkan shader compilation.

`SPIRV-Tools`

  Tools to process SPIR-V modules.

`MoltenVK`

  On macOS, an additional component `MoltenVK` is available.

`dxc`

  Added in version 3.25.

  The DirectX Shader Compiler.

The `glslc` and `glslangValidator` components are provided even if not explicitly requested (for backward compatibility).

## Imported Targets

This module defines `IMPORTED` targets if Vulkan has been found:

`Vulkan::Vulkan`

  The main Vulkan library.

`Vulkan::glslc`

  Added in version 3.19.

  The GLSLC SPIR-V compiler, if it has been found.

`Vulkan::Headers`

  Added in version 3.21.

  Provides just Vulkan headers include paths, if found. No library is included in this target. This can be useful for applications that load Vulkan library dynamically.

`Vulkan::glslangValidator`

  Added in version 3.21.

  The glslangValidator tool, if found. It is used to compile GLSL and HLSL shaders into SPIR-V.

`Vulkan::glslang`

  Added in version 3.24.

  Defined if SDK has the Khronos-reference front-end shader parser and SPIR-V generator library (glslang).

`Vulkan::shaderc_combined`

  Added in version 3.24.

  Defined if SDK has the Google static library for Vulkan shader compilation (shaderc_combined).

`Vulkan::SPIRV-Tools`

  Added in version 3.24.

  Defined if SDK has the Khronos library to process SPIR-V modules (SPIRV-Tools).

`Vulkan::MoltenVK`

  Added in version 3.24.

  Defined if SDK has the Khronos library which implement a subset of Vulkan API over Apple Metal graphics framework. (MoltenVK).

`Vulkan::volk`

  Added in version 3.25.

  Defined if SDK has the Vulkan meta-loader (volk).

`Vulkan::dxc_lib`

  Added in version 3.25.

  Defined if SDK has the DirectX shader compiler library.

`Vulkan::dxc_exe`

  Added in version 3.25.

  Defined if SDK has the DirectX shader compiler CLI tool.

## Result Variables

This module defines the following variables:

`Vulkan_FOUND`

  set to true if Vulkan was found

`Vulkan_INCLUDE_DIRS`

  include directories for Vulkan

`Vulkan_LIBRARIES`

  link against this library to use Vulkan

`Vulkan_VERSION`

  Added in version 3.23.

  value from `vulkan/vulkan_core.h`

`Vulkan_glslc_FOUND`

  Added in version 3.24.

  True, if the SDK has the glslc executable.

`Vulkan_glslangValidator_FOUND`

  Added in version 3.24.

  True, if the SDK has the glslangValidator executable.

`Vulkan_glslang_FOUND`

  Added in version 3.24.

  True, if the SDK has the glslang library.

`Vulkan_shaderc_combined_FOUND`

  Added in version 3.24.

  True, if the SDK has the shaderc_combined library.

`Vulkan_SPIRV-Tools_FOUND`

  Added in version 3.24.

  True, if the SDK has the SPIRV-Tools library.

`Vulkan_MoltenVK_FOUND`

  Added in version 3.24.

  True, if the SDK has the MoltenVK library.

`Vulkan_volk_FOUND`

  Added in version 3.25.

  True, if the SDK has the volk library.

`Vulkan_dxc_lib_FOUND`

  Added in version 3.25.

  True, if the SDK has the DirectX shader compiler library.

`Vulkan_dxc_exe_FOUND`

  Added in version 3.25.

  True, if the SDK has the DirectX shader compiler CLI tool.

The module will also defines these cache variables:

`Vulkan_INCLUDE_DIR`

  the Vulkan include directory

`Vulkan_LIBRARY`

  the path to the Vulkan library

`Vulkan_GLSLC_EXECUTABLE`

  the path to the GLSL SPIR-V compiler

`Vulkan_GLSLANG_VALIDATOR_EXECUTABLE`

  the path to the glslangValidator tool

`Vulkan_glslang_LIBRARY`

  Added in version 3.24.

  Path to the glslang library.

`Vulkan_shaderc_combined_LIBRARY`

  Added in version 3.24.

  Path to the shaderc_combined library.

`Vulkan_SPIRV-Tools_LIBRARY`

  Added in version 3.24.

  Path to the SPIRV-Tools library.

`Vulkan_MoltenVK_LIBRARY`

  Added in version 3.24.

  Path to the MoltenVK library.

`Vulkan_volk_LIBRARY`

  Added in version 3.25.

  Path to the volk library.

`Vulkan_dxc_LIBRARY`

  Added in version 3.25.

  Path to the DirectX shader compiler library.

`Vulkan_dxc_EXECUTABLE`

  Added in version 3.25.

  Path to the DirectX shader compiler CLI tool.

## Hints

Added in version 3.18.

The `VULKAN_SDK` environment variable optionally specifies the location of the Vulkan SDK root directory for the given architecture. It is typically set by sourcing the toplevel `setup-env.sh` script of the Vulkan SDK directory into the shell environment.