diff --git a/embedded-nal-async/build.rs b/embedded-nal-async/build.rs new file mode 100644 index 0000000..d58f744 --- /dev/null +++ b/embedded-nal-async/build.rs @@ -0,0 +1,18 @@ +use std::env; +use std::ffi::OsString; +use std::process::Command; + +fn main() { + println!("cargo:rerun-if-changed=build.rs"); + + let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")); + + let output = Command::new(rustc) + .arg("--version") + .output() + .expect("failed to run `rustc --version`"); + + if String::from_utf8_lossy(&output.stdout).contains("nightly") { + println!("cargo:rustc-cfg=nightly"); + } +} diff --git a/embedded-nal-async/src/lib.rs b/embedded-nal-async/src/lib.rs index 34beda3..17f3533 100644 --- a/embedded-nal-async/src/lib.rs +++ b/embedded-nal-async/src/lib.rs @@ -1,8 +1,9 @@ //! # embedded-nal-async - An async Network Abstraction Layer for Embedded Systems #![no_std] -#![feature(async_fn_in_trait, impl_trait_projections)] -#![allow(stable_features, unknown_lints, async_fn_in_trait)] +#![cfg_attr(nightly, allow(stable_features, unknown_lints))] +#![cfg_attr(nightly, feature(async_fn_in_trait, impl_trait_projections))] +#![allow(async_fn_in_trait)] #![deny(missing_docs)] #![deny(unsafe_code)] #![cfg_attr(feature = "ip_in_core", feature(ip_in_core))]