FindVulkan

New in version 3.7.

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

Optional COMPONENTS

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

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

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.

Vulkan::glslang

New in version 3.24.

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

Vulkan::shaderc_combined

New in version 3.24.

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

Vulkan::SPIRV-Tools

New in version 3.24.

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

Vulkan::MoltenVK

New in version 3.24.

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

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

New in version 3.23.

value from vulkan/vulkan_core.h

Vulkan_glslc_FOUND

New in version 3.24.

True, if the SDK has the glslc executable.

Vulkan_glslangValidator_FOUND

New in version 3.24.

True, if the SDK has the glslangValidator executable.

Vulkan_glslang_FOUND

New in version 3.24.

True, if the SDK has the glslang library.

Vulkan_shaderc_combined_FOUND

New in version 3.24.

True, if the SDK has the shaderc_combined library.

Vulkan_SPIRV-Tools_FOUND

New in version 3.24.

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

Vulkan_MoltenVK_FOUND

New in version 3.24.

True, if the SDK has the MoltenVK library.

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

New in version 3.24.

Path to the glslang library.

Vulkan_shaderc_combined_LIBRARY

New in version 3.24.

Path to the shaderc_combined library.

Vulkan_SPIRV-Tools_LIBRARY

New in version 3.24.

Path to the SPIRV-Tools library.

Vulkan_MoltenVK_LIBRARY

New in version 3.24.

Path to the MoltenVK library.

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.