diff options
author | Eike Ziller <eike.ziller@qt.io> | 2019-01-15 08:30:54 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2019-01-15 08:40:23 +0100 |
commit | 71d60ee9c863c178adb8d80814f7ea912ea74101 (patch) | |
tree | 2dd0c0fee304d0660f96963a33eec690ba605ebc /src/plugins/cpptools/compileroptionsbuilder.cpp | |
parent | 09c1c170d279047cbb873523b9ef9fc305e8b76d (diff) | |
parent | a111daf93ea954b86791581ea3ac53e15ea145d4 (diff) | |
download | qt-creator-71d60ee9c863c178adb8d80814f7ea912ea74101.tar.gz |
Merge remote-tracking branch 'origin/4.8'
Conflicts:
src/plugins/cpptools/compileroptionsbuilder.cpp
Change-Id: I522f91de70aff28692d7c3a050e8d52df0b82a76
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.cpp | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 61f8242537..fae2e29fb5 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -404,16 +404,20 @@ static QByteArray msCompatibilityVersionFromDefines(const ProjectExplorer::Macro return QByteArray(); } +QByteArray CompilerOptionsBuilder::msvcVersion() const +{ + const QByteArray version = msCompatibilityVersionFromDefines(m_projectPart.toolChainMacros); + return !version.isEmpty() ? version + : msCompatibilityVersionFromDefines(m_projectPart.projectMacros); +} + void CompilerOptionsBuilder::addMsvcCompatibilityVersion() { if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID || m_projectPart.toolchainType == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID) { - const ProjectExplorer::Macros macros = m_projectPart.toolChainMacros - + m_projectPart.projectMacros; - const QByteArray msvcVersion = msCompatibilityVersionFromDefines(macros); - - if (!msvcVersion.isEmpty()) - add(QLatin1String("-fms-compatibility-version=") + msvcVersion); + const QByteArray msvcVer = msvcVersion(); + if (!msvcVer.isEmpty()) + add(QLatin1String("-fms-compatibility-version=") + msvcVer); } } @@ -599,16 +603,21 @@ void CompilerOptionsBuilder::addProjectConfigFileInclude() void CompilerOptionsBuilder::undefineClangVersionMacrosForMsvc() { if (m_projectPart.toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) { - static const QStringList macroNames { - "__clang__", - "__clang_major__", - "__clang_minor__", - "__clang_patchlevel__", - "__clang_version__" - }; - - for (const QString ¯oName : macroNames) - add(undefineOption + macroName); + const QByteArray msvcVer = msvcVersion(); + if (msvcVer.toFloat() < 14.f) { + // Original fix was only for msvc 2013 (version 12.0) + // Undefying them for newer versions is not necessary and breaks boost. + static const QStringList macroNames { + "__clang__", + "__clang_major__", + "__clang_minor__", + "__clang_patchlevel__", + "__clang_version__" + }; + + for (const QString ¯oName : macroNames) + add(undefineOption + macroName); + } } } |