From 3c63b621d9adc621aed227b1154fa36b7c765992 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann <joerg.bornemann@qt.io> Date: Tue, 17 May 2016 14:40:46 +0200 Subject: [PATCH] QbsProjectManager: Write MSVC compiler version to profile Change-Id: Ibd8c559ffecf327eee6af8e6d5fbacb5c8c863d1 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com> --- .../defaultpropertyprovider.cpp | 21 +++++++++++++++++-- src/plugins/qbsprojectmanager/qbsconstants.h | 3 +++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index a7869c491ff..2954ec64777 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -156,6 +156,19 @@ QVariantMap DefaultPropertyProvider::properties(const ProjectExplorer::Kit *k, return data; } +struct MSVCVersion +{ + int major = 0; + int minor = 0; +}; + +static MSVCVersion msvcCompilerVersion(const ProjectExplorer::Abi &abi) +{ + MSVCVersion v; + v.major = abi.osFlavor() - ProjectExplorer::Abi::WindowsMsvc2005Flavor + 14; + return v; +} + QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplorer::Kit *k, const QVariantMap &defaultData) const { @@ -228,10 +241,14 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor const QString toolchainPrefix = extractToolchainPrefix(&compilerName); if (!toolchainPrefix.isEmpty()) data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), toolchainPrefix); - if (toolchain.contains(QLatin1String("msvc"))) + if (toolchain.contains(QLatin1String("msvc"))) { data.insert(QLatin1String(CPP_COMPILERNAME), compilerName); - else + const MSVCVersion v = msvcCompilerVersion(targetAbi); + data.insert(QLatin1String(CPP_COMPILERVERSIONMAJOR), v.major); + data.insert(QLatin1String(CPP_COMPILERVERSIONMINOR), v.minor); + } else { data.insert(QLatin1String(CPP_CXXCOMPILERNAME), compilerName); + } if (targetAbi.os() != ProjectExplorer::Abi::WindowsOS || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { data.insert(QLatin1String(CPP_LINKERNAME), compilerName); diff --git a/src/plugins/qbsprojectmanager/qbsconstants.h b/src/plugins/qbsprojectmanager/qbsconstants.h index 66a3a2c21b4..63a18145bbe 100644 --- a/src/plugins/qbsprojectmanager/qbsconstants.h +++ b/src/plugins/qbsprojectmanager/qbsconstants.h @@ -38,6 +38,9 @@ const char CPP_TOOLCHAINPATH[] = "cpp.toolchainInstallPath"; const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix"; const char CPP_COMPILERNAME[] = "cpp.compilerName"; const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName"; +const char CPP_COMPILERVERSIONMAJOR[] = "cpp.compilerVersionMajor"; +const char CPP_COMPILERVERSIONMINOR[] = "cpp.compilerVersionMinor"; +const char CPP_COMPILERVERSIONPATCH[] = "cpp.compilerVersionPatch"; const char CPP_LINKERNAME[] = "cpp.linkerName"; const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags"; const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags"; -- GitLab