mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-08 21:11:56 +00:00
d0afc31632
* Model cache written by default: exact bodies, stored once, scaled caps (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * bench-open: say why bodies were not kept * Exact planes and revolutions; budgets for large bodies (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Native B-rep: rebuild shells as the kernel made them (closed and seam edges) (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs: the model cache and the exact native B-rep (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * bench-open: time a save without the cache too * Model cache entries are Deflate-compressed (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Model cache: one that does not fit the design file is left out, never a failed save (#3053) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
895 B
Rust
21 lines
895 B
Rust
//! The commit the model cache is keyed by (`SOLIDCRAFT_SOURCE_COMMIT`): a cache is only the
|
|
//! result of evaluating its design when the same source computed it. "unknown" without git (a
|
|
//! source tarball), which never trusts a cache.
|
|
|
|
use std::process::Command;
|
|
|
|
fn git(args: &[&str]) -> Option<String> {
|
|
let out = Command::new("git").args(args).output().ok()?;
|
|
out.status.success().then(|| String::from_utf8_lossy(&out.stdout).trim().to_string()).filter(|s| !s.is_empty())
|
|
}
|
|
|
|
fn main() {
|
|
let commit = git(&["rev-parse", "HEAD"]).unwrap_or_else(|| "unknown".into());
|
|
println!("cargo:rustc-env=SOLIDCRAFT_SOURCE_COMMIT={commit}");
|
|
// A new commit in this checkout (or worktree) restamps the build.
|
|
if let Some(dir) = git(&["rev-parse", "--git-dir"]) {
|
|
println!("cargo:rerun-if-changed={dir}/logs/HEAD");
|
|
}
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
}
|