From 7bec2253c94eca096f3f7c5d13d91c5ee3b736bb Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Tue, 9 Jun 2009 13:44:33 +0200
Subject: [PATCH] gcce toolchain needs default make target dependent on
 debug/release.

Passing the Project to the tool chain now. Not quite sure if I like it.
---
 src/plugins/projectexplorer/toolchain.h               |  7 ++++---
 .../qt4projectmanager/qt-s60/gccetoolchain.cpp        | 11 ++++++++++-
 src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h  |  3 ++-
 .../qt4projectmanager/qt-s60/winscwtoolchain.cpp      |  2 +-
 .../qt4projectmanager/qt-s60/winscwtoolchain.h        |  3 ++-
 src/plugins/qt4projectmanager/qt4project.cpp          |  2 +-
 src/plugins/qt4projectmanager/qtversionmanager.cpp    |  2 +-
 7 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index bf303df876d..b2f31dbbbcb 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -31,6 +31,7 @@
 #define TOOLCHAIN_H
 
 #include "environment.h"
+#include "project.h"
 #include <QtCore/QString>
 #include <QtCore/QPair>
 
@@ -87,7 +88,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env) = 0;
     virtual ToolChainType type() const = 0;
     virtual QString makeCommand() const = 0;
-    virtual QString defaultMakeTarget() const = 0;
+    virtual QString defaultMakeTarget(const Project *project) const = 0;
 
     ToolChain();
     virtual ~ToolChain();
@@ -117,7 +118,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env);
     virtual ToolChainType type() const;
     virtual QString makeCommand() const;
-    virtual QString defaultMakeTarget() const { return ""; }
+    virtual QString defaultMakeTarget(const Project *) const { return ""; }
 
 protected:
     virtual bool equals(ToolChain *other) const;
@@ -151,7 +152,7 @@ public:
     virtual void addToEnvironment(ProjectExplorer::Environment &env);
     virtual ToolChainType type() const;
     virtual QString makeCommand() const;
-    virtual QString defaultMakeTarget() const { return ""; }
+    virtual QString defaultMakeTarget(const Project *) const { return ""; }
 protected:
     virtual bool equals(ToolChain *other) const;
     QString m_name;
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
index e87728e5054..15cf53637c6 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp
@@ -1,4 +1,5 @@
 #include "gccetoolchain.h"
+#include "qt4project.h"
 
 #include <coreplugin/icore.h>
 
@@ -46,8 +47,16 @@ QString GCCEToolChain::makeCommand() const
     return "make";
 }
 
-QString GCCEToolChain::defaultMakeTarget() const
+QString GCCEToolChain::defaultMakeTarget(const Project *project) const
 {
+    const Qt4Project *qt4project = qobject_cast<const Qt4Project *>(project);
+    if (qt4project) {
+        if (!(QtVersion::QmakeBuildConfig(qt4project->qmakeStep()->value(
+                project->activeBuildConfiguration(),
+                "buildConfiguration").toInt()) & QtVersion::DebugBuild)) {
+            return "release-gcce";
+        }
+    }
     return "debug-gcce";
 }
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
index 36f1159a5c1..be27ad5176a 100644
--- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.h
@@ -3,6 +3,7 @@
 
 #include "s60devices.h"
 
+#include <projectexplorer/project.h>
 #include <projectexplorer/toolchain.h>
 
 namespace Qt4ProjectManager {
@@ -17,7 +18,7 @@ public:
     void addToEnvironment(ProjectExplorer::Environment &env);
     ProjectExplorer::ToolChain::ToolChainType type() const;
     QString makeCommand() const;
-    QString defaultMakeTarget() const;
+    QString defaultMakeTarget(const ProjectExplorer::Project *project) const;
 
 protected:
     bool equals(ToolChain *other) const;
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
index fce6eb22857..b54b79a1d9a 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.cpp
@@ -61,7 +61,7 @@ QString WINSCWToolChain::makeCommand() const
     return "make";
 }
 
-QString WINSCWToolChain::defaultMakeTarget() const
+QString WINSCWToolChain::defaultMakeTarget(const Project *) const
 {
     return "debug-winscw";
 }
diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
index 50f81b984a1..089f9574ab4 100644
--- a/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-s60/winscwtoolchain.h
@@ -3,6 +3,7 @@
 
 #include "s60devices.h"
 
+#include <projectexplorer/project.h>
 #include <projectexplorer/toolchain.h>
 
 namespace Qt4ProjectManager {
@@ -17,7 +18,7 @@ public:
     void addToEnvironment(ProjectExplorer::Environment &env);
     ProjectExplorer::ToolChain::ToolChainType type() const;
     QString makeCommand() const;
-    QString defaultMakeTarget() const;
+    QString defaultMakeTarget(const ProjectExplorer::Project *) const;
 
 protected:
     bool equals(ToolChain *other) const;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 5ec3ce2d5f1..cae6dd13e58 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -382,7 +382,7 @@ QString Qt4Project::makeCommand(const QString &buildConfiguration) const
 
 QString Qt4Project::defaultMakeTarget(const QString &buildConfiguration) const
 {
-    return qtVersion(buildConfiguration)->toolChain()->defaultMakeTarget();
+    return qtVersion(buildConfiguration)->toolChain()->defaultMakeTarget(this);
 }
 
 void Qt4Project::updateCodeModel()
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp
index 6309a7ebb5d..98bcd663821 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp
@@ -925,7 +925,7 @@ void QtVersion::updateToolChain() const
         //qDebug()<<"GCC ToolChain ("<<qmake_cxx<<")";
 #ifdef QTCREATOR_WITH_S60
     } else if (t == ProjectExplorer::ToolChain::WINSCW) {
-        m_test = S60Manager::instance()->createWINSCWToolChain(this);
+        m_test = S60Manager::instance()->createGCCEToolChain(this);
 #endif
     } else {
         qDebug()<<"Could not detect ToolChain for"<<mkspec();
-- 
GitLab