| name: ubuntu |
| |
| permissions: |
| contents: read |
| |
| on: [push, pull_request] |
| |
| env: |
| CFLAGS: -Wall -Werror |
| |
| jobs: |
| test: |
| strategy: |
| matrix: |
| compiler: [clang-15, gcc] |
| os: [ubuntu-22.04, ubuntu-20.04] |
| build: [meson, autotools] |
| runs-on: ${{ matrix.os }} |
| env: |
| CC: ${{ matrix.compiler }} |
| DISTRO: ${{ matrix.os }} |
| steps: |
| - name: 'Checkout' |
| uses: actions/checkout@v4 |
| - name: 'Install toolchain' |
| if: ${{ (matrix.compiler == 'clang-15') }} |
| run: .github/workflows/install-clang.sh 15 |
| - name: 'Install prerequisites' |
| run: | |
| sudo apt-get update |
| sudo apt-get install -y \ |
| libdrm-dev \ |
| libegl1-mesa-dev \ |
| libgl1-mesa-dev \ |
| libx11-dev \ |
| libx11-xcb-dev \ |
| libxcb-dri3-dev \ |
| libxext-dev \ |
| libxfixes-dev \ |
| libwayland-dev \ |
| meson |
| - name: 'Print compiler version' |
| run: ${{ matrix.compiler }} --version |
| - name: 'Configure (meson)' |
| if: ${{ (matrix.build == 'meson') }} |
| run: meson setup ./builddir --prefix=/usr |
| - name: 'Build (meson)' |
| if: ${{ (matrix.build == 'meson') }} |
| run: meson compile -C ./builddir || ninja -C ./builddir |
| - name: 'Install (meson)' |
| if: ${{ (matrix.build == 'meson') }} |
| run: sudo meson install -C ./builddir |
| |
| - name: 'Configure (autotools)' |
| if: ${{ (matrix.build == 'autotools') }} |
| run: ./autogen.sh --prefix=/usr |
| - name: 'Build (autotools)' |
| if: ${{ (matrix.build == 'autotools') }} |
| run: make |
| - name: 'Build and Install (autotools)' |
| if: ${{ (matrix.build == 'autotools') }} |
| run: sudo make install |