name: Linux Build GCC on: workflow_call: inputs: cmakePreset: required: true type: string cachePrefix: required: true type: string jobs: build: name: GCC runs-on: ubuntu-20.04 timeout-minutes: 60 steps: - name: Checkout Repository uses: actions/checkout@v4 - name: Install Package Dependencies run: | sudo apt update sudo apt install build-essential cmake \ clang gcc-10 g++-10 lcov make nasm libxrandr-dev \ libxinerama-dev libxcursor-dev libpulse-dev \ libxi-dev zip ninja-build libgl1-mesa-dev libssl-dev sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 sudo update-alternatives --set gcc /usr/bin/gcc-10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 sudo update-alternatives --set g++ /usr/bin/g++-10 - name: Setup sccache uses: hendrikmuhs/ccache-action@v1.2.12 with: variant: sccache key: linux-ubuntu-20.04-${{ inputs.cachePrefix }}-${{ inputs.cmakePreset }}-${{ github.sha }} restore-keys: linux-ubuntu-20.04-${{ inputs.cachePrefix }}-${{ inputs.cmakePreset }} max-size: 1000M - name: CMake Generation env: CC: gcc CXX: g++ run: | cmake -B build --preset=${{ inputs.cmakePreset }} \ -DCODE_COVERAGE=OFF \ -DCMAKE_C_COMPILER_LAUNCHER=sccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=sccache - name: Build Project run: cmake --build build --parallel $((`nproc`)) -- -w dupbuild=warn - name: Run Tests run: ./test.sh