diff --git a/.github/workflows/cpal.yml b/.github/workflows/cpal.yml index 765e6f09d..b5c2de1be 100644 --- a/.github/workflows/cpal.yml +++ b/.github/workflows/cpal.yml @@ -104,6 +104,21 @@ jobs: - name: Test all features for armv7 run: cross test --target armv7-unknown-linux-gnueabihf --workspace --all-features --verbose + linux-check-and-test-arm64: + runs-on: ubuntu-24.04-arm + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Build Docker container for arm64 + run: docker build -f Dockerfile.arm64 -t cpal-arm64 . + + - name: Run without features + run: docker run --rm cpal-arm64 cargo test --all --no-default-features --verbose + + - name: Run all features + run: docker run --rm cpal-arm64 cargo test --all --all-features --verbose + asmjs-wasm32-test: strategy: matrix: diff --git a/CHANGELOG.md b/CHANGELOG.md index b3f6277db..16db195fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - CoreAudio: Detect default audio device lazily when building a stream, instead of during device enumeration. - iOS: Fix example by properly activating audio session. - WASAPI: Expose IMMDevice from WASAPI host Device. +- ALSA: Added support for arm64 Linux development, introducing a new Dockerfile. # Version 0.16.0 (2025-06-07) diff --git a/Dockerfile b/Dockerfile index 3fa3b24ab..8e56a2efd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ ARG CROSS_BASE_IMAGE FROM $CROSS_BASE_IMAGE -ENV PKG_CONFIG_ALLOW_CROSS 1 -ENV PKG_CONFIG_PATH /usr/lib/arm-linux-gnueabihf/pkgconfig/ +ENV PKG_CONFIG_ALLOW_CROSS=1 +ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ RUN dpkg --add-architecture armhf && \ apt-get update && \ diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 new file mode 100644 index 000000000..62b886fbd --- /dev/null +++ b/Dockerfile.arm64 @@ -0,0 +1,17 @@ +FROM rust:latest + +# Install required dependencies +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + libasound2-dev \ + libjack-jackd2-dev \ + libjack-jackd2-0 \ + pkg-config \ + libdbus-1-dev + +# Set /cpal/ to working directory +WORKDIR /cpal +COPY . . + +# When running this Docker container, ensure ALSA devices are exposed +# using `--device /dev/snd` and `--group-add audio` \ No newline at end of file