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: include: - os: macos-latest CC: clang CXX: clang++ - os: ubuntu-latest CC: cc CXX: c++ - os: windows-latest environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat" 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: Kill gcc run: del /f C:\ProgramData\chocolatey\bin\c++.exe C:\ProgramData\chocolatey\bin\cc.exe C:\ProgramData\chocolatey\bin\ld.exe - 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 -S ${{github.workspace}}/ -B ${{github.workspace}}/build -G "Ninja Multi-Config" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} env: CC: ${{ matrix.CC }} CXX: ${{ matrix.CXX }} - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - name: Build install # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install - name: Upload build uses: actions/upload-artifact@v2.2.4 with: name: buildoutput path: ${{github.workspace}}/build/