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, windows-latest, ubuntu-latest] steps: - uses: actions/checkout@v2 - uses: seanmiddleditch/gha-setup-ninja@master - name: Install Linux Dependencies run: sudo apt update && sudo apt install libprocps-dev libopencv-dev libopencv-dev if: matrix.os == 'ubuntu-latest' - name: Cache Qt id: cache-qt uses: actions/cache@v1 with: path: ../Qt key: ${{ runner.os }}-QtCache - name: Install Qt uses: jurplel/install-qt-action@v2 with: cached: ${{ steps.cache-qt.outputs.cache-hit }} - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: cmake -G "Ninja Multi-Config" -S ${{github.workspace}}/ -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} if: matrix.os != 'windows-latest' - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install if: matrix.os != 'windows-latest' - name: Configure win32 run: \"${{github.workspace}}/.github/workflows/build-windows.bat\" cmake -G "Ninja Multi-Config" -S ${{github.workspace}}/ -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} if: matrix.os == 'windows-latest' - name: Build win32 run: \"${{github.workspace}}/.github/workflows/build-windows.bat\" cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install if: matrix.os == 'windows-latest' - name: Upload build uses: actions/upload-artifact@v2.2.4 with: name: buildoutput path: ${{github.workspace}}/build/