name: CMake on: push: pull_request: env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: name: ${{matrix.name}} (C++) runs-on: ubuntu-20.04 strategy: matrix: include: - name: Pico board: pico - name: Pico W board: pico_w env: PICO_SDK_PATH: $GITHUB_WORKSPACE/pico-sdk steps: - name: Compiler Cache uses: actions/cache@v4 with: path: /home/runner/.ccache key: ccache-cmake-${{github.ref}}-${{matrix.board}}-${{github.sha}} restore-keys: | ccache-cmake-${{github.ref}}-${{matrix.board}} ccache-cmake-${{github.ref}} ccache-cmake - uses: actions/checkout@v4 with: submodules: true # Check out the Pico SDK - name: Checkout Pico SDK uses: actions/checkout@v4 with: repository: raspberrypi/pico-sdk path: pico-sdk submodules: true # Check out the Pico Extras - name: Checkout Pico Extras uses: actions/checkout@v4 with: repository: raspberrypi/pico-extras path: pico-extras submodules: false # lwip breaks audio submodule fetching # Linux deps - name: Install deps if: runner.os == 'Linux' run: | sudo apt update && sudo apt install ccache gcc-arm-none-eabi - name: Create Build Environment run: cmake -E make_directory ${{runner.workspace}}/build - name: Configure CMake shell: bash working-directory: ${{runner.workspace}}/build run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DPICO_SDK_PATH=$GITHUB_WORKSPACE/pico-sdk -DPICO_SDK_POST_LIST_DIRS=$GITHUB_WORKSPACE/pico-extras -DPICO_BOARD=${{matrix.board}} - name: Build working-directory: ${{runner.workspace}}/build shell: bash run: | ccache --zero-stats || true cmake --build . --config $BUILD_TYPE -j 2 ccache --show-stats || true