// Build script for subplotlib. // // We use the `subplot_build` crate to generate a Rust test code file // with functions for the scenarios for each subplot file // (subplot/*.md in the source tree). The generated file is written to // the Cargo target directory. For each subplot foo.md there should be // a tests/foo.rs in the source tree, which includes the generated // file from the Cargo target tree. The source file should look like this: // // ```rust // include!(concat!(env!("OUT_DIR"), "/foo.rs")); // ``` use glob::glob; use std::path::Path; fn main() { let subplots = glob("*.md").expect("failed to find subplots in subplotlib"); let tests = Path::new("tests"); for entry in subplots { let entry = entry.expect("failed to get subplot dir entry in subplotlib"); let mut inc = tests.join(&entry); inc.set_extension("rs"); if !inc.exists() { panic!("missing include file: {}", inc.display()); } println!("cargo:rerun-if-changed={}", inc.display()); subplot_build::codegen(Path::new(&entry)).expect("failed to generate code with Subplot"); } }