diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-03-23 17:17:58 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-03-24 09:45:52 +0000 |
commit | d5f242f3d6c9edf0218ec8ff922f29585ffb7b4b (patch) | |
tree | d6273c75641a59bd2d8c9bed955f2efa65bf3e26 | |
parent | 535cc76cacba44871e0201973a9dfa5750ba476f (diff) | |
download | qt-creator-d5f242f3d6c9edf0218ec8ff922f29585ffb7b4b.tar.gz |
Qmake: Do not warn when a compiler misses an .exe on windows
Task-number: QTCREATORBUG-17489
Change-Id: I8fbbf48b41b84adf8905d81ae21ded4ed2fd541d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/libs/utils/environment.cpp | 13 | ||||
-rw-r--r-- | src/libs/utils/environment.h | 2 | ||||
-rw-r--r-- | src/plugins/qmakeprojectmanager/qmakeproject.cpp | 11 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp index 7bc0c09500..8808a570ad 100644 --- a/src/libs/utils/environment.cpp +++ b/src/libs/utils/environment.cpp @@ -268,6 +268,19 @@ QStringList Environment::appendExeExtensions(const QString &executable) const return execs; } +bool Environment::isSameExecutable(const QString &exe1, const QString &exe2) const +{ + const QStringList exe1List = appendExeExtensions(exe1); + const QStringList exe2List = appendExeExtensions(exe2); + for (const QString &i1 : exe1List) { + for (const QString &i2 : exe2List) { + if (Utils::FileName::fromString(i1) == Utils::FileName::fromString(i2)) + return true; + } + } + return false; +} + FileName Environment::searchInPath(const QString &executable, const QStringList &additionalDirs, bool (*func)(const QString &name)) const diff --git a/src/libs/utils/environment.h b/src/libs/utils/environment.h index a04cbe9284..95abaa2999 100644 --- a/src/libs/utils/environment.h +++ b/src/libs/utils/environment.h @@ -106,6 +106,8 @@ public: QStringList path() const; QStringList appendExeExtensions(const QString &executable) const; + bool isSameExecutable(const QString &exe1, const QString &exe2) const; + QString expandVariables(const QString &input) const; QStringList expandVariables(const QStringList &input) const; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index ffdcee6f2a..a3c504e17f 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -1346,7 +1346,16 @@ void QmakeProject::testToolChain(ToolChain *tc, const Utils::FileName &path) con return; const Utils::FileName expected = tc->compilerCommand(); - if (expected != path) { + + Environment env = Environment::systemEnvironment(); + if (Target *t = activeTarget()) { + if (BuildConfiguration *bc = t->activeBuildConfiguration()) + env = bc->environment(); + else + t->kit()->addToEnvironment(env); + } + + if (env.isSameExecutable(path.toString(), expected.toString())) { const QPair<Utils::FileName, Utils::FileName> pair = qMakePair(expected, path); if (!m_toolChainWarnings.contains(pair)) { TaskHub::addTask(Task(Task::Warning, |