use cfg_aliases::cfg_aliases; use std::env; const EXECUTOR_FEATURES: &[&str] = &[ "CARGO_FEATURE_RUNTIME_BASTION", "CARGO_FEATURE_RUNTIME_TOKIO", "CARGO_FEATURE_RUNTIME_ASYNCSTD", "CARGO_FEATURE_RUNTIME_SMOL", ]; fn main() { println!("cargo:rerun-if-changed=build.rs"); if EXECUTOR_FEATURES.iter().filter_map(env::var_os).count() > 1 { panic!("you can only enable one runtime feature flag for agnostik"); } cfg_aliases! { bastion: { feature = "runtime_bastion" }, tokio: { feature = "runtime_tokio" }, async_std: { feature = "runtime_asyncstd" }, smol: { feature = "runtime_smol" }, local_spawn: { any(tokio, async_std) }, enable: { any(smol, tokio, async_std, bastion) }, } }