FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:main
# Install clang, libclang (for bindgen), and dependencies
RUN set -eux; \
apt_opts='-o Acquire::Retries=5 -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30'; \
apt-get ${apt_opts} update; \
apt-get ${apt_opts} install -y \
cmake \
pkg-config \
clang \
llvm \
libclang-dev \
crossbuild-essential-arm64 \
libssl-dev; \
rm -rf /var/lib/apt/lists/*
# Install cross-compiled libs for ARM64
RUN set -eux; \
dpkg --add-architecture arm64; \
apt_opts='-o Acquire::Retries=5 -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30'; \
apt-get ${apt_opts} update; \
apt-get ${apt_opts} install -y \
libopus-dev:arm64 \
libssl-dev:arm64 || true; \
rm -rf /var/lib/apt/lists/*
# Bake all cross-compilation environment variables into the image
ENV LIBCLANG_PATH=/usr/lib/llvm-10/lib
ENV CC=clang
ENV CXX=clang++
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
ENV PKG_CONFIG_SYSROOT_DIR=/usr/aarch64-linux-gnu
ENV PKG_CONFIG_ALLOW_CROSS=1