summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-03-23 17:17:58 +0100
committerTobias Hunger <tobias.hunger@qt.io>2017-03-24 09:45:52 +0000
commitd5f242f3d6c9edf0218ec8ff922f29585ffb7b4b (patch)
treed6273c75641a59bd2d8c9bed955f2efa65bf3e26
parent535cc76cacba44871e0201973a9dfa5750ba476f (diff)
downloadqt-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.cpp13
-rw-r--r--src/libs/utils/environment.h2
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp11
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,