diff options
| author | Jack O'Connor <[email protected]> | 2025-03-09 14:31:12 -0700 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2025-03-09 14:34:35 -0700 |
| commit | daa66a6b261cedf9733778fa7a26fb4dea500ffd (patch) | |
| tree | 5731898d7e7fd68be46deb255e8b4b83ab264932 /c | |
| parent | 9edb473fa81c422acc2cb611f55c4df52d1cdbbb (diff) | |
use `ignore` to avoid overdoing rerun-if-changed in bindings
Diffstat (limited to 'c')
| -rw-r--r-- | c/blake3_c_rust_bindings/Cargo.toml | 1 | ||||
| -rw-r--r-- | c/blake3_c_rust_bindings/build.rs | 14 |
2 files changed, 9 insertions, 6 deletions
diff --git a/c/blake3_c_rust_bindings/Cargo.toml b/c/blake3_c_rust_bindings/Cargo.toml index 2576eaa..e70f16b 100644 --- a/c/blake3_c_rust_bindings/Cargo.toml +++ b/c/blake3_c_rust_bindings/Cargo.toml @@ -27,3 +27,4 @@ reference_impl = { path = "../../reference_impl" } [build-dependencies] cc = "1.0.48" +ignore = "0.4.23" diff --git a/c/blake3_c_rust_bindings/build.rs b/c/blake3_c_rust_bindings/build.rs index 624dbb9..c5dc927 100644 --- a/c/blake3_c_rust_bindings/build.rs +++ b/c/blake3_c_rust_bindings/build.rs @@ -178,12 +178,14 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { println!("cargo:rerun-if-env-changed=CC"); println!("cargo:rerun-if-env-changed=CFLAGS"); - // Ditto for source files, though these shouldn't change as often. - for file in std::fs::read_dir("..")? { - println!( - "cargo:rerun-if-changed={}", - file?.path().to_str().expect("utf-8") - ); + // Ditto for source files, though these shouldn't change as often. `ignore::Walk` respects + // .gitignore, so this doesn't traverse target/. + for result in ignore::Walk::new("..") { + let result = result?; + let path = result.path(); + if path.is_file() { + println!("cargo:rerun-if-changed={}", path.to_str().unwrap()); + } } Ok(()) |
