From c42296270939b9529c174f307910aabb13b97d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Sch=C3=A4pers?= Date: Sun, 6 Dec 2020 21:45:54 +0100 Subject: [PATCH] QbsProject: Fix set LangaugeVersion for newer standards I have some products which export c++20, some c++17 (not yet ported) and some which do not specify the language itself. And sometimes I end up with too much errors from the code model, because it sets the language to C++11 or C++17. Also adapted the C language. Change-Id: I0056c8d873191d49164c3e7f3e4fdb24ccc1fb9b Reviewed-by: Christian Kandeler --- src/plugins/qbsprojectmanager/qbsproject.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 2258a99e279..b0a7211bb69 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -786,7 +786,9 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags, cFlags = cxxFlags = commonFlags; const auto cxxLanguageVersion = arrayToStringList(getCppProp("cxxLanguageVersion")); - if (cxxLanguageVersion.contains("c++17")) + if (cxxLanguageVersion.contains("c++20")) + cxxFlags << "-std=c++20"; + else if (cxxLanguageVersion.contains("c++17")) cxxFlags << "-std=c++17"; else if (cxxLanguageVersion.contains("c++14")) cxxFlags << "-std=c++14"; @@ -805,7 +807,11 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags, cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti"); const auto cLanguageVersion = arrayToStringList(getCppProp("cLanguageVersion")); - if (cLanguageVersion.contains("c11")) + if (cLanguageVersion.contains("c18")) + cFlags << "-cstd=c18"; + else if (cLanguageVersion.contains("c17")) + cFlags << "-std=c17"; + else if (cLanguageVersion.contains("c11")) cFlags << "-std=c11"; else if (cLanguageVersion.contains("c99")) cFlags << "-std=c99";