30 lines
1.1 KiB
Rust
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(())
|
|
}
|