From 6d5d8dd4fcbce50bc6f5c3fc7d79e2a31335a832 Mon Sep 17 00:00:00 2001
From: Federico Lolli <federico.lolli@skywarder.eu>
Date: Thu, 14 Mar 2024 11:06:03 +0100
Subject: [PATCH] Moved from MANIFEST_DIR to OUT_DIR in build.rs (Broken)

---
 build.rs            |  9 +++-----
 src/bindings.rs     | 41 +++++++++++++++++++++++++++++++++
 src/bindings/mod.rs | 56 ---------------------------------------------
 3 files changed, 44 insertions(+), 62 deletions(-)
 create mode 100644 src/bindings.rs
 delete mode 100644 src/bindings/mod.rs

diff --git a/build.rs b/build.rs
index c3277ec..932fcea 100644
--- a/build.rs
+++ b/build.rs
@@ -1,14 +1,11 @@
 #![recursion_limit = "256"]
 
 use std::env;
-use std::path::Path;
 
-pub fn main() {
-    let src_dir = Path::new(env!("CARGO_MANIFEST_DIR"));
-    let definitions_dir = src_dir.join("message_definitions");
-    let out_dir = src_dir.join("src/bindings");
+const DEF_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/message_definitions");
 
-    let result = mavlink_bindgen::generate(definitions_dir, out_dir)
+pub fn main() {
+    let result = mavlink_bindgen::generate(DEF_DIR, env::var("OUT_DIR").unwrap())
         .expect("Failed to generate Rust MAVLink bindings");
 
     mavlink_bindgen::format_generated_code(&result);
diff --git a/src/bindings.rs b/src/bindings.rs
new file mode 100644
index 0000000..725b2b7
--- /dev/null
+++ b/src/bindings.rs
@@ -0,0 +1,41 @@
+#![allow(non_camel_case_types)]
+#![allow(clippy::derive_partial_eq_without_eq)]
+#![allow(clippy::field_reassign_with_default)]
+#![allow(non_snake_case)]
+#![allow(clippy::unnecessary_cast)]
+#![allow(clippy::bad_bit_mask)]
+
+#[cfg(feature = "gemini")]
+pub mod gemini {
+    include!(concat!(env!("OUT_DIR"), "/lyra.rs"));
+}
+
+#[cfg(feature = "hermes")]
+pub mod hermes {
+    include!(concat!(env!("OUT_DIR"), "/hermes.rs"));
+}
+
+#[cfg(feature = "lynx")]
+pub mod lynx {
+    include!(concat!(env!("OUT_DIR"), "/lynx.rs"));
+}
+
+#[cfg(feature = "lyra")]
+pub mod lyra {
+    include!(concat!(env!("OUT_DIR"), "/lyra.rs"));
+}
+
+#[cfg(feature = "pyxis")]
+pub mod pyxis {
+    include!(concat!(env!("OUT_DIR"), "/pyxis.rs"));
+}
+
+#[cfg(feature = "r2a")]
+pub mod r2a {
+    include!(concat!(env!("OUT_DIR"), "/r2a.rs"));
+}
+
+#[cfg(feature = "test")]
+pub mod test {
+    include!(concat!(env!("OUT_DIR"), "/test.rs"));
+}
diff --git a/src/bindings/mod.rs b/src/bindings/mod.rs
deleted file mode 100644
index 594b93d..0000000
--- a/src/bindings/mod.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "gemini")]
-pub mod gemini;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "hermes")]
-pub mod hermes;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "lynx")]
-pub mod lynx;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "lyra")]
-pub mod lyra;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "pyxis")]
-pub mod pyxis;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "r2a")]
-pub mod r2a;
-#[allow(non_camel_case_types)]
-#[allow(clippy::derive_partial_eq_without_eq)]
-#[allow(clippy::field_reassign_with_default)]
-#[allow(non_snake_case)]
-#[allow(clippy::unnecessary_cast)]
-#[allow(clippy::bad_bit_mask)]
-#[cfg(feature = "test")]
-pub mod test;
-- 
GitLab