diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a41d1c..9389fd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,13 +13,14 @@ jobs: fail-fast: false matrix: config: - - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 20", os: ubuntu-24.04, toolchain: "clang-20", clang_version: 20, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} # Note: clang-19 + Asan setup causes errors on some platforms. Temporary skip some checks via .asan_options. - {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"} - - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} - {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} + - {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "} steps: - uses: actions/checkout@v3 with: diff --git a/CMakePresets.json b/CMakePresets.json index eb05f0c..5bc3bab 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -38,6 +38,20 @@ "description": "Build with GCC 13 compilers", "toolchainFile": "${sourceDir}/etc/gcc-13-toolchain.cmake" }, + { + "name": "gcc-12", + "inherits": "common", + "displayName": "GCC 12", + "description": "Build with GCC 12 compilers", + "toolchainFile": "${sourceDir}/etc/gcc-12-toolchain.cmake" + }, + { + "name": "clang-20", + "inherits": "common", + "displayName": "Clang 20", + "description": "Build with Clang 20 compilers", + "toolchainFile": "${sourceDir}/etc/clang-20-toolchain.cmake" + }, { "name": "clang-19", "inherits": "common", @@ -81,6 +95,16 @@ "inherits": "common", "configurePreset": "gcc-13" }, + { + "name": "gcc-12", + "inherits": "common", + "configurePreset": "gcc-12" + }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -125,6 +149,16 @@ "inherits": "common", "configurePreset": "gcc-13" }, + { + "name": "gcc-12", + "inherits": "common", + "configurePreset": "gcc-12" + }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -193,6 +227,40 @@ } ] }, + { + "name": "gcc-12", + "steps": [ + { + "type": "configure", + "name": "gcc-12" + }, + { + "type": "build", + "name": "gcc-12" + }, + { + "type": "test", + "name": "gcc-12" + } + ] + }, + { + "name": "clang-20", + "steps": [ + { + "type": "configure", + "name": "clang-20" + }, + { + "type": "build", + "name": "clang-20" + }, + { + "type": "test", + "name": "clang-20" + } + ] + }, { "name": "clang-19", "steps": [ diff --git a/etc/clang-20-toolchain.cmake b/etc/clang-20-toolchain.cmake index 8a6f537..b41013d 100644 --- a/etc/clang-20-toolchain.cmake +++ b/etc/clang-20-toolchain.cmake @@ -1,3 +1,8 @@ +# cmake-format: off +# etc/clang-20-toolchain.cmake -*-cmake-*- +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +# cmake-format: on + include_guard(GLOBAL) set(CMAKE_C_COMPILER clang-20)