From 05f8c8178dabe3ca8080af0f12ff578cd02971b8 Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sat, 8 May 2021 13:38:10 +0300 Subject: GNU: C++17 default version Changed in GCC commit 0801f419440c14f6772b28f763ad7d40f7f7a580, released in 11.1. --- Modules/Compiler/GNU-CXX.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index 758d3c7..d7318ea 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -66,4 +66,4 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a") endif() -__compiler_check_default_language_standard(CXX 3.4 98 6.0 14) +__compiler_check_default_language_standard(CXX 3.4 98 6.0 14 11.1 17) -- cgit v0.12 From c9a1e06a18594640d548b1aec31ea9e07b0b5b82 Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sat, 8 May 2021 13:45:33 +0300 Subject: GNU: Final C++20 flags Added in GCC commit fb26050409473f5be54465beca114b7e48de43aa, released in 11.1. --- Modules/Compiler/GNU-CXX.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index d7318ea..c8357b2 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -61,7 +61,10 @@ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1) set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() -if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) +if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 11.1) + set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20") + set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20") +elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0) set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a") set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a") endif() -- cgit v0.12 From 9fbbebe3d03f2576a8c5d6284c6f122b99e232a9 Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sat, 8 May 2021 13:47:18 +0300 Subject: GNU: C++23 support Added in GCC commit 78739c2df788ee5c868d998a6333d453317d8711, released in 11.1. No lettered variant beforehand this time around. Implements #22139. --- Modules/Compiler/GNU-CXX.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake index c8357b2..b35f254 100644 --- a/Modules/Compiler/GNU-CXX.cmake +++ b/Modules/Compiler/GNU-CXX.cmake @@ -64,6 +64,8 @@ endif() if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 11.1) set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20") set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20") + set(CMAKE_CXX23_STANDARD_COMPILE_OPTION "-std=c++23") + set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std=gnu++23") elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0) set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++2a") set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a") -- cgit v0.12