37 lines
768 B
Rust
37 lines
768 B
Rust
mod hash;
|
|
|
|
use {
|
|
crate::vulkan::hash::{TREES, Tree, unchanged},
|
|
anyhow::bail,
|
|
std::process::Command,
|
|
};
|
|
|
|
pub fn main() -> anyhow::Result<()> {
|
|
for tree in TREES {
|
|
main_(tree)?;
|
|
}
|
|
Ok(())
|
|
}
|
|
|
|
fn main_(tree: &Tree) -> anyhow::Result<()> {
|
|
println!("cargo:rerun-if-changed={}", tree.root);
|
|
if !std::fs::exists("compile-shaders")? {
|
|
return Ok(());
|
|
}
|
|
if unchanged(tree) {
|
|
return Ok(());
|
|
}
|
|
let code = Command::new("cargo")
|
|
.args([
|
|
"run",
|
|
"--manifest-path",
|
|
"compile-shaders/Cargo.toml",
|
|
"-p",
|
|
"compile-shaders-compile",
|
|
])
|
|
.status()?;
|
|
if !code.success() {
|
|
bail!("compile-shaders failed");
|
|
}
|
|
Ok(())
|
|
}
|