| name: Build using CMake |
| on: |
| pull_request: |
| push: |
| branches: |
| - main |
| |
| permissions: |
| contents: read |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} |
| cancel-in-progress: true |
| jobs: |
| cmake-linux-local: |
| runs-on: ubuntu-latest |
| timeout-minutes: 40 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Update apt |
| run: sudo apt update |
| - name: Install ninja |
| run: sudo apt install ninja-build |
| - name: Configure and build |
| run: scripts/local-build.sh |
| working-directory: ${{ github.workspace }} |
| cmake-darwin: |
| runs-on: macos-latest |
| timeout-minutes: 40 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install ninja |
| run: brew install ninja |
| - name: Configure and build |
| run: scripts/local-build.sh |
| working-directory: ${{ github.workspace }} |
| cmake-windows: |
| runs-on: windows-latest |
| timeout-minutes: 40 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Install ninja |
| run: choco install ninja |
| - name: Configure and build |
| run: scripts/local-build.sh |
| shell: bash # Specify bash so we can reuse the build script on Windows (runs on Git bash) |
| working-directory: ${{ github.workspace }} |
| cmake-uwp: |
| runs-on: windows-latest |
| timeout-minutes: 40 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: 'x64-uwp(Debug)' |
| uses: lukka/run-cmake@v10 |
| with: |
| configurePreset: 'x64-uwp' |
| buildPreset: 'x64-uwp-dbg' |
| - name: 'x64-uwp(Release)' |
| uses: lukka/run-cmake@v10 |
| with: |
| configurePreset: 'x64-uwp' |
| buildPreset: 'x64-uwp-rel' |
| - name: 'arm64-uwp(Debug)' |
| uses: lukka/run-cmake@v10 |
| with: |
| configurePreset: 'arm64-uwp' |
| buildPreset: 'arm64-uwp-dbg' |
| - name: 'arm64-uwp(Release)' |
| uses: lukka/run-cmake@v10 |
| with: |
| configurePreset: 'arm64-uwp' |
| buildPreset: 'arm64-uwp-rel' |
| cmake-android: |
| strategy: |
| matrix: |
| script: [android-arm64-build.sh, android-armv7-build.sh, android-riscv64-build.sh, android-x86-build.sh] |
| runs-on: ubuntu-latest |
| timeout-minutes: 40 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Update apt |
| run: sudo apt update |
| - name: Install ninja |
| run: sudo apt install ninja-build |
| - name: Setup Android NDK |
| id: setup-ndk |
| uses: nttld/setup-ndk@v1.0.6 |
| with: |
| ndk-version: r27 |
| add-to-path: false |
| - name: Configure and build |
| run: scripts/${{ matrix.script }} |
| working-directory: ${{ github.workspace }} |
| env: |
| ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }} |
| cmake-linux-qemu: |
| runs-on: ubuntu-22.04 |
| timeout-minutes: 40 |
| strategy: |
| matrix: |
| build_props: |
| - [ |
| "cmake-linux-riscv64", |
| "riscv64/ubuntu:22.04" |
| ] |
| |
| name: ${{ matrix.build_props[0] }} |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Setup QEMU |
| uses: docker/setup-qemu-action@v3.0.0 |
| - name: Build cpuinfo in ${{ matrix.build_props[1] }} |
| run: | |
| docker run -i -v $(pwd):/cpuinfo ${{ matrix.build_props[1] }} /bin/bash -c " |
| apt update && |
| apt install -y cmake git gcc g++ && |
| cd /cpuinfo && |
| scripts/local-build.sh" |