forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/5.0'
Conflicts: qbs/modules/qtc/qtc.qbs src/plugins/android/androidconfigurations.cpp Change-Id: If8dc2cdf131811e08ca147c6f58dbb3ed3bf7227
This commit is contained in:
@@ -472,7 +472,10 @@ void CompilerOptionsBuilder::addLanguageVersionAndExtensions()
|
||||
case LanguageVersion::CXX17:
|
||||
option = "/std:c++17";
|
||||
break;
|
||||
case LanguageVersion::CXX2a:
|
||||
case LanguageVersion::CXX20:
|
||||
option = "/std:c++20";
|
||||
break;
|
||||
case LanguageVersion::CXX2b:
|
||||
option = "/std:c++latest";
|
||||
break;
|
||||
}
|
||||
@@ -517,8 +520,11 @@ void CompilerOptionsBuilder::addLanguageVersionAndExtensions()
|
||||
case LanguageVersion::CXX17:
|
||||
option = (gnuExtensions ? QLatin1String("-std=gnu++17") : QLatin1String("-std=c++17"));
|
||||
break;
|
||||
case LanguageVersion::CXX2a:
|
||||
option = (gnuExtensions ? QLatin1String("-std=gnu++2a") : QLatin1String("-std=c++2a"));
|
||||
case LanguageVersion::CXX20:
|
||||
option = (gnuExtensions ? QLatin1String("-std=gnu++20") : QLatin1String("-std=c++20"));
|
||||
break;
|
||||
case LanguageVersion::CXX2b:
|
||||
option = (gnuExtensions ? QLatin1String("-std=gnu++2b") : QLatin1String("-std=c++2b"));
|
||||
break;
|
||||
case LanguageVersion::None:
|
||||
break;
|
||||
@@ -868,6 +874,14 @@ void CompilerOptionsBuilder::evaluateCompilerFlags()
|
||||
theOption[0] = '-';
|
||||
}
|
||||
|
||||
// Clang-cl (as of Clang 12) frontend doesn't know about -std:c++20
|
||||
// but the clang front end knows about -std=c++20
|
||||
// https://github.com/llvm/llvm-project/blob/release/12.x/clang/lib/Driver/ToolChains/Clang.cpp#L5855
|
||||
if (toolChain == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID ||
|
||||
toolChain == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) {
|
||||
theOption.replace("-std:c++20", "-clang:-std=c++20");
|
||||
}
|
||||
|
||||
m_compilerFlags.flags.append(theOption);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user