From 2d65dec3e9eb9694b790372f05a91566696ea76a Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 17 Jun 2009 17:56:40 +0200
Subject: [PATCH] Add a toolChainType() method to the
 ApplicationRunConfiguration.

Best effort only though. This can make detection in the debugger which
engine should be used easier.

Task-Nr: 256161
---
 src/plugins/cmakeprojectmanager/cmakeproject.cpp         | 9 +++++++++
 src/plugins/cmakeprojectmanager/cmakeproject.h           | 1 +
 .../cmakeprojectmanager/cmakerunconfiguration.cpp        | 6 ++++++
 src/plugins/cmakeprojectmanager/cmakerunconfiguration.h  | 1 +
 .../projectexplorer/applicationrunconfiguration.h        | 3 +++
 .../projectexplorer/customexecutablerunconfiguration.cpp | 4 ++++
 .../projectexplorer/customexecutablerunconfiguration.h   | 2 ++
 src/plugins/projectexplorer/toolchain.h                  | 1 +
 src/plugins/qt4projectmanager/qt4runconfiguration.cpp    | 5 +++++
 src/plugins/qt4projectmanager/qt4runconfiguration.h      | 1 +
 10 files changed, 33 insertions(+)

diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index df3428cbc4d..362347d21b8 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -612,6 +612,15 @@ CMakeTarget CMakeProject::targetForTitle(const QString &title)
     return CMakeTarget();
 }
 
+ProjectExplorer::ToolChain::ToolChainType CMakeProject::toolChainType() const
+{
+    if (m_toolChain)
+        return m_toolChain->type();
+    return ProjectExplorer::ToolChain::UNKNOWN;
+}
+
+// CMakeFile
+
 CMakeFile::CMakeFile(CMakeProject *parent, QString fileName)
     : Core::IFile(parent), m_project(parent), m_fileName(fileName)
 {
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 90e692a1e0d..603d4e85553 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -105,6 +105,7 @@ public:
     CMakeTarget targetForTitle(const QString &title);
 
     QString sourceDirectory() const;
+    ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
 protected:
     virtual void saveSettingsImpl(ProjectExplorer::PersistentSettingsWriter &writer);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 94880ecf3d9..eda621739a1 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -217,6 +217,12 @@ void CMakeRunConfiguration::setUserEnvironmentChanges(const QList<ProjectExplore
     }
 }
 
+ProjectExplorer::ToolChain::ToolChainType CMakeRunConfiguration::toolChainType() const
+{
+    CMakeProject *pro = static_cast<CMakeProject *>(project());
+    return pro->toolChainType();
+}
+
 // Configuration widget
 
 
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 89d9ba6eee4..3c8148a3ad0 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -70,6 +70,7 @@ public:
     virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
     virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
     virtual QString dumperLibrary() const;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
 signals:
     void baseEnvironmentChanged();
diff --git a/src/plugins/projectexplorer/applicationrunconfiguration.h b/src/plugins/projectexplorer/applicationrunconfiguration.h
index 44d8a8e479f..d9f5b543af0 100644
--- a/src/plugins/projectexplorer/applicationrunconfiguration.h
+++ b/src/plugins/projectexplorer/applicationrunconfiguration.h
@@ -30,6 +30,8 @@
 #ifndef APPLICATIONRUNCONFIGURATION_H
 #define APPLICATIONRUNCONFIGURATION_H
 
+#include <projectexplorer/toolchain.h>
+
 #include "runconfiguration.h"
 #include "applicationlauncher.h"
 
@@ -55,6 +57,7 @@ public:
     virtual QStringList commandLineArguments() const = 0;
     virtual Environment environment() const = 0;
     virtual QString dumperLibrary() const = 0;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const = 0;
 
     virtual void save(PersistentSettingsWriter &writer) const;
     virtual void restore(const PersistentSettingsReader &reader);
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index 1d13e778f60..30355a4e81c 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -459,6 +459,10 @@ QString CustomExecutableRunConfiguration::dumperLibrary() const
     return ProjectExplorer::DebuggingHelperLibrary::debuggingHelperLibrary(qmakePath);
 }
 
+ProjectExplorer::ToolChain::ToolChainType CustomExecutableRunConfiguration::toolChainType() const
+{
+    return ProjectExplorer::ToolChain::UNKNOWN;
+}
 
 // Factory
 
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index da1916ba5cc..894116fc08e 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -90,6 +90,8 @@ public:
     virtual QWidget *configurationWidget();
     virtual QString dumperLibrary() const;
 
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
+
 signals:
     void changed();
 
diff --git a/src/plugins/projectexplorer/toolchain.h b/src/plugins/projectexplorer/toolchain.h
index c4b112fc957..15a2278291e 100644
--- a/src/plugins/projectexplorer/toolchain.h
+++ b/src/plugins/projectexplorer/toolchain.h
@@ -74,6 +74,7 @@ public:
         MSVC,
         WINCE,
         OTHER,
+        UNKNOWN,
         INVALID
     };
 
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 45f283ed85b..876929a85f2 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -635,6 +635,11 @@ Qt4RunConfiguration::BaseEnvironmentBase Qt4RunConfiguration::baseEnvironmentBas
 {
     return m_baseEnvironmentBase;
 }
+ProjectExplorer::ToolChain::ToolChainType Qt4RunConfiguration::toolChainType() const
+{
+    Qt4Project *pro = qobject_cast<Qt4Project *>(project());
+    return pro->qtVersion(pro->activeBuildConfiguration())->toolchainType();
+}
 
 ///
 /// Qt4RunConfigurationFactory
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt4runconfiguration.h
index 37f97d64823..d72671d4848 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.h
@@ -73,6 +73,7 @@ public:
     virtual QStringList commandLineArguments() const;
     virtual ProjectExplorer::Environment environment() const;
     virtual QString dumperLibrary() const;
+    virtual ProjectExplorer::ToolChain::ToolChainType toolChainType() const;
 
     bool isUsingDyldImageSuffix() const;
     void setUsingDyldImageSuffix(bool state);
-- 
GitLab