From ad130f2661a102f2a69ddbf07495306edeadf909 Mon Sep 17 00:00:00 2001 From: Alexander Wachter Date: Wed, 14 Jul 2021 10:50:21 +0200 Subject: [PATCH] cpp: Restore C++2A Kconfig Restore the legacy C++2a Kconfig for compilers that do not support C++20. Signed-off-by: Alexander Wachter --- CMakeLists.txt | 2 ++ cmake/compiler/arcmwdt/compiler_flags.cmake | 4 +++- cmake/compiler/compiler_flags_template.cmake | 2 ++ cmake/compiler/gcc/compiler_flags.cmake | 4 ++++ subsys/cpp/Kconfig | 5 +++++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3d53b8db65..59eaf0e01e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,8 @@ if(CONFIG_CPLUSPLUS) set(STD_CPP_DIALECT_FLAGS $) elseif(CONFIG_STD_CPP17) set(STD_CPP_DIALECT_FLAGS $) + elseif(CONFIG_STD_CPP2A) + set(STD_CPP_DIALECT_FLAGS $) elseif(CONFIG_STD_CPP20) set(STD_CPP_DIALECT_FLAGS $) elseif(CONFIG_STD_CPP2B) diff --git a/cmake/compiler/arcmwdt/compiler_flags.cmake b/cmake/compiler/arcmwdt/compiler_flags.cmake index 1c22cba097e..8d736ba203f 100644 --- a/cmake/compiler/arcmwdt/compiler_flags.cmake +++ b/cmake/compiler/arcmwdt/compiler_flags.cmake @@ -126,10 +126,12 @@ endif() set_property(TARGET compiler-cpp PROPERTY dialect_cpp98 "-std=c++98") set_property(TARGET compiler-cpp PROPERTY dialect_cpp11 "-std=c++11") -#no support of C++14, C++17, C++2a +#no support of C++14, C++17, C++2a, C++20, C++2b set_property(TARGET compiler-cpp PROPERTY dialect_cpp14 "") set_property(TARGET compiler-cpp PROPERTY dialect_cpp17 "") set_property(TARGET compiler-cpp PROPERTY dialect_cpp2a "") +set_property(TARGET compiler-cpp PROPERTY dialect_cpp20 "") +set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b "") # Disable exeptions flag in C++ set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions") diff --git a/cmake/compiler/compiler_flags_template.cmake b/cmake/compiler/compiler_flags_template.cmake index b44efac4f82..9d609a7acdb 100644 --- a/cmake/compiler/compiler_flags_template.cmake +++ b/cmake/compiler/compiler_flags_template.cmake @@ -59,6 +59,8 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp11) set_property(TARGET compiler-cpp PROPERTY dialect_cpp14) set_property(TARGET compiler-cpp PROPERTY dialect_cpp17) set_property(TARGET compiler-cpp PROPERTY dialect_cpp2a) +set_property(TARGET compiler-cpp PROPERTY dialect_cpp20) +set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b) # Flag for disabling exeptions in C++ set_property(TARGET compiler-cpp PROPERTY no_exceptions) diff --git a/cmake/compiler/gcc/compiler_flags.cmake b/cmake/compiler/gcc/compiler_flags.cmake index f0e92c7f74f..4ca64522085 100644 --- a/cmake/compiler/gcc/compiler_flags.cmake +++ b/cmake/compiler/gcc/compiler_flags.cmake @@ -130,6 +130,10 @@ set_property(TARGET compiler-cpp PROPERTY dialect_cpp14 "-std=c++14" "-Wno-regis set_property(TARGET compiler-cpp PROPERTY dialect_cpp17 "-std=c++17" "-Wno-register") set_property(TARGET compiler-cpp PROPERTY dialect_cpp2a "-std=c++2a" "-Wno-register" "-Wno-volatile") +set_property(TARGET compiler-cpp PROPERTY dialect_cpp20 "-std=c++20" + "-Wno-register" "-Wno-volatile") +set_property(TARGET compiler-cpp PROPERTY dialect_cpp2b "-std=c++2b" + "-Wno-register" "-Wno-volatile") # Disable exeptions flag in C++ set_property(TARGET compiler-cpp PROPERTY no_exceptions "-fno-exceptions") diff --git a/subsys/cpp/Kconfig b/subsys/cpp/Kconfig index 2faeb766e17..a4e7bc47a0d 100644 --- a/subsys/cpp/Kconfig +++ b/subsys/cpp/Kconfig @@ -37,6 +37,11 @@ config STD_CPP17 help 2017 C++ standard, previously known as C++0x. +config STD_CPP2A + bool "C++ 2a" + help + Next revision of the C++ standard, which is expected to be published in 2020. + config STD_CPP20 bool "C++ 20" help