kmeans-color-gpu-preprocessor 0.1.0

A shader preprocessor, to replace #includes in shaders by appropriate files used for the kmeans-color-gpu crate.
Documentation
use std::{fs, path::Path};

#[cfg(feature = "validate")]
pub mod validate;

fn main() {
    let shaders = Path::new(env!("CARGO_MANIFEST_DIR"))
        .parent()
        .unwrap()
        .join("core/shaders");

    let out_dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("output");
    fs::create_dir_all(&out_dir).unwrap();

    #[cfg(not(feature = "validate"))]
    kmeans_color_gpu_preprocessor::preprocess_shaders(&shaders, &out_dir).unwrap();

    #[cfg(feature = "validate")]
    generate_and_validate(&shaders, &out_dir)
}

#[cfg(feature = "validate")]
fn generate_and_validate(shaders: &Path, out_dir: &Path) {
    use kmeans_color_gpu_preprocessor::preprocess_shaders;

    let generated_shaders = preprocess_shaders(&shaders, &out_dir).unwrap();

    validate::validate_shaders(&generated_shaders).unwrap();
}