forked from qt-creator/qt-creator
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 <christian.kandeler@qt.io>
This commit is contained in:
committed by
Björn Schäpers
parent
ca263cd44a
commit
c422962709
@@ -786,7 +786,9 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
|
|||||||
cFlags = cxxFlags = commonFlags;
|
cFlags = cxxFlags = commonFlags;
|
||||||
|
|
||||||
const auto cxxLanguageVersion = arrayToStringList(getCppProp("cxxLanguageVersion"));
|
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";
|
cxxFlags << "-std=c++17";
|
||||||
else if (cxxLanguageVersion.contains("c++14"))
|
else if (cxxLanguageVersion.contains("c++14"))
|
||||||
cxxFlags << "-std=c++14";
|
cxxFlags << "-std=c++14";
|
||||||
@@ -805,7 +807,11 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
|
|||||||
cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti");
|
cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti");
|
||||||
|
|
||||||
const auto cLanguageVersion = arrayToStringList(getCppProp("cLanguageVersion"));
|
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";
|
cFlags << "-std=c11";
|
||||||
else if (cLanguageVersion.contains("c99"))
|
else if (cLanguageVersion.contains("c99"))
|
||||||
cFlags << "-std=c99";
|
cFlags << "-std=c99";
|
||||||
|
Reference in New Issue
Block a user