From 26ffddd7597a5bae094e00fc1b511f3df9411059 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Mon, 6 Jul 2026 20:49:05 -0700 Subject: add a build.rs that calls glslang Force-Push: yes Change-Id: I5a565f3ad343a36ffe17436b337f524805d072f7 --- build.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 build.rs (limited to 'build.rs') diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..593ef3f --- /dev/null +++ b/build.rs @@ -0,0 +1,43 @@ +use std::env; +use std::fs; +use std::path::Path; +use std::process::Command; + +fn main() { + match process_all() { + Err(error) => println!("cargo-error={}", error), + _ => { }, + } +} + +fn process_all () -> std::io::Result<()> { + let out_dir = env::var_os("OUT_DIR").unwrap(); + + for input in fs::read_dir("shaders")? { + let input_path = input?.path(); + if !input_path.is_file() { + continue; + } + + let output_path + = Path::new(&out_dir) + .join(format!("{}.spv", + input_path.file_name().unwrap().to_str().unwrap())); + + if !Command::new("glslang") + .arg("-V") + .arg(&input_path) + .arg("-o") + .arg(output_path) + .status()?.success() + { + println!("cargo::error=Failed to compile shader {}", + input_path.display()); + } + + println!("cargo::rerun-if-changed={}", input_path.display()); + } + + Ok(()) +} + -- cgit 1.4.1