If the embassy feature is enabled, ensure that a time driver implementation is available (#608)

This commit is contained in:
Jesse Braham 2023-06-21 06:16:07 -07:00 committed by Scott Mabin
parent c0ef68115f
commit 8a958e92bc

View File

@ -1,4 +1,8 @@
use std::{env, fs, path::PathBuf};
use std::{
env,
fs,
path::{Path, PathBuf},
};
use serde::Deserialize;
@ -144,13 +148,20 @@ fn main() {
println!("cargo:rustc-cfg={peripheral}");
}
// check PSRAM features are only given if the target supports PSRAM
// Check PSRAM features are only given if the target supports PSRAM
if !&device.peripherals.contains(&String::from("psram"))
&& (cfg!(feature = "psram_2m") || cfg!(feature = "psram_4m") || cfg!(feature = "psram_8m"))
{
panic!("The target does not support PSRAM");
}
// If the `embassy` feature is enabled, ensure that a time driver implementation
// is available
#[cfg(feature = "embassy")]
{
assert_unique_used_features!("embassy-time-systick", "embassy-time-timg0");
}
// Place all linker scripts in `OUT_DIR`, and instruct Cargo how to find these
// files:
let out = PathBuf::from(env::var_os("OUT_DIR").unwrap());
@ -169,10 +180,7 @@ fn main() {
gen_efuse_table(device_name, out);
}
fn copy_dir_all(
src: impl AsRef<std::path::Path>,
dst: impl AsRef<std::path::Path>,
) -> std::io::Result<()> {
fn copy_dir_all(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> std::io::Result<()> {
fs::create_dir_all(&dst)?;
for entry in fs::read_dir(src)? {
let entry = entry?;
@ -186,10 +194,10 @@ fn copy_dir_all(
Ok(())
}
fn gen_efuse_table(device_name: &str, out_dir: impl AsRef<std::path::Path>) {
fn gen_efuse_table(device_name: &str, out_dir: impl AsRef<Path>) {
use std::io::{BufRead, Write};
let src_path = std::path::PathBuf::from(format!("src/soc/{device_name}/efuse.csv"));
let src_path = PathBuf::from(format!("src/soc/{device_name}/efuse.csv"));
let out_path = out_dir.as_ref().join("efuse_fields.rs");
println!("cargo:rerun-if-changed={}", src_path.display());