diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2016-07-29 16:12:02 +0300 |
---|---|---|
committer | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2016-07-29 16:13:18 +0300 |
commit | 35d7352b3e2965768f90dc3f2ac17aec68af5df5 (patch) | |
tree | e9ce2b482fe1a4ea965701154ba4967256202462 /src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp | |
parent | cda7a3188f86f6a506225a679e123ee72b8c4f76 (diff) | |
parent | 5c5197d19d31a7c81f5bfb64a666b589bbd5638c (diff) | |
download | qt-creator-35d7352b3e2965768f90dc3f2ac17aec68af5df5.tar.gz |
Merge remote-tracking branch 'origin/4.1'
Change-Id: Ie96fa53a88bcd06fa688a579c1d84aaf6f5e905f
Diffstat (limited to 'src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp')
-rw-r--r-- | src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index f140907a66..f96b11e4a5 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -446,6 +446,21 @@ static Core::Id toolchainType(ProjectExplorer::RunConfiguration *runConfiguratio return ToolChainKitInformation::toolChain(runConfiguration->target()->kit(), ToolChain::Language::Cxx)->typeId(); } +static QString executableForVersionCheck(Core::Id toolchainType, const QString &executable) +{ + if (toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) { + const QString suffix = QLatin1String("-cl.exe"); + if (executable.endsWith(suffix, Utils::HostOsInfo::fileNameCaseSensitivity())) { + QString modified = executable; + modified.chop(suffix.length()); + modified.append(QLatin1String(".exe")); + return modified; + } + } + + return executable; +} + void ClangStaticAnalyzerRunControl::start() { m_success = false; @@ -458,7 +473,8 @@ void ClangStaticAnalyzerRunControl::start() // Check clang executable bool isValidClangExecutable; - const QString executable = clangExecutableFromSettings(toolchainType(runConfiguration()), + const Core::Id theToolchainType = toolchainType(runConfiguration()); + const QString executable = clangExecutableFromSettings(theToolchainType, &isValidClangExecutable); if (!isValidClangExecutable) { const QString errorMessage = tr("Clang Static Analyzer: Invalid executable \"%1\", stop.") @@ -471,12 +487,13 @@ void ClangStaticAnalyzerRunControl::start() } // Check clang version - const ClangExecutableVersion version = clangExecutableVersion(executable); + const QString versionCheckExecutable = executableForVersionCheck(theToolchainType, executable); + const ClangExecutableVersion version = clangExecutableVersion(versionCheckExecutable); if (!version.isValid()) { const QString warningMessage = tr("Clang Static Analyzer: Running with possibly unsupported version, " "could not determine version from executable \"%1\".") - .arg(executable); + .arg(versionCheckExecutable); appendMessage(warningMessage + QLatin1Char('\n'), Utils::StdErrFormat); TaskHub::addTask(Task::Warning, warningMessage, Debugger::Constants::ANALYZERTASK_ID); TaskHub::requestPopup(); |