Files
fdtd-coremem/crates/spirv_backend_builder/src/main.rs
2022-07-05 23:01:41 -07:00

30 lines
1.1 KiB
Rust

use spirv_builder::{Capability, MetadataPrintout, SpirvBuilder};
use std::env;
use std::error::Error;
use std::path::PathBuf;
fn main() -> Result<(), Box<dyn Error>> {
// based on EmbarkStudios/rust-gpu/examples/runners/wgpu/src/lib.rs:maybe_watch
let manifest_dir = env!("CARGO_MANIFEST_DIR");
let crate_path = [manifest_dir, "../", "spirv_backend"]
.iter()
.copied()
.collect::<PathBuf>();
println!("get_shader: constructing builder");
let builder = SpirvBuilder::new(crate_path, "spirv-unknown-vulkan1.1")
//let builder = SpirvBuilder::new(crate_path, "spirv-unknown-spv1.3")
.print_metadata(MetadataPrintout::Full)
.capability(Capability::Int8)
// .capability(Capability::PhysicalStorageBufferAddresses)
// .capability(Capability::Addresses)
// .capability(Capability::GenericPointer)
;
println!("get_shader: building");
let initial_result = builder.build()?;
let module_path = initial_result.module.unwrap_single();
println!("cargo:rustc-env=SPIRV_MODULE_PATH={}", module_path.display());
Ok(())
}