From 5d26efe38f3ed5112788ac462b293809530acbce Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sat, 13 Jun 2020 11:13:55 +0300 Subject: Clang: Add final C++20 flag for Clang 11.0+ -std=c++20 superseded -std=c++2a in upstream Clang commit 24ad121582454e625bdad125c90d9ac0dae948c8. --- Modules/Compiler/Clang.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index cd47aa6..b84bdb2 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -146,7 +146,10 @@ macro(__compiler_clang_cxx_standards lang) set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() - if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}") + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0) + set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20") + set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++20") + elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}") set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++2a") set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++2a") endif() -- cgit v0.12 From b365385d669d1a04cbc677cf2c7130c03bdea7e3 Mon Sep 17 00:00:00 2001 From: Raul Tambre Date: Sat, 13 Jun 2020 11:26:11 +0300 Subject: Clang: Record Clang 6.0+ as fully supporting C++17 --- Modules/Compiler/Clang.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index b84bdb2..bb516d3 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -146,6 +146,10 @@ macro(__compiler_clang_cxx_standards lang) set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++1z") endif() + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 6.0) + set(CMAKE_${lang}17_STANDARD__HAS_FULL_SUPPORT ON) + endif() + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0) set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20") set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++20") -- cgit v0.12