build: Update to C++20

This commit is contained in:
Lars Toenning
2026-06-14 22:02:36 +02:00
parent f50c956ab8
commit 55be798c3d
88 changed files with 343 additions and 431 deletions

View File

@@ -32,7 +32,7 @@ env:
jobs:
preBuild:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository }}
outputs:
version: ${{ steps.version.outputs.value }}
@@ -168,7 +168,7 @@ jobs:
python3 scripts/run_static_analysis.py --clang-tidy --build-path build --changed-files-ci
buildLinux:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [preBuild, checks]
env:
BACKTRACE_SYMBOL_TOKEN: ${{ secrets.BACKTRACE_SYMBOL_TOKEN }}
@@ -274,7 +274,7 @@ jobs:
path: ${{ github.workspace }}/xswiftbus-*
buildWin64:
runs-on: windows-2022
runs-on: windows-2025-vs2026
needs: [preBuild, checks]
env:
BACKTRACE_SYMBOL_TOKEN: ${{ secrets.BACKTRACE_SYMBOL_TOKEN }}
@@ -345,11 +345,10 @@ jobs:
ARTIFACTORY_USER: ${{ secrets.ARTIFACTORY_USER }}
ARTIFACTORY_TOKEN: ${{ secrets.ARTIFACTORY_TOKEN }}
run: |
conan profile detect
conan remote disable conancenter
conan remote add swift https://artifactory.swift-project.org/artifactory/api/conan/conan-local
conan remote login swift "$ARTIFACTORY_USER" --password "$ARTIFACTORY_TOKEN"
conan install . --output-folder=build_conan --deployer=full_deploy -pr=ci/profile_win
conan install . --output-folder=build_conan --deployer=full_deploy -pr:h=ci/profile_win -pr:b=ci/profile_win
- name: Create Vatsim key file
if: ${{ env.do_vatsim_key == 'true' }}
run: |
@@ -388,7 +387,7 @@ jobs:
path: ${{ github.workspace }}/xswiftbus-*
buildMacOS:
runs-on: macos-15
runs-on: macos-26
needs: [preBuild, checks]
env:
BACKTRACE_SYMBOL_TOKEN: ${{ secrets.BACKTRACE_SYMBOL_TOKEN }}
@@ -426,6 +425,9 @@ jobs:
EOF
env:
BITROCK_LICENSE: ${{ secrets.BITROCK_LICENSE }}
- uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install dependencies
run: |
pip3 install requests conan
@@ -452,14 +454,13 @@ jobs:
run: |
# Empty presets to avoid autogenerated config from Conan
echo "{\"version\": 6}" > CMakeUserPresets.json
conan profile detect
conan remote disable conancenter
conan remote add swift https://artifactory.swift-project.org/artifactory/api/conan/conan-local
conan remote login swift "$ARTIFACTORY_USER" --password "$ARTIFACTORY_TOKEN"
conan install . --output-folder=build_conan --deployer=full_deploy -pr=ci/profile_mac
conan install . --output-folder=build_conan_arm --deployer=full_deploy -pr=ci/profile_mac_arm
conan install . --output-folder=build_conan --deployer=full_deploy -pr:h=ci/profile_mac -pr:b=ci/profile_mac_arm
conan install . --output-folder=build_conan_arm --deployer=full_deploy -pr:h=ci/profile_mac_arm -pr:b=ci/profile_mac_arm
# https://doc.qt.io/qt-6/macos-issues.html#d-bus-and-macos
conan install --requires=dbus/1.15.8 --output-folder build_conan_dbus_shared --deployer=full_deploy -o "dbus/*:shared=True" -o "dbus/*:message_bus=True" -pr=ci/profile_mac
conan install --requires=dbus/1.15.8 --output-folder build_conan_dbus_shared --deployer=full_deploy -o "dbus/*:shared=True" -o "dbus/*:message_bus=True" -pr:h=ci/profile_mac -pr:b=ci/profile_mac_arm
- name: Create Vatsim key file
if: ${{ env.do_vatsim_key == 'true' }}
run: |
@@ -496,7 +497,7 @@ jobs:
path: ${{ github.workspace }}/xswiftbus-*
postBuild:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [preBuild, checks, buildLinux, buildWin64, buildMacOS]
steps:
@@ -522,7 +523,7 @@ jobs:
name: xswiftbus-thin-*
release:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [preBuild, postBuild]
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
outputs:
@@ -560,10 +561,10 @@ jobs:
xswiftbus-fat-allos-${{ needs.preBuild.outputs.version }}.zip
swiftsymbols-allos-${{ needs.preBuild.outputs.version }}:swiftsymbols
- name: Publish doxygen
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
notify:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: [preBuild, checks, buildLinux, buildWin64, buildMacOS, postBuild, release]
if: always()
@@ -600,7 +601,7 @@ jobs:
CHECK_RUNS: ${{ join(fromJson(steps.checkruns.outputs.data).check_runs.*.id, ' ') }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare Discord release message
uses: octokit/request-action@v2.x
uses: octokit/request-action@v3.x
if: ${{ needs.release.result == 'success' }}
id: release
env: