# Rust toolchain for the PM track-format crate (Stage 1 of the Rust port).
# Host-tested codec for now; the RP2350 firmware target is added for later stages.
FROM docker.io/library/rust:1-slim

# Firmware targets: Cortex-M33 (thumbv8m) for the RP2350 (pm-kit), Cortex-M0+ (thumbv6m) for the
# plain RP2040 (pm-grid / Pico Scroll Pack), Cortex-M7F (thumbv7em-eabihf) for the STM32H750
# (pm-daisy / Daisy Pod). Harmless for the host tests.
RUN rustup target add thumbv8m.main-none-eabihf thumbv6m-none-eabi thumbv7em-none-eabihf \
 && rustup component add llvm-tools-preview \
 && cargo install flip-link    # stack-overflow-safe linker (overflow faults instead of corrupting statics)

WORKDIR /work/rust
