use std::{env, path::PathBuf};
fn main() {
let out_dir = PathBuf::from(env::var_os("OUT_DIR").unwrap());
let profile = env::var("PROFILE").unwrap();
let target = env::var("TARGET").unwrap();
let mut out_dir_components = out_dir.components().rev().collect::<Vec<_>>();
let target_dir_pos = out_dir_components
.windows(2)
.position(|w| {
(w[1].as_os_str() == "target" || w[1].as_os_str() == &*target)
&& w[0].as_os_str() == &*profile
})
.expect("failed to match \"target\" directory pattern");
let target_dir = out_dir_components
.drain(target_dir_pos..)
.rev()
.collect::<PathBuf>();
println!(
"cargo:rustc-env=LIBHOTPATCH_TARGET_DIR={}",
target_dir.display()
);
println!("cargo:rerun-if-changed-env=OUT_DIR");
println!("cargo:rerun-if-changed-env=PROFILE");
println!("cargo:rerun-if-changed-env=TARGET");
}