# FindVulkan

New in version 3.7.

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

## IMPORTED Targets

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

`Vulkan::Vulkan`

  The main Vulkan library.

`Vulkan::glslc`

  New in version 3.19.

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

`Vulkan::Headers`

  New 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`

  New in version 3.21.

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

## Result Variables

This module defines the following variables:

    Vulkan_FOUND          - "True" if Vulkan was found
    Vulkan_INCLUDE_DIRS   - include directories for Vulkan
    Vulkan_LIBRARIES      - link against this library to use Vulkan

The module will also define three 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

## Hints

New 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.