From 943ba2973ff76cb8925468eca00697d75c5f6c21 Mon Sep 17 00:00:00 2001 From: kaichao Date: Fri, 3 Jul 2026 01:13:53 +0800 Subject: [PATCH] chore: gate embed p2p transport on cargo feature (#157) * chore: gate logos-delivery transport on cargo feature, not env-dependent cfg * chore: fix clippy --- extensions/components/build.rs | 15 +++++++-------- extensions/components/src/delivery.rs | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/extensions/components/build.rs b/extensions/components/build.rs index 7ab87a7..5696f2b 100644 --- a/extensions/components/build.rs +++ b/extensions/components/build.rs @@ -4,23 +4,22 @@ use std::process::Command; fn main() { println!("cargo:rerun-if-env-changed=LOGOS_DELIVERY_LIB_DIR"); - println!("cargo::rustc-check-cfg=cfg(logos_delivery)"); if std::env::var_os("CARGO_FEATURE_EMBEDDED_P2P_DELIVERY").is_none() { return; } let Some(lib_dir) = locate_lib_dir() else { - // Feature is on but the native library is unavailable (e.g. `cargo - // check` on a machine without nix). Skip the cfg so the FFI module is - // not compiled — this keeps `cargo check` working without producing - // unresolved symbols at link time. `EmbeddedP2pDeliveryService` is - // simply absent until the library can be found. + println!( + "cargo:warning=embedded_p2p_delivery feature is enabled but \ + liblogosdelivery could not be located; `cargo check`/`clippy` will \ + pass, but building or testing will fail at link. Enter the dev shell \ + with `nix develop` or set LOGOS_DELIVERY_LIB_DIR to the directory \ + containing the library." + ); return; }; - println!("cargo:rustc-cfg=logos_delivery"); - let out_dir = std::env::var("OUT_DIR").expect("OUT_DIR not set"); let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default(); diff --git a/extensions/components/src/delivery.rs b/extensions/components/src/delivery.rs index 172c315..667d49c 100644 --- a/extensions/components/src/delivery.rs +++ b/extensions/components/src/delivery.rs @@ -2,8 +2,8 @@ mod local_broadcaster; pub use local_broadcaster::LocalBroadcaster; -#[cfg(logos_delivery)] +#[cfg(feature = "embedded_p2p_delivery")] pub mod embedded_p2p_delivery; -#[cfg(logos_delivery)] +#[cfg(feature = "embedded_p2p_delivery")] pub use embedded_p2p_delivery::{EmbeddedP2pDeliveryService, P2pConfig};