QbsProjectManager: Adapt to cpp.cxxLanguageVersion type change

Task-number: QTCREATORBUG-20909
Change-Id: Ic0c018b1a06e2d715d4ea6e301deeacc6aa7f480
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Christian Kandeler
2018-08-06 16:49:12 +02:00
parent ff10f8c3a5
commit 43c2f36622

View File

@@ -827,13 +827,15 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
} }
cFlags = cxxFlags = commonFlags; cFlags = cxxFlags = commonFlags;
const QString cxxLanguageVersion = getCppProp("cxxLanguageVersion").toString(); const auto cxxLanguageVersion = getCppProp("cxxLanguageVersion").toStringList();
if (cxxLanguageVersion == "c++11") if (cxxLanguageVersion.contains("c++17"))
cxxFlags << "-std=c++0x"; cxxFlags << "-std=c++17";
else if (cxxLanguageVersion == "c++14") else if (cxxLanguageVersion.contains("c++14"))
cxxFlags << "-std=c++1y"; cxxFlags << "-std=c++14";
else if (cxxLanguageVersion.contains("c++11"))
cxxFlags << "-std=c++11";
else if (!cxxLanguageVersion.isEmpty()) else if (!cxxLanguageVersion.isEmpty())
cxxFlags << ("-std=" + cxxLanguageVersion); cxxFlags << ("-std=" + cxxLanguageVersion.first());
const QString cxxStandardLibrary = getCppProp("cxxStandardLibrary").toString(); const QString cxxStandardLibrary = getCppProp("cxxStandardLibrary").toString();
if (!cxxStandardLibrary.isEmpty() && toolchain.contains("clang")) if (!cxxStandardLibrary.isEmpty() && toolchain.contains("clang"))
cxxFlags << ("-stdlib=" + cxxStandardLibrary); cxxFlags << ("-stdlib=" + cxxStandardLibrary);
@@ -844,11 +846,13 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
if (enableRtti.isValid()) if (enableRtti.isValid())
cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti"); cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti");
const QString cLanguageVersion = getCppProp("cLanguageVersion").toString(); const auto cLanguageVersion = getCppProp("cLanguageVersion").toStringList();
if (cLanguageVersion == "c11") if (cLanguageVersion.contains("c11"))
cFlags << "-std=c1x"; cFlags << "-std=c11";
else if (cLanguageVersion.contains("c99"))
cFlags << "-std=c99";
else if (!cLanguageVersion.isEmpty()) else if (!cLanguageVersion.isEmpty())
cFlags << ("-std=" + cLanguageVersion); cFlags << ("-std=" + cLanguageVersion.first());
} else if (toolchain.contains("msvc")) { } else if (toolchain.contains("msvc")) {
if (enableExceptions.toBool()) { if (enableExceptions.toBool()) {
const QString exceptionModel = getCppProp("exceptionHandlingModel").toString(); const QString exceptionModel = getCppProp("exceptionHandlingModel").toString();
@@ -864,6 +868,8 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags,
cxxFlags << "/TP"; cxxFlags << "/TP";
if (enableRtti.isValid()) if (enableRtti.isValid())
cxxFlags << QLatin1String(enableRtti.toBool() ? "/GR" : "/GR-"); cxxFlags << QLatin1String(enableRtti.toBool() ? "/GR" : "/GR-");
if (getCppProp("cxxLanguageVersion").toStringList().contains("c++17"))
cxxFlags << "/std:c++17";
} }
} }