packages: gcc-multilib g++-multilib
codecov: ubuntu_gcc_m32
+ - name: Ubuntu GCC C17
+ os: ubuntu-latest
+ compiler: gcc
+ cxx-compiler: g++
+ cmake-args: -DCMAKE_C_STANDARD=17
+
+ - name: Ubuntu GCC C23
+ os: ubuntu-latest
+ compiler: gcc
+ cxx-compiler: g++
+ cmake-args: -DCMAKE_C_STANDARD=23
+
- name: Ubuntu GCC No Chorba
os: ubuntu-latest
compiler: gcc
gcov-exec: llvm-cov-15 gcov
codecov: ubuntu_clang
+ - name: Ubuntu Clang C17
+ os: ubuntu-latest
+ compiler: clang-15
+ cxx-compiler: clang++-15
+ cmake-args: -DCMAKE_C_STANDARD=17
+ packages: clang-15 llvm-15 llvm-15-tools
+
+ - name: Ubuntu Clang C23
+ os: ubuntu-latest
+ compiler: clang-18
+ cxx-compiler: clang++-18
+ cmake-args: -DCMAKE_C_STANDARD=23
+ packages: clang-18 llvm-18 llvm-18-tools
+
# Check for undefined symbols in the version script for the modern api
- name: Ubuntu Clang Undefined Symbols
os: ubuntu-latest
compiler: cl
cmake-args: -G "Visual Studio 17 2022" -A x64 -T v143 -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE=/arch:AVX
+ - name: Windows MSVC 2022 v143 Win64 C17
+ os: windows-latest
+ compiler: cl
+ cmake-args: -G "Visual Studio 17 2022" -A x64 -T v143 -DCMAKE_C_STANDARD=17
+
- name: Windows MSVC 2022 v142 Win32
os: windows-latest
compiler: cl
set(CMAKE_C_EXTENSIONS OFF) # Boolean specifying whether compiler specific extensions are requested
endif()
set(VALID_C_STANDARDS "99" "11")
+if(CMAKE_VERSION VERSION_GREATER 3.20)
+ list(APPEND VALID_C_STANDARDS "17" "23")
+endif()
if(NOT CMAKE_C_STANDARD IN_LIST VALID_C_STANDARDS)
MESSAGE(FATAL_ERROR "CMAKE_C_STANDARD:STRING=${CMAKE_C_STANDARD} not in known standards list\n ${VALID_C_STANDARDS}")
endif()