summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-01-15 08:30:54 +0100
committerEike Ziller <eike.ziller@qt.io>2019-01-15 08:40:23 +0100
commit71d60ee9c863c178adb8d80814f7ea912ea74101 (patch)
tree2dd0c0fee304d0660f96963a33eec690ba605ebc /src/plugins/cpptools/compileroptionsbuilder.cpp
parent09c1c170d279047cbb873523b9ef9fc305e8b76d (diff)
parenta111daf93ea954b86791581ea3ac53e15ea145d4 (diff)
downloadqt-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.cpp41
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 &macroName : 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 &macroName : macroNames)
+ add(undefineOption + macroName);
+ }
}
}