# Cross-compilation environment for aarch64-unknown-linux-gnu. # Usage: docker build -t beaver-arm64-builder -f support/docker/Dockerfile.arm64 . FROM debian:bookworm-slim # Install host tools + cross-compilation support RUN dpkg --add-architecture arm64 && \ apt-get update && apt-get install -y --no-install-recommends \ # Host build tools build-essential pkg-config cmake python3 curl git ca-certificates \ clang lld llvm \ # Cross-compilation toolchain gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \ crossbuild-essential-arm64 \ # ARM64 native libraries libfreetype-dev:arm64 \ libfontconfig-dev:arm64 \ libgtk-3-dev:arm64 \ libpango1.0-dev:arm64 \ libpulse-dev:arm64 \ libudev-dev:arm64 \ libx11-xcb-dev:arm64 \ libxt-dev:arm64 \ libasound2-dev:arm64 \ libxkbcommon-dev:arm64 \ libgl-dev:arm64 \ libssl-dev:arm64 \ # Bluetooth (btleplug uses D-Bus on Linux) libdbus-1-dev:arm64 \ # GStreamer ARM64 libgstreamer1.0-dev:arm64 \ libgstreamer-plugins-base1.0-dev:arm64 \ libgstreamer-plugins-bad1.0-dev:arm64 \ && rm -rf /var/lib/apt/lists/* # Install Rust stable with aarch64 target RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \ sh -s -- -y --default-toolchain stable ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup target add aarch64-unknown-linux-gnu WORKDIR /src