23 lines
1.0 KiB
Rust
23 lines
1.0 KiB
Rust
fn main() {
|
|
// println!("cargo:rustc-link-arg-bins=--nmagic");
|
|
println!("cargo:rustc-link-arg-bins=-Tlink.x");
|
|
// println!("cargo:rustc-link-arg-bins=-Tdefmt.x");
|
|
|
|
let out_dir = std::env::var("OUT_DIR").unwrap();
|
|
let out_dir = std::path::PathBuf::from(out_dir);
|
|
std::fs::write(out_dir.join("memory.x"), include_bytes!("memory.x")).unwrap();
|
|
println!("cargo:rustc-link-search={}", out_dir.display());
|
|
println!("cargo:rerun-if-changed=memory.x");
|
|
|
|
// Embed firmware build timestamp as minutes since Unix epoch (4 bytes, big-endian).
|
|
// Dropping sub-minute precision keeps it in 4 bytes for many years.
|
|
let build_seconds = std::time::SystemTime::now()
|
|
.duration_since(std::time::UNIX_EPOCH)
|
|
.expect("System time before UNIX_EPOCH")
|
|
.as_secs();
|
|
let build_minutes = (build_seconds / 60) as u32;
|
|
let bytes = build_minutes.to_be_bytes();
|
|
std::fs::write(out_dir.join("build_minutes.bin"), bytes).unwrap();
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
}
|