From 76de6001641073f0bfdabcad53cc710cee03e7a6 Mon Sep 17 00:00:00 2001 From: Emil Tsalapatis Date: Mon, 16 Dec 2024 08:49:08 -0800 Subject: [PATCH] fix missing rerun-if-changed statements --- rust/scx_utils/src/bpf_builder.rs | 38 +++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/rust/scx_utils/src/bpf_builder.rs b/rust/scx_utils/src/bpf_builder.rs index e8cbacbfe..2ff64a522 100644 --- a/rust/scx_utils/src/bpf_builder.rs +++ b/rust/scx_utils/src/bpf_builder.rs @@ -366,6 +366,8 @@ impl BpfBuilder { .clang_args(&self.cflags) .generate(&skel_path)?; + self.gen_cargo_reruns(None)?; + Ok(()) } @@ -403,26 +405,38 @@ impl BpfBuilder { Ok(()) } - /// Build and generate the enabled bindings. - pub fn build(&self) -> Result<()> { - let mut deps = BTreeSet::new(); - - self.input_insert_deps(&mut deps); - - self.bindgen_bpf_intf()?; - self.gen_bpf_skel(&mut deps)?; - + fn gen_cargo_reruns(&self, dependencies: Option<&BTreeSet>) -> Result<()> { println!("cargo:rerun-if-env-changed=BPF_CLANG"); println!("cargo:rerun-if-env-changed=BPF_CFLAGS"); println!("cargo:rerun-if-env-changed=BPF_BASE_CFLAGS"); println!("cargo:rerun-if-env-changed=BPF_EXTRA_CFLAGS_PRE_INCL"); println!("cargo:rerun-if-env-changed=BPF_EXTRA_CFLAGS_POST_INCL"); - for dep in deps.iter() { - println!("cargo:rerun-if-changed={}", dep); - } + match dependencies { + Some(deps) => { + for dep in deps.iter() { + println!("cargo:rerun-if-changed={}", dep); + } + } + + None => (), + }; + for source in self.sources.iter() { println!("cargo:rerun-if-changed={}", source); } + + Ok(()) + } + + /// Build and generate the enabled bindings. + pub fn build(&self) -> Result<()> { + let mut deps = BTreeSet::new(); + + self.input_insert_deps(&mut deps); + + self.bindgen_bpf_intf()?; + self.gen_bpf_skel(&mut deps)?; + self.gen_cargo_reruns(Some(&deps))?; Ok(()) } }