From d4ee95e445177e40c635ae45b676b20547ea94dc Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Thu, 14 Aug 2025 12:51:22 -0700 Subject: [PATCH] feature cleanup --- rustybits/build.rs | 34 +++++++++++++++++++++------------- rustybits/src/ext.rs | 5 +++++ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/rustybits/build.rs b/rustybits/build.rs index 1d0d01e36..451d4ac3a 100644 --- a/rustybits/build.rs +++ b/rustybits/build.rs @@ -5,20 +5,28 @@ use std::env; use std::path::PathBuf; fn main() { - let mut prost_build = prost_build::Config::new(); + #[cfg(feature = "ztcontroller")] + { + // Ensure the `cbindgen` crate is available + cbindgen::generate("src/ext.rs") + .expect("Unable to generate bindings") + .write_to_file("rustybits.h"); - prost_build - .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") - .compile_protos( - &[ - "src/pubsub/metadata.proto", - "src/pubsub/network.proto", - "src/pubsub/member.proto", - "src/pubsub/member_status.proto", - ], - &["src/pubsub/"], - ) - .expect("Failed to compile protobuf files"); + let mut prost_build = prost_build::Config::new(); + + prost_build + .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") + .compile_protos( + &[ + "src/pubsub/metadata.proto", + "src/pubsub/network.proto", + "src/pubsub/member.proto", + "src/pubsub/member_status.proto", + ], + &["src/pubsub/"], + ) + .expect("Failed to compile protobuf files"); + } let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); diff --git a/rustybits/src/ext.rs b/rustybits/src/ext.rs index 30ac7652b..50962d785 100644 --- a/rustybits/src/ext.rs +++ b/rustybits/src/ext.rs @@ -14,15 +14,20 @@ use std::ffi::{CStr, CString}; use std::os::raw::c_char; #[cfg(feature = "ztcontroller")] use std::os::raw::c_void; +#[cfg(feature = "ztcontroller")] use std::sync::Arc; +#[cfg(feature = "ztcontroller")] use std::time::Duration; #[cfg(feature = "ztcontroller")] use tokio::runtime; use url::Url; +#[cfg(feature = "ztcontroller")] static mut RT: Option = None; +#[cfg(feature = "ztcontroller")] static START: std::sync::Once = std::sync::Once::new(); +#[cfg(feature = "ztcontroller")] static SHUTDOWN: std::sync::Once = std::sync::Once::new(); #[cfg(feature = "ztcontroller")]