diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed07c52..78528df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,7 @@ jobs: fail-fast: false matrix: config: + - {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 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\" "} diff --git a/CMakePresets.json b/CMakePresets.json index 3683e7e..a23297c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -45,6 +45,13 @@ "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", @@ -65,6 +72,13 @@ "displayName": "Clang 17", "description": "Build with Clang 17 compilers", "toolchainFile": "${sourceDir}/etc/clang-17-toolchain.cmake" + }, + { + "name": "clang-16", + "inherits": "common", + "displayName": "Clang 16", + "description": "Build with Clang 16 compilers", + "toolchainFile": "${sourceDir}/etc/clang-16-toolchain.cmake" } ], "buildPresets": [ @@ -93,6 +107,11 @@ "inherits": "common", "configurePreset": "gcc-12" }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -107,6 +126,11 @@ "name": "clang-17", "inherits": "common", "configurePreset": "clang-17" + }, + { + "name": "clang-16", + "inherits": "common", + "configurePreset": "clang-16" } ], "testPresets": [ @@ -142,6 +166,11 @@ "inherits": "common", "configurePreset": "gcc-12" }, + { + "name": "clang-20", + "inherits": "common", + "configurePreset": "clang-20" + }, { "name": "clang-19", "inherits": "common", @@ -156,6 +185,11 @@ "name": "clang-17", "inherits": "common", "configurePreset": "clang-17" + }, + { + "name": "clang-16", + "inherits": "common", + "configurePreset": "clang-16" } ], "workflowPresets": [ @@ -227,6 +261,23 @@ } ] }, + { + "name": "clang-20", + "steps": [ + { + "type": "configure", + "name": "clang-20" + }, + { + "type": "build", + "name": "clang-20" + }, + { + "type": "test", + "name": "clang-20" + } + ] + }, { "name": "clang-19", "steps": [ @@ -277,6 +328,23 @@ "name": "clang-17" } ] + }, + { + "name": "clang-16", + "steps": [ + { + "type": "configure", + "name": "clang-16" + }, + { + "type": "build", + "name": "clang-16" + }, + { + "type": "test", + "name": "clang-16" + } + ] } ] } diff --git a/README.md b/README.md index 4a2fcaf..fdedb01 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ SPDX-License-Identifier: 2.0 license with LLVM exceptions --> +![CI Tests](https://github.com/beman-project/iterator_interface/actions/workflows/ci.yml/badge.svg) + **Implements**: * [`std::iterator_interface` (P2727)](https://wg21.link/P2727) diff --git a/etc/clang-20-toolchain.cmake b/etc/clang-20-toolchain.cmake new file mode 100644 index 0000000..b41013d --- /dev/null +++ b/etc/clang-20-toolchain.cmake @@ -0,0 +1,11 @@ +# 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) +set(CMAKE_CXX_COMPILER clang++-20) + +include("${CMAKE_CURRENT_LIST_DIR}/clang-flags.cmake")