#vulkan #graphics #sdk #cargo #install

vk_deps

简单的Vulkan SDK下载器/管理器,可以直接与Cargo通信

1个不稳定版本

0.1.0 2019年6月4日

#542 in 图形API

GPL-3.0-or-later

18KB
341

vk_deps

安装Vulkan SDK(如果尚未安装)作为构建步骤,并为cargo构建导出所需的环境变量。

需求

  • pkg-config
  • OpenSSL头文件
    • Debian/Ubuntu: libssl-dev
    • Fedora/RHEL/Centos: openssl-devel
    • MacOS (brew): openssl

用法

此库旨在在build.rs脚本中使用,但也可能适用于其他用途。

示例

// build.rs

extern crate vk_deps;

const VULKAN_VERSION: &'static str = "1.1.106.0";

fn main() {
    // ensure the specified vulkan version is installed
    let sdk = vk_deps::ensure(VULKAN_VERSION.to_string())
        .expect("failed to install Vulkan SDK");


    // emits cargo/rustc environment variables that set all needed env vars
    sdk.print_cargo_env();
}

可选环境变量

可以通过环境配置安装设置。

这些选项在环境中而不是代码中,因为它们是不应在版本控制或甚至在不同开发者之间持久存在的选项。它们是“个人选择”选项,如果默认值不理想。

所有开关都支持1true作为开/真,所有其他值均为关/假。

VULKAN_INSTALL_DEST

当设置(为有效字符串)时,SDK将作为此目录的子目录提取/安装。

正在提取/安装的版本将始终附加到目标。此变量的值必须在所有cargo运行中保持一致,否则您可能会发现Vulkan正在不断重新安装或根本找不到。

VULKAN_REINSTALL

即使存在此版本的安装,也会重新安装Vulkan。

删除原始目录(如果存在),然后在其位置安装新的副本。

VULKAN_KEEP_SOURCE

保留我们下载的安装文件,而不是删除它。

文件将保存为安装路径的兄弟文件。例如

$HOME
├── .vulkan_sdk
   ├── vulkan-1.1.106.0-linux.tar.gz
   ├── 1.1.106.0/
   │   ├── vulkan
   │   ├── sdk
   │   ├── files
   │   └── here

在安装时,无论是否提供VULKAN_REINSTALL=1或首次安装,我们都会寻找源文件以节省时间和带宽。

如果此文件损坏,则用户负责删除它以清除不良状态,然后可以从远程文件继续安装。

依赖项

~9–19MB
~293K SLoC