1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
use std::path::Path;
fn main() {
let dir = Path::new(env!("CARGO_MANIFEST_DIR"));
let root = dir.parent().unwrap();
eprintln!("root: {}", root.display());
walk(&root.join("core_arch/src/x86"));
walk(&root.join("core_arch/src/x86_64"));
walk(&root.join("core_arch/src/arm"));
walk(&root.join("core_arch/src/aarch64"));
}
fn walk(root: &Path) {
for file in root.read_dir().unwrap() {
eprintln!("root: {}", root.display());
let file = file.unwrap();
if file.file_type().unwrap().is_dir() {
walk(&file.path());
continue;
}
let path = file.path();
if path.extension().and_then(|s| s.to_str()) != Some("rs") {
continue;
}
println!("cargo:rerun-if-changed={}", path.display());
}
}
|