henad-build 0.3.0

Build-script support for Henad model crates: build stamps, and shader bindings generated from WGSL.
Documentation

henad-build

Henad is a parallel agent-based modelling engine, built to run millions of agents at interactive speeds on one machine.

This crate runs from a model crate's build script. stamp_commit records the commit the crate was built from, whether its sources differed from that commit, and a hash of its sources. A sweep's manifest records them beside each model the crate registers. ShaderBuild finds the crate's WGSL shaders, composes each with the shared modules a shader reaches through #import henad::<module>, and writes the Rust bindings that henad::include_shaders! brings into the crate.

// build.rs
fn main() -> Result<(), Box<dyn std::error::Error>> {
    henad_build::stamp_commit();
    henad_build::ShaderBuild::discover("src")?.generate()?;
    Ok(())
}

A crate without shaders keeps the build script for its stamp, and drops the ShaderBuild line. A file a model reads at compile time belongs under src, where the stamp sees it.

Use the same 0.x of henad and henad-build. The shaders guide explains the naming rules and the imports.

License

Licensed under MIT or Apache-2.0, at your option.