diff --git a/build.rs b/build.rs index c3277ecc9dff2f6982b2f8ca2fc440952f40dfe1..932fceaff808799f7d61e40aa191ef6a346b6233 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 0000000000000000000000000000000000000000..725b2b7a222f9dd085aca0b2e9377a7845773a0e --- /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 594b93d8893589596e0284717aa3251336289631..0000000000000000000000000000000000000000 --- 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;