diff --git a/embassy/demos/picow/build.rs b/embassy/demos/picow/build.rs index 3f915f931254e27ef7a904d5e572f753d1b9f57a..7ba8277d34842bb68b96edbfb143c12242153d3e 100644 --- a/embassy/demos/picow/build.rs +++ b/embassy/demos/picow/build.rs @@ -12,8 +12,14 @@ use std::env; use std::fs::File; use std::io::Write; use std::path::PathBuf; +use std::process::Command; fn main() { + link(); + git(); +} + +fn link() { // Put `memory.x` in our output directory and ensure it's // on the linker search path. let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap()); @@ -34,3 +40,14 @@ fn main() { println!("cargo:rustc-link-arg-bins=-Tlink-rp.x"); println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); } + +fn git() { + let git_rev = Command::new("git") + .args(&["describe", "--always", "--tags", "--dirty=+"]) + .output() + .map(|o| String::from_utf8(o.stdout).unwrap().to_string()) + .unwrap_or("(unknown)".to_string()); + + println!("cargo:rustc-env=GIT_REV={git_rev}"); + println!("cargo:rerun-if-changed=.git/HEAD"); +} diff --git a/embassy/demos/picow/src/picowmenu.rs b/embassy/demos/picow/src/picowmenu.rs index 3770c7dc26d271440484b0b88544de8f6fa22b61..b610422629e3d069a1bb20366f74f5e3e07b11c7 100644 --- a/embassy/demos/picow/src/picowmenu.rs +++ b/embassy/demos/picow/src/picowmenu.rs @@ -602,7 +602,7 @@ fn do_bootsel(_item: &Item<MenuCtx>, args: &[&str], context: &mut MenuCtx) { fn do_about(_item: &Item<MenuCtx>, _args: &[&str], context: &mut MenuCtx) { let _ = writeln!( context, - "Sunset SSH, USB serial\nMatt Johnston <matt@ucc.asn.au>\n" + "Sunset SSH, USB serial\nMatt Johnston <matt@ucc.asn.au>\n{}", env!("GIT_REV"), ); }