查找Vulkan

在 3.7 版本加入.

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

可选组件

在 3.24 版本加入.

该模块涉及几个可选组件。其中每一个都有相应的导入目标。

glslc

SPIR-V 编译器。

glslangValidator

glslangValidator 工具。

glslang

SPIR-V 生成器库。

shaderc_combined

Vulkan 着色器编译的静态库。

SPIRV-工具

处理 SPIR-V 模块的工具。

熔岩VK

在 macOS 上,可以使用附加组件“MoltenVK”。

dxc

在 3.25 版本加入.

DirectX 着色器编译器。

即使没有明确要求(为了向后兼容),也会提供 glslcglslangValidator 组件。

进口目标

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

Vulkan::Vulkan

主要的 Vulkan 库。

Vulkan::glslc

在 3.19 版本加入.

GLSLC SPIR-V 编译器(如果已找到)。

Vulkan::标题

在 3.21 版本加入.

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

Vulkan::glslangValidator

在 3.21 版本加入.

glslangValidator 工具(如果找到)。它用于将 GLSL 和 HLSL 着色器编译成 SPIR-V。

Vulkan::glslang

在 3.24 版本加入.

定义 SDK 是否具有 Khronos-reference 前端着色器解析器和 SPIR-V 生成器库 (glslang)。

Vulkan::shaderc_combined

在 3.24 版本加入.

定义 SDK 是否具有用于 Vulkan 着色器编译的 Google 静态库 (shaderc_combined)。

Vulkan::SPIRV-工具

在 3.24 版本加入.

定义 SDK 是否具有 Khronos 库来处理 SPIR-V 模块(SPIRV-Tools)。

Vulkan::MoltenVK

在 3.24 版本加入.

定义 SDK 是否具有 Khronos 库,该库通过 Apple Metal 图形框架实现 Vulkan API 的子集。 (熔岩VK)。

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 可执行文件。

Vulkan_glslangValidator_FOUND

在 3.24 版本加入.

是的,如果 SDK 具有 glslangValidator 可执行文件。

Vulkan_glslang_FOUND

在 3.24 版本加入.

是的,如果 SDK 有 glslang 库。

Vulkan_shaderc_combined_FOUND

在 3.24 版本加入.

是的,如果 SDK 具有 shaderc_combined 库。

Vulkan_SPIRV-Tools_FOUND

在 3.24 版本加入.

是的,如果 SDK 具有 SPIRV-Tools 库。

Vulkan_MoltenVK_FOUND

在 3.24 版本加入.

是的,如果 SDK 有 MoltenVK 库。

Vulkan_volk_FOUND

在 3.25 版本加入.

是的,如果 SDK 有 volk 库。

Vulkan_dxc_lib_FOUND

在 3.25 版本加入.

是的,如果 SDK 具有 DirectX 着色器编译器库。

Vulkan_dxc_exe_FOUND

在 3.25 版本加入.

是的,如果 SDK 具有 DirectX 着色器编译器 CLI 工具。

该模块还将定义这些缓存变量:

Vulkan_INCLUDE_DIR

Vulkan 包含目录

Vulkan_LIBRARY

Vulkan 库的路径

Vulkan_GLSLC_EXECUTABLE

GLSL SPIR-V 编译器的路径

Vulkan_GSLLANG_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 环境来设置。