From 9b9f19dd7d245a999ca93a873bbd159373837616 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Thu, 24 Mar 2011 20:44:46 +0100
Subject: [PATCH] Qt4Project: do not show a error on make clean without a
 Makefile

Task-Nr:
---
 src/plugins/qt4projectmanager/makestep.cpp  | 29 ++++++++++++++++-----
 src/plugins/qt4projectmanager/makestep.h    |  1 +
 src/plugins/qt4projectmanager/qmakestep.cpp |  1 -
 3 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/src/plugins/qt4projectmanager/makestep.cpp b/src/plugins/qt4projectmanager/makestep.cpp
index 319a938a739..4c6c084ce35 100644
--- a/src/plugins/qt4projectmanager/makestep.cpp
+++ b/src/plugins/qt4projectmanager/makestep.cpp
@@ -166,14 +166,23 @@ bool MakeStep::init()
 
     ProjectExplorer::ToolChain *toolchain = bc->toolChain();
 
-    if (bc->subNodeBuild()){
-        if(!bc->subNodeBuild()->makefile().isEmpty()) {
+    if (bc->subNodeBuild()) {
+        QString makefile = bc->subNodeBuild()->makefile();
+        if(!makefile.isEmpty()) {
             Utils::QtcProcess::addArg(&args, QLatin1String("-f"));
-            Utils::QtcProcess::addArg(&args, bc->subNodeBuild()->makefile());
+            Utils::QtcProcess::addArg(&args, makefile);
+            m_makeFileExists = QDir(workingDirectory).exists(makefile);
+        } else {
+            m_makeFileExists = QDir(workingDirectory).exists("Makefile");
+        }
+    } else {
+        if (!bc->makefile().isEmpty()) {
+            Utils::QtcProcess::addArg(&args, QLatin1String("-f"));
+            Utils::QtcProcess::addArg(&args, bc->makefile());
+            m_makeFileExists = QDir(workingDirectory).exists(bc->makefile());
+        } else {
+            m_makeFileExists = QDir(workingDirectory).exists("Makefile");
         }
-    } else if (!bc->makefile().isEmpty()) {
-        Utils::QtcProcess::addArg(&args, QLatin1String("-f"));
-        Utils::QtcProcess::addArg(&args, bc->makefile());
     }
 
     Utils::QtcProcess::addArgs(&args, m_userArgs);
@@ -215,6 +224,13 @@ void MakeStep::run(QFutureInterface<bool> & fi)
         return;
     }
 
+    if (!m_makeFileExists) {
+        if (!m_clean)
+            emit addOutput(tr("Makefile not found. Please check your build settings"), BuildStep::MessageOutput);
+        fi.reportResult(m_clean);
+        return;
+    }
+
     // Warn on common error conditions:
     bool canContinue = true;
     foreach (const ProjectExplorer::Task &t, m_tasks) {
@@ -228,7 +244,6 @@ void MakeStep::run(QFutureInterface<bool> & fi)
         return;
     }
 
-
     AbstractProcessStep::run(fi);
 }
 
diff --git a/src/plugins/qt4projectmanager/makestep.h b/src/plugins/qt4projectmanager/makestep.h
index 599b78e82e4..6a5a0308998 100644
--- a/src/plugins/qt4projectmanager/makestep.h
+++ b/src/plugins/qt4projectmanager/makestep.h
@@ -115,6 +115,7 @@ protected:
 private:
     void ctor();
     bool m_clean;
+    bool m_makeFileExists;
     QString m_userArgs;
     QString m_makeCmd;
     QList<ProjectExplorer::Task> m_tasks;
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index fa46167afc3..8ad8afdc92d 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -257,7 +257,6 @@ void QMakeStep::run(QFutureInterface<bool> &fi)
     }
 
     // Warn on common error conditions:
-
     bool canContinue = true;
     foreach (const ProjectExplorer::Task &t, m_tasks) {
         addTask(t);
-- 
GitLab