FindVulkan

在 3.7 版本中新增。

查找 Vulkan,这是一种低开销的跨平台 3D 图形和计算 API。

可选的 COMPONENTS

在 3.24 版本中新增。

此模块支持多个可选的 COMPONENTS。每个组件都有相应的导入目标。

glslc

SPIR-V 编译器。

glslangValidator

glslangValidator 工具。

glslang

SPIR-V 生成器库。

shaderc_combined

用于 Vulkan 着色器编译的静态库。

SPIRV-Tools

用于处理 SPIR-V 模块的工具。

MoltenVK

在 macOS 上,提供了额外的组件 MoltenVK

dxc

在 3.25 版本中新增。

DirectX 着色器编译器。

即使没有明确请求 glslcglslangValidator 组件,也会提供这些组件(出于向后兼容性的考虑)。

导入的目标

如果已找到 Vulkan,此模块定义 IMPORTED 目标

Vulkan::Vulkan

主要的 Vulkan 库。

Vulkan::glslc

在 3.19 版本中新增。

如果找到的 GLSLC SPIR-V 编译器。

Vulkan::Headers

在 3.21 版本中新增。

仅提供 Vulkan 头文件包含路径(如果找到)。此目标中不包括任何库。这对于动态加载 Vulkan 库的应用程序来说可能很有用。

Vulkan::glslangValidator

在 3.21 版本中新增。

如果找到的 glslangValidator 工具。该工具用于将 GLSL 和 HLSL 着色器编译为 SPIR-V。

Vulkan::glslang

在 3.24 版本中新增。

如果 SDK 具有 Khronos 参考前端着色器解析器和 SPIR-V 生成器库 (glslang),则定义此库。

Vulkan::shaderc_combined

在 3.24 版本中新增。

如果 SDK 具有用于 Vulkan 着色器编译的 Google 静态库 (shaderc_combined),则定义此库。

Vulkan::SPIRV-Tools

在 3.24 版本中新增。

如果 SDK 具有用于处理 SPIR-V 模块的 Khronos 库 (SPIRV-Tools),则定义此库。

Vulkan::MoltenVK

在 3.24 版本中新增。

如果 SDK 具有在 Apple Metal 图形框架上实现 Vulkan API 子集的 Khronos 库 (MoltenVK),则定义此库。

Vulkan::volk

在 3.25 版本中新增。

如果 SDK 具有 Vulkan 元加载器 (volk),则定义此库。

Vulkan::dxc_lib

在 3.25 版本中新增。

如果 SDK 具有 DirectX 着色器编译器库,则定义此库。

Vulkan::dxc_exe

在 3.25 版本中新增。

如果 SDK 具有 DirectX 着色器编译器 CLI 工具,则定义此库。

结果变量

此模块定义以下变量

Vulkan_FOUND

如果找到 Vulkan,则设置为 true

Vulkan_INCLUDE_DIRS

Vulkan 的包含目录

Vulkan_LIBRARIES

链接到此库以使用 Vulkan

Vulkan_VERSION

在 3.23 版本中新增。

vulkan/vulkan_core.h 中的值

Vulkan_glslc_FOUND

在 3.24 版本中新增。

如果 SDK 具有 glslc 可执行文件,则为 True。

Vulkan_glslangValidator_FOUND

在 3.24 版本中新增。

如果 SDK 具有 glslangValidator 可执行文件,则为 True。

Vulkan_glslang_FOUND

在 3.24 版本中新增。

如果 SDK 具有 glslang 库,则为 True。

Vulkan_shaderc_combined_FOUND

在 3.24 版本中新增。

如果 SDK 具有 shaderc_combined 库,则为 True。

Vulkan_SPIRV-Tools_FOUND

在 3.24 版本中新增。

如果 SDK 具有 SPIRV-Tools 库,则为 True。

Vulkan_MoltenVK_FOUND

在 3.24 版本中新增。

如果 SDK 拥有 MoltenVK 库,则为 True。

Vulkan_volk_FOUND

在 3.25 版本中新增。

如果 SDK 拥有 volk 库,则为 True。

Vulkan_dxc_lib_FOUND

在 3.25 版本中新增。

如果 SDK 拥有 DirectX 着色器编译器库,则为 True。

Vulkan_dxc_exe_FOUND

在 3.25 版本中新增。

如果 SDK 拥有 DirectX 着色器编译器 CLI 工具,则为 True。

该模块还将定义以下缓存变量

Vulkan_INCLUDE_DIR

Vulkan include 目录

Vulkan_LIBRARY

Vulkan 库的路径

Vulkan_GLSLC_EXECUTABLE

GLSL SPIR-V 编译器的路径

Vulkan_GLSLANG_VALIDATOR_EXECUTABLE

glslangValidator 工具的路径

Vulkan_glslang_LIBRARY

在 3.24 版本中新增。

glslang 库的路径。

Vulkan_shaderc_combined_LIBRARY

在 3.24 版本中新增。

shaderc_combined 库的路径。

Vulkan_SPIRV-Tools_LIBRARY

在 3.24 版本中新增。

SPIRV-Tools 库的路径。

Vulkan_MoltenVK_LIBRARY

在 3.24 版本中新增。

MoltenVK 库的路径。

Vulkan_volk_LIBRARY

在 3.25 版本中新增。

volk 库的路径。

Vulkan_dxc_LIBRARY

在 3.25 版本中新增。

DirectX 着色器编译器库的路径。

Vulkan_dxc_EXECUTABLE

在 3.25 版本中新增。

DirectX 着色器编译器 CLI 工具的路径。

提示

在版本 3.18 中添加。

VULKAN_SDK 环境变量可选地指定给定体系结构的 Vulkan SDK 根目录的位置。通常通过调用 Vulkan SDK 目录的顶层 setup-env.sh 脚本到 shell 环境中来设置。