| 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()); |
| } |
| } |