{"record":{"id":"f25be2cae72e7cd0","repo":"embassy-rs/embassy","slug":"no-mimxrt-lpc-cargo-feature-enabled","errorCode":null,"errorMessage":"No mimxrt/lpc Cargo feature enabled","messagePattern":"No mimxrt/lpc Cargo feature enabled","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"embassy-nxp/build.rs","lineNumber":29,"sourceCode":"use proc_macro2::{Ident, Literal, Span};\nuse quote::format_ident;\n#[allow(unused)]\nuse quote::quote;\n\n#[path = \"./build_common.rs\"]\nmod common;\n\nfn main() {\n    let mut cfgs = common::CfgSet::new();\n    common::set_target_cfgs(&mut cfgs);\n\n    let chip_name = match env::vars()\n        .map(|(a, _)| a)\n        .filter(|x| x.starts_with(\"CARGO_FEATURE_MIMXRT\") || x.starts_with(\"CARGO_FEATURE_LPC\"))\n        .get_one()\n    {\n        Ok(x) => x,\n        Err(GetOneError::None) => panic!(\"No mimxrt/lpc Cargo feature enabled\"),\n        Err(GetOneError::Multiple) => panic!(\"Multiple mimxrt/lpc Cargo features enabled\"),\n    }\n    .strip_prefix(\"CARGO_FEATURE_\")\n    .unwrap()\n    .to_ascii_lowercase();\n\n    let singletons = singletons(&mut cfgs);\n\n    cfg_aliases! {\n        rt1xxx: { any(feature = \"mimxrt1011\", feature = \"mimxrt1062\") },\n    }\n\n    cfg_aliases! {\n        lpc55: { any(feature = \"lpc55s16\", feature = \"lpc55-core0\") },\n    }\n\n    eprintln!(\"chip: {chip_name}\");\n","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/embassy-rs/embassy/blob/463a07b963419a1bfe61d5d597c44acb810afb8b/embassy-nxp/build.rs#L11-L47","documentation":"embassy-nxp's build script generates chip-specific code (singletons, registers, pins) based on which Cargo feature selects the target chip family. It expects exactly one `CARGO_FEATURE_MIMXRT*` or `CARGO_FEATURE_LPC*` environment variable set by Cargo. If none is present, no chip can be selected and the build script panics with this message.","triggerScenarios":"Building embassy-nxp as a dependency without enabling any chip feature (e.g. adding it to Cargo.toml with `default-features = false` and no chip feature), or running `cargo build` in the crate without `--features mimxrt1062` (or equivalent).","commonSituations":"Manually editing Cargo.toml and dropping feature flags; using `-Z avoid-dev-deps` or vendoring that strips default features; starting a fresh project from the crate skeleton before choosing a board.","solutions":["Enable exactly one chip feature in Cargo.toml, e.g. `embassy-nxp = { version = \"...\", features = [\"mimxrt1062\"] }`.","Check `cargo tree -e features` / `cargo metadata` to confirm another dependency isn't disabling your features (`default-features = false` downstream).","Run `cargo build -vv` and inspect `CARGO_FEATURE_*` env vars if unsure which features are visible to build scripts."],"exampleFix":"// before (Cargo.toml)\nembassy-nxp = { version = \"0.1\", default-features = false }\n// after\nembassy-nxp = { version = \"0.1\", features = [\"mimxrt1062\"] }","handlingStrategy":"validation","validationCode":"# In CI before building:\ngrep -q 'features = \\[\"mimxrt\\|lpc' Cargo.toml || (echo 'No NXP chip feature enabled' && exit 1)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always enable exactly one chip feature when adding embassy-nxp to Cargo.toml.","Add a CI check that `cargo metadata` shows the required feature enabled.","Don't copy `default-features = false` from unrelated crates without adding a chip feature."],"tags":["embedded","cargo","build-script","feature-flags","nxp"],"backgroundTag":"feature-not-enabled","analyzedSha":"463a07b963419a1bfe61d5d597c44acb810afb8b","analyzedAt":"2026-09-10T13:38:26.660Z","contentChangedAt":"2026-09-10T13:38:26.660Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}