diff --git a/rust/ruby-rbs-sys/build.rs b/rust/ruby-rbs-sys/build.rs index f382a3dcaa..afee471fb8 100644 --- a/rust/ruby-rbs-sys/build.rs +++ b/rust/ruby-rbs-sys/build.rs @@ -20,6 +20,12 @@ fn main() -> Result<(), Box> { } fn build(include_dir: &Path, src_dir: &Path) -> Result<(), Box> { + // bindgen's CargoCallbacks emits rerun-if-changed for headers only, which disables + // cargo's default "watch every package file" behavior. Watch the C sources and + // headers explicitly so edits to them trigger a rebuild. + println!("cargo:rerun-if-changed={}", src_dir.display()); + println!("cargo:rerun-if-changed={}", include_dir.display()); + let mut build = cc::Build::new(); build.include(include_dir);