use std::{env, fs, path::PathBuf}; fn main() { let root = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()) .parent() .unwrap() .to_path_buf(); let original = root.join("os-context-switch/src/context.rs"); let helper = root.join("scripts/os-acceptance/k1040-context-handoff.rs"); println!("cargo:rerun-if-changed={}", original.display()); println!("cargo:rerun-if-changed={}", helper.display()); let out = PathBuf::from(env::var("OUT_DIR").unwrap()); let output = out.join("context.rs"); let mut bytes = fs::read(&original).unwrap(); bytes.extend_from_slice(b"\n"); bytes.extend_from_slice(&fs::read(&helper).unwrap()); fs::write(&output, bytes).unwrap(); fs::write( out.join("module.rs"), format!( "#[path = {:?}] pub mod context;\n", output.to_str().unwrap() ), ) .unwrap(); }