Skip to content

Commit

Permalink
Merge pull request #534 from Dirbaio/feature-nightly-only
Browse files Browse the repository at this point in the history
Use `feature()` on nightly toolchains only.
  • Loading branch information
Dirbaio authored Nov 28, 2023
2 parents d9e2ca0 + c9fbac0 commit 9e939bb
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 10 deletions.
18 changes: 18 additions & 0 deletions embedded-hal-async/build.rs
Original file line number Diff line number Diff line change
@@ -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");
}
}
5 changes: 2 additions & 3 deletions embedded-hal-async/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@
// Needed to pass CI, because we deny warnings.
// We don't immediately remove them to not immediately break older nightlies.
// When all features are stable, we'll remove them.
#![allow(stable_features)]
#![allow(unknown_lints)]
#![cfg_attr(nightly, allow(stable_features, unknown_lints))]
#![cfg_attr(nightly, feature(async_fn_in_trait, impl_trait_projections))]
#![allow(async_fn_in_trait)]
#![feature(async_fn_in_trait, impl_trait_projections)]

pub mod delay;
pub mod digital;
Expand Down
18 changes: 18 additions & 0 deletions embedded-hal-bus/build.rs
Original file line number Diff line number Diff line change
@@ -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");
}
}
7 changes: 5 additions & 2 deletions embedded-hal-bus/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
// Needed to pass CI, because we deny warnings.
// We don't immediately remove them to not immediately break older nightlies.
// When all features are stable, we'll remove them.
#![cfg_attr(feature = "async", allow(stable_features))]
#![cfg_attr(feature = "async", feature(async_fn_in_trait, impl_trait_projections))]
#![cfg_attr(all(feature = "async", nightly), allow(stable_features))]
#![cfg_attr(
all(feature = "async", nightly),
feature(async_fn_in_trait, impl_trait_projections)
)]

// needed to prevent defmt macros from breaking, since they emit code that does `defmt::blahblah`.
#[cfg(feature = "defmt-03")]
Expand Down
18 changes: 18 additions & 0 deletions embedded-io-adapters/build.rs
Original file line number Diff line number Diff line change
@@ -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");
}
}
4 changes: 2 additions & 2 deletions embedded-io-adapters/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
// We don't immediately remove them to not immediately break older nightlies.
// When all features are stable, we'll remove them.
#![cfg_attr(
any(feature = "tokio-1", feature = "futures-03"),
all(any(feature = "tokio-1", feature = "futures-03"), nightly),
allow(stable_features)
)]
#![cfg_attr(
any(feature = "tokio-1", feature = "futures-03"),
all(any(feature = "tokio-1", feature = "futures-03"), nightly),
feature(async_fn_in_trait, impl_trait_projections)
)]

Expand Down
18 changes: 18 additions & 0 deletions embedded-io-async/build.rs
Original file line number Diff line number Diff line change
@@ -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");
}
}
5 changes: 2 additions & 3 deletions embedded-io-async/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@
// Needed to pass CI, because we deny warnings.
// We don't immediately remove them to not immediately break older nightlies.
// When all features are stable, we'll remove them.
#![allow(stable_features)]
#![allow(unknown_lints)]
#![cfg_attr(nightly, allow(stable_features, unknown_lints))]
#![cfg_attr(nightly, feature(async_fn_in_trait, impl_trait_projections))]
#![allow(async_fn_in_trait)]
#![feature(async_fn_in_trait, impl_trait_projections)]

#[cfg(feature = "alloc")]
extern crate alloc;
Expand Down

0 comments on commit 9e939bb

Please sign in to comment.