//! Build script — compiles the C shim that exposes Lean's inline //! runtime helpers as real extern symbols (see shim.c). //! //! Mirrors `native/cubical/build.rs`. Native targets only. fn main() { let target = std::env::var("TARGET").unwrap_or_default(); if target.starts_with("wasm32") { return; } let lean_include = std::env::var("LEAN_INCLUDE").unwrap_or_else(|_| { let prefix = std::process::Command::new("lean") .arg("--print-prefix") .output() .expect("failed to run `lean --print-prefix`; set LEAN_INCLUDE instead"); let prefix = String::from_utf8(prefix.stdout).unwrap(); format!("{}/include", prefix.trim()) }); cc::Build::new() .file("shim.c") .include(&lean_include) .flag("-Wno-unused-parameter") .compile("topolei_render_shim"); println!("cargo:rerun-if-changed=shim.c"); println!("cargo:rerun-if-env-changed=LEAN_INCLUDE"); }