name: CMake on: push: branches: [ "master" ] pull_request: branches: [ "master" ] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: check-code-style: runs-on: ubuntu-22.04 name: "Check code style" steps: - name: Checkout uses: actions/checkout@v4 - name: Perform check run: ./tools/check_code_style.sh build: runs-on: ubuntu-${{ matrix.ubuntu_version }} name: Ubuntu-${{ matrix.ubuntu_version }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }} needs: check-code-style strategy: fail-fast: false matrix: ubuntu_version: [22.04] qt_version: [5.15.2, 6.4.0] static: [ON, OFF] steps: - name: Checkout uses: actions/checkout@v4 with: fetch-tags: true # https://github.com/actions/checkout/issues/1781 # workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284 - name: Fetch tags run: git fetch --prune --unshallow --tags - name: Install Qt uses: jurplel/install-qt-action@v3 with: version: ${{ matrix.qt_version }} cache: 'true' cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }} dir: ${{ github.workspace }}/Qt - name: Configure CMake for Qt5 if: "startsWith(matrix.qt_version, '5.')" run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" - name: Configure CMake for Qt6 if: "startsWith(matrix.qt_version, '6.')" run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} # MSVC: # name: windows-${{ matrix.win_version }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }} # runs-on: windows-${{ matrix.win_version }} # needs: check-code-style # strategy: # fail-fast: false # matrix: # win_version: [2022] # qt_version: [5.15.2, 6.4.0] # static: [ON, OFF] # steps: # - name: Checkout # uses: actions/checkout@v4 # with: # fetch-tags: true # # https://github.com/actions/checkout/issues/1781 # # workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284 # - name: Fetch tags # run: git fetch --prune --unshallow --tags # - name: Install Qt # uses: jurplel/install-qt-action@v3 # with: # version: ${{ matrix.qt_version }} # cache: 'true' # cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }} # dir: ${{ github.workspace }}/Qt # - name: Configure CMake for Qt5 # if: "startsWith(matrix.qt_version, '5.')" # run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" # - name: Configure CMake for Qt6 # if: "startsWith(matrix.qt_version, '6.')" # run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" # - name: Build # run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} # MinGW-w64: # runs-on: windows-2022 # name: msys2-${{ matrix.msystem }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }} # needs: check-code-style # strategy: # fail-fast: false # matrix: # qt_version: [5, 6] # msystem: [UCRT64, CLANG64] # static: [ON, OFF] # defaults: # run: # shell: msys2 {0} # steps: # - name: Checkout # uses: actions/checkout@v4 # with: # fetch-tags: true # - name: Install MinGW-w64 packages Qt5 # if: "startsWith(matrix.qt_version, '5')" # uses: msys2/setup-msys2@v2 # with: # msystem: ${{ matrix.msystem }} # release: false # update: true # pacboy: >- # cc:p # cmake:p # ninja:p # git: # qt${{ matrix.qt_version }}-base:p # qt${{ matrix.qt_version }}-svg:p # qt${{ matrix.qt_version }}-tools:p # qt${{ matrix.qt_version }}-quickcontrols:p # - name: Install MinGW-w64 packages Qt6 # if: "startsWith(matrix.qt_version, '6')" # uses: msys2/setup-msys2@v2 # with: # msystem: ${{ matrix.msystem }} # release: false # update: true # pacboy: >- # cc:p # cmake:p # ninja:p # git: # qt${{ matrix.qt_version }}-base:p # qt${{ matrix.qt_version }}-svg:p # qt${{ matrix.qt_version }}-tools:p # qt${{ matrix.qt_version }}-declarative:p # # https://github.com/actions/checkout/issues/1781 # # workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284 # - name: Fetch tags # run: git fetch --prune --unshallow --tags # - name: Configure CMake for Qt5 # if: "startsWith(matrix.qt_version, '5')" # run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" # - name: Configure CMake for Qt6 # if: "startsWith(matrix.qt_version, '6')" # run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" # - name: Build # run: cmake --build '${{github.workspace}}/build' --config ${{env.BUILD_TYPE}} macos: runs-on: macos-latest name: macos-latest-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }} needs: check-code-style strategy: fail-fast: false matrix: macos_version: [12] qt_version: [5.15.2, 6.4.0] static: [ON, OFF] steps: - name: Checkout uses: actions/checkout@v4 with: fetch-tags: true # https://github.com/actions/checkout/issues/1781 # workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284 - name: Fetch tags run: git fetch --prune --unshallow --tags - name: Install Qt uses: jurplel/install-qt-action@v3 with: version: ${{ matrix.qt_version }} cache: 'true' cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }} dir: ${{ github.workspace }}/Qt - name: Configure CMake for Qt5 if: "startsWith(matrix.qt_version, '5.')" run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" - name: Configure CMake for Qt6 if: "startsWith(matrix.qt_version, '6.')" run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build" - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}