From 741b31941b47fda3bef3036e1af7beb1b0217841 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 07:50:16 +0100 Subject: [PATCH 1/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 42aef854..55e662c9 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -103,6 +103,20 @@ jobs: cxx: "g++-14", cxxver: 20, } + - { + name: "Linux g++ 15 C++17", + os: ubuntu-24.04, + buildtype: Release, + cxx: "g++-15", + cxxver: 17, + } + - { + name: "Linux g++ 15 C++20", + os: ubuntu-24.04, + buildtype: Release, + cxx: "g++-15", + cxxver: 20, + } - { name: "Linux clang-13 C++17", os: ubuntu-22.04, @@ -472,6 +486,15 @@ jobs: sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa sudo apt-get install g++-14 + - name: Install g++ 15 + id: install_gcc_15 + if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-15' ) + shell: bash + working-directory: ${{ env.HOME }} + run: | + sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa + sudo apt-get install g++-15 + - name: Install MSVC 2017 id: install_msvc_2017 if: startsWith(matrix.config.os, 'windows-2019') && ( matrix.config.cxx == 'cl' ) && ( matrix.config.msvcver == 2017 ) From 7709b64aacdd8aa6c32e21a2c55070076b14ce33 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:16:05 +0100 Subject: [PATCH 2/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 55e662c9..e43f5ea8 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -14,6 +14,8 @@ jobs: # See: https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix name: ${{ matrix.config.name }} runs-on: ${{ matrix.config.os }} + # Allow specifying a container per-matrix to avoid duplicating jobs + container: ${{ matrix.config.container }} strategy: fail-fast: false @@ -104,15 +106,17 @@ jobs: cxxver: 20, } - { - name: "Linux g++ 15 C++17", + name: "Linux g++ 15 (Debian) C++17", os: ubuntu-24.04, + container: debian:testing, buildtype: Release, cxx: "g++-15", cxxver: 17, } - { - name: "Linux g++ 15 C++20", + name: "Linux g++ 15 (Debian) C++20", os: ubuntu-24.04, + container: debian:testing, buildtype: Release, cxx: "g++-15", cxxver: 20, @@ -488,13 +492,21 @@ jobs: - name: Install g++ 15 id: install_gcc_15 - if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-15' ) + if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-15' ) && ( !matrix.config.container ) shell: bash working-directory: ${{ env.HOME }} run: | sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa sudo apt-get install g++-15 + - name: Install GCC 15 and tools (Debian container) + if: matrix.config.container == 'debian:testing' && matrix.config.cxx == 'g++-15' + shell: bash + run: | + apt-get update + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + g++-15 cmake ninja-build build-essential pkg-config + - name: Install MSVC 2017 id: install_msvc_2017 if: startsWith(matrix.config.os, 'windows-2019') && ( matrix.config.cxx == 'cl' ) && ( matrix.config.msvcver == 2017 ) @@ -563,3 +575,4 @@ jobs: # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest --output-on-failure -C ${{ matrix.config.buildtype }} + From 0ec0c5aa045b8f2942dc982cd96da9f990d40618 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:20:59 +0100 Subject: [PATCH 3/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index e43f5ea8..91f6647d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -490,15 +490,6 @@ jobs: sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa sudo apt-get install g++-14 - - name: Install g++ 15 - id: install_gcc_15 - if: startsWith(matrix.config.os, 'ubuntu') && ( matrix.config.cxx == 'g++-15' ) && ( !matrix.config.container ) - shell: bash - working-directory: ${{ env.HOME }} - run: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa - sudo apt-get install g++-15 - - name: Install GCC 15 and tools (Debian container) if: matrix.config.container == 'debian:testing' && matrix.config.cxx == 'g++-15' shell: bash @@ -536,14 +527,15 @@ jobs: - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands - run: cmake -E make_directory ${{runner.workspace}}/build + # Use github.workspace since only this path is mounted inside containers + run: cmake -E make_directory ${{ github.workspace }}/build - name: Configure CMake if: (!contains(matrix.config.mingw, 'MINGW')) # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash - working-directory: ${{runner.workspace}}/build + working-directory: ${{ github.workspace }}/build env: CXX: ${{ matrix.config.cxx }} # Note the current convention is to use the -S and -B options here to specify source @@ -563,14 +555,14 @@ jobs: - name: Build if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{runner.workspace}}/build + working-directory: ${{ github.workspace }}/build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config ${{ matrix.config.buildtype }} - name: Test if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{runner.workspace}}/build + working-directory: ${{ github.workspace }}/build shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail From ec841a970837ed2134b11f86788f718b7052f1e4 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:28:52 +0100 Subject: [PATCH 4/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 91f6647d..937c08e2 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -527,15 +527,15 @@ jobs: - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands - # Use github.workspace since only this path is mounted inside containers - run: cmake -E make_directory ${{ github.workspace }}/build + # Use the GITHUB_WORKSPACE env var so the path resolves correctly inside containers (/__w/...) + run: cmake -E make_directory "$GITHUB_WORKSPACE/build" - name: Configure CMake if: (!contains(matrix.config.mingw, 'MINGW')) # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash - working-directory: ${{ github.workspace }}/build + working-directory: $GITHUB_WORKSPACE/build env: CXX: ${{ matrix.config.cxx }} # Note the current convention is to use the -S and -B options here to specify source @@ -555,14 +555,14 @@ jobs: - name: Build if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{ github.workspace }}/build + working-directory: $GITHUB_WORKSPACE/build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config ${{ matrix.config.buildtype }} - name: Test if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{ github.workspace }}/build + working-directory: $GITHUB_WORKSPACE/build shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail From b3c63ec0ee40f7d3bef02a95e8946ee2eb0cb101 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:33:41 +0100 Subject: [PATCH 5/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 937c08e2..4d8e9f5e 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -528,14 +528,14 @@ jobs: # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands # Use the GITHUB_WORKSPACE env var so the path resolves correctly inside containers (/__w/...) - run: cmake -E make_directory "$GITHUB_WORKSPACE/build" + run: cmake -E make_directory "${{ github.workspace }}/build" - name: Configure CMake if: (!contains(matrix.config.mingw, 'MINGW')) # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash - working-directory: $GITHUB_WORKSPACE/build + working-directory: ${{ github.workspace }}/build env: CXX: ${{ matrix.config.cxx }} # Note the current convention is to use the -S and -B options here to specify source @@ -555,14 +555,14 @@ jobs: - name: Build if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: $GITHUB_WORKSPACE/build + working-directory: ${{ github.workspace }}/build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config ${{ matrix.config.buildtype }} - name: Test if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: $GITHUB_WORKSPACE/build + working-directory: ${{ github.workspace }}/build shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail From 5d791732dac8496bf94740b9c3e30f653a0b2b52 Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:38:16 +0100 Subject: [PATCH 6/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 4d8e9f5e..5281f4dc 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -528,14 +528,14 @@ jobs: # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands # Use the GITHUB_WORKSPACE env var so the path resolves correctly inside containers (/__w/...) - run: cmake -E make_directory "${{ github.workspace }}/build" + run: cmake -E make_directory "build" - name: Configure CMake if: (!contains(matrix.config.mingw, 'MINGW')) # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash - working-directory: ${{ github.workspace }}/build + working-directory: build env: CXX: ${{ matrix.config.cxx }} # Note the current convention is to use the -S and -B options here to specify source @@ -555,14 +555,14 @@ jobs: - name: Build if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{ github.workspace }}/build + working-directory: build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config ${{ matrix.config.buildtype }} - name: Test if: (!contains(matrix.config.mingw, 'MINGW')) - working-directory: ${{ github.workspace }}/build + working-directory: build shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail From a0a8354ee1b7c7251ee5da7e20370888397656ef Mon Sep 17 00:00:00 2001 From: Andreas Buhr Date: Wed, 10 Dec 2025 08:41:54 +0100 Subject: [PATCH 7/7] Add gcc 15 to CI --- .github/workflows/cmake.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 5281f4dc..8be09c45 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -527,7 +527,6 @@ jobs: - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands - # Use the GITHUB_WORKSPACE env var so the path resolves correctly inside containers (/__w/...) run: cmake -E make_directory "build" - name: Configure CMake