On 27-07-22, 13:17, Kent Gibson wrote:
Sure, it is a problem, but static isn't the solution. You should be able to get the appropriate paths from autoconf, but I would refer you to Bart on that.
Sure, if someone can suggest a better way of doing this, I am up for it. I just don't know how to do it as of now.
By "all builds" I meant build/tests/fmt/clippy etc of this module, not others.
Ahh.
My concern being that a subsequent bindgen may introduce a problem into the generated code that the allows would hide. So try to keep them restricted to the problem at hand as much as possible.
I agree.
#[cfg_attr(any(test,fmt,clippy), allow(deref_nullptr, non_snake_case))] ?
Finally just this was enough for fmt/clippy too :)
#[cfg_attr(test, allow(deref_nullptr, non_snake_case))]
Specifically the tutoral says: "The wrapper.h file will include all the various headers containing declarations of structs and functions we would like bindings for."
If you do need to bundle several headers then fair enough, but I don't see any benefit in this case - gpiod.h contains all that.
The tutorial is probably written that way so it is easy for them to refer to the general "wrapper.h", but there is nothing in bindgen that requires it.
Sure nothing will break if the file isn't there. Okay removed it now:
diff --git a/bindings/rust/libgpiod-sys/build.rs b/bindings/rust/libgpiod-sys/build.rs index 147daaf6b1da..96f832134431 100644 --- a/bindings/rust/libgpiod-sys/build.rs +++ b/bindings/rust/libgpiod-sys/build.rs @@ -8,7 +8,7 @@ use std::path::PathBuf; #[cfg(feature = "generate")] fn generate_bindings(files: &Vec<&str>) { // Tell cargo to invalidate the built crate whenever following files change - println!("cargo:rerun-if-changed=wrapper.h"); + println!("cargo:rerun-if-changed=../../../include/gpiod.h");
for file in files { println!("cargo:rerun-if-changed={}", file); @@ -24,7 +24,7 @@ fn generate_bindings(files: &Vec<&str>) { let mut builder = bindgen::Builder::default() // The input header we would like to generate // bindings for. - .header("wrapper.h"); + .header("../../../include/gpiod.h");
if cfg!(feature = "gpiosim") { builder = builder.header("gpiosim_wrapper.h"); diff --git a/bindings/rust/libgpiod-sys/wrapper.h b/bindings/rust/libgpiod-sys/wrapper.h deleted file mode 100644 index 32290711642a..000000000000 --- a/bindings/rust/libgpiod-sys/wrapper.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../include/gpiod.h"