name: CMake on: push: branches: [ master ] tags: - '*' pull_request: branches: [ master ] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: # The CMake configure and build commands are platform agnostic and should work equally # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] include: - os: macos-latest cmake: cmake - os: ubuntu-latest cmake: cmake - os: windows-latest cmake: .\.github\workflows\build-windows.bat cmake steps: - uses: actions/checkout@v2 - uses: seanmiddleditch/gha-setup-ninja@master - name: Install Linux Dependencies run: | sudo apt-get update sudo apt-get install libprocps-dev libopencv-dev libopencv-dev wine64-tools sudo apt-get install qttools5-dev qtbase5-dev libqt5serialport5-dev qtbase5-private-dev if: matrix.os == 'ubuntu-latest' - name: Install Qt uses: jurplel/install-qt-action@v3 with: archives: qtbase qtimageformats qtgamepad qttools qtserialport qtmultimedia if: matrix.os != 'ubuntu-latest' - name: Configure run: ${{matrix.cmake}} -GNinja -S ${{github.workspace}}/ -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DQt5_DIR=${{env.Qt5_DIR}} -DQt5Gui_DIR=${{env.Qt5_DIR}}/lib/cmake/Qt5Gui - name: Build run: ${{matrix.cmake}} --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install - name: Upload build uses: actions/upload-artifact@v3 with: name: buildoutput path: ${{github.workspace}}/build/