diff options
Diffstat (limited to 'src/plugins/qbsprojectmanager/qbsproject.cpp')
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 5740483c27..22fcfc9dfa 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -822,13 +822,15 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags, } cFlags = cxxFlags = commonFlags; - const QString cxxLanguageVersion = getCppProp("cxxLanguageVersion").toString(); - if (cxxLanguageVersion == "c++11") - cxxFlags << "-std=c++0x"; - else if (cxxLanguageVersion == "c++14") - cxxFlags << "-std=c++1y"; + const auto cxxLanguageVersion = getCppProp("cxxLanguageVersion").toStringList(); + if (cxxLanguageVersion.contains("c++17")) + cxxFlags << "-std=c++17"; + else if (cxxLanguageVersion.contains("c++14")) + cxxFlags << "-std=c++14"; + else if (cxxLanguageVersion.contains("c++11")) + cxxFlags << "-std=c++11"; else if (!cxxLanguageVersion.isEmpty()) - cxxFlags << ("-std=" + cxxLanguageVersion); + cxxFlags << ("-std=" + cxxLanguageVersion.first()); const QString cxxStandardLibrary = getCppProp("cxxStandardLibrary").toString(); if (!cxxStandardLibrary.isEmpty() && toolchain.contains("clang")) cxxFlags << ("-stdlib=" + cxxStandardLibrary); @@ -839,11 +841,13 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags, if (enableRtti.isValid()) cxxFlags << QLatin1String(enableRtti.toBool() ? "-frtti" : "-fno-rtti"); - const QString cLanguageVersion = getCppProp("cLanguageVersion").toString(); - if (cLanguageVersion == "c11") - cFlags << "-std=c1x"; + const auto cLanguageVersion = getCppProp("cLanguageVersion").toStringList(); + if (cLanguageVersion.contains("c11")) + cFlags << "-std=c11"; + else if (cLanguageVersion.contains("c99")) + cFlags << "-std=c99"; else if (!cLanguageVersion.isEmpty()) - cFlags << ("-std=" + cLanguageVersion); + cFlags << ("-std=" + cLanguageVersion.first()); } else if (toolchain.contains("msvc")) { if (enableExceptions.toBool()) { const QString exceptionModel = getCppProp("exceptionHandlingModel").toString(); @@ -859,6 +863,8 @@ static void getExpandedCompilerFlags(QStringList &cFlags, QStringList &cxxFlags, cxxFlags << "/TP"; if (enableRtti.isValid()) cxxFlags << QLatin1String(enableRtti.toBool() ? "/GR" : "/GR-"); + if (getCppProp("cxxLanguageVersion").toStringList().contains("c++17")) + cxxFlags << "/std:c++17"; } } |