aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cmakeprojectmanager')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp127
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h23
-rw-r--r--src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp57
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h3
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp153
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.h14
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp16
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp63
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.h9
-rw-r--r--src/plugins/cmakeprojectmanager/cmaketarget.cpp242
-rw-r--r--src/plugins/cmakeprojectmanager/cmaketarget.h100
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp15
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.cpp27
17 files changed, 232 insertions, 627 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index 38ba67a582a..5597225e4a2 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -34,12 +34,11 @@
#include "cmakeopenprojectwizard.h"
#include "cmakeproject.h"
-#include "cmaketarget.h"
-#include <projectexplorer/projectexplorerconstants.h>
-#include <projectexplorer/toolchainmanager.h>
-#include <projectexplorer/toolchain.h>
#include <projectexplorer/buildsteplist.h>
+#include <projectexplorer/profileinformation.h>
+#include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/target.h>
#include <utils/qtcassert.h>
#include <QInputDialog>
@@ -49,17 +48,19 @@ using namespace Internal;
namespace {
const char CMAKE_BC_ID[] = "CMakeProjectManager.CMakeBuildConfiguration";
-const char TOOLCHAIN_KEY[] = "CMakeProjectManager.CMakeBuildConfiguration.ToolChain";
const char BUILD_DIRECTORY_KEY[] = "CMakeProjectManager.CMakeBuildConfiguration.BuildDirectory";
} // namespace
-CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent) :
+CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent) :
BuildConfiguration(parent, Core::Id(CMAKE_BC_ID))
{
- m_buildDirectory = cmakeTarget()->defaultBuildDirectory();
+ CMakeProject *project = qobject_cast<CMakeProject *>(parent->project());
+ if (project)
+ m_buildDirectory = project->defaultBuildDirectory();
}
-CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuildConfiguration *source) :
+CMakeBuildConfiguration::CMakeBuildConfiguration(ProjectExplorer::Target *parent,
+ CMakeBuildConfiguration *source) :
BuildConfiguration(parent, source),
m_buildDirectory(source->m_buildDirectory),
m_msvcVersion(source->m_msvcVersion)
@@ -71,7 +72,6 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuild
QVariantMap CMakeBuildConfiguration::toMap() const
{
QVariantMap map(ProjectExplorer::BuildConfiguration::toMap());
- map.insert(QLatin1String(TOOLCHAIN_KEY), toolChain() ? toolChain()->id() : QString());
map.insert(QLatin1String(BUILD_DIRECTORY_KEY), m_buildDirectory);
return map;
}
@@ -81,46 +81,17 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
if (!BuildConfiguration::fromMap(map))
return false;
- setToolChain(ProjectExplorer::ToolChainManager::instance()->
- findToolChain(map.value(QLatin1String(TOOLCHAIN_KEY)).toString()));
-
- if (!toolChain()) {
- // restoring from older versions?
- QList<ProjectExplorer::ToolChain *> list = ProjectExplorer::ToolChainManager::instance()->toolChains();
- if (!map.value("CMakeProjectManager.CMakeBuildConfiguration.MsvcVersion").toString().isEmpty()) {
- foreach (ProjectExplorer::ToolChain *tc, list) {
- if (tc->id().startsWith(ProjectExplorer::Constants::MSVC_TOOLCHAIN_ID)) {
- setToolChain(tc);
- break;
- }
- }
- } else {
-#ifdef Q_OS_WIN
- QString toolChainId = ProjectExplorer::Constants::MINGW_TOOLCHAIN_ID;
-#else
- QString toolChainId = ProjectExplorer::Constants::GCC_TOOLCHAIN_ID;
-#endif
- foreach (ProjectExplorer::ToolChain *tc, list) {
- if (tc->id().startsWith(toolChainId)) {
- setToolChain(tc);
- break;
- }
- }
- }
- }
-
- m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY), cmakeTarget()->defaultBuildDirectory()).toString();
+ m_buildDirectory = map.value(QLatin1String(BUILD_DIRECTORY_KEY)).toString();
return true;
}
CMakeBuildConfiguration::~CMakeBuildConfiguration()
-{
-}
+{ }
-CMakeTarget *CMakeBuildConfiguration::cmakeTarget() const
+ProjectExplorer::BuildConfigWidget *CMakeBuildConfiguration::createConfigWidget()
{
- return static_cast<CMakeTarget *>(target());
+ return new CMakeBuildSettingsWidget;
}
QString CMakeBuildConfiguration::buildDirectory() const
@@ -139,16 +110,16 @@ void CMakeBuildConfiguration::setBuildDirectory(const QString &buildDirectory)
ProjectExplorer::IOutputParser *CMakeBuildConfiguration::createOutputParser() const
{
- if (toolChain())
- return toolChain()->outputParser();
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(target()->profile());
+ if (tc)
+ return tc->outputParser();
return 0;
}
Utils::Environment CMakeBuildConfiguration::baseEnvironment() const
{
Utils::Environment env = BuildConfiguration::baseEnvironment();
- if (toolChain())
- toolChain()->addToEnvironment(env);
+ target()->profile()->addToEnvironment(env);
return env;
}
@@ -165,9 +136,9 @@ CMakeBuildConfigurationFactory::~CMakeBuildConfigurationFactory()
{
}
-QList<Core::Id> CMakeBuildConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const
+QList<Core::Id> CMakeBuildConfigurationFactory::availableCreationIds(const ProjectExplorer::Target *parent) const
{
- if (!qobject_cast<CMakeTarget *>(parent))
+ if (!canHandle(parent))
return QList<Core::Id>();
return QList<Core::Id>() << Core::Id(CMAKE_BC_ID);
}
@@ -179,34 +150,37 @@ QString CMakeBuildConfigurationFactory::displayNameForId(const Core::Id id) cons
return QString();
}
-bool CMakeBuildConfigurationFactory::canCreate(ProjectExplorer::Target *parent, const Core::Id id) const
+bool CMakeBuildConfigurationFactory::canCreate(const ProjectExplorer::Target *parent, const Core::Id id) const
{
- if (!qobject_cast<CMakeTarget *>(parent))
+ if (!canHandle(parent))
return false;
if (id == Core::Id(CMAKE_BC_ID))
return true;
return false;
}
-CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id)
+CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer::Target *parent, const Core::Id id, const QString &name)
{
if (!canCreate(parent, id))
return 0;
- CMakeTarget *cmtarget = static_cast<CMakeTarget *>(parent);
- Q_ASSERT(cmtarget);
-
- //TODO configuration name should be part of the cmakeopenprojectwizard
- bool ok;
- QString buildConfigurationName = QInputDialog::getText(0,
- tr("New Configuration"),
- tr("New configuration name:"),
- QLineEdit::Normal,
- QString(),
- &ok);
+ CMakeProject *project = qobject_cast<CMakeProject *>(parent->project());
+ if (!project)
+ return 0;
+
+ bool ok = true;
+ QString buildConfigurationName = name;
+ if (buildConfigurationName.isEmpty())
+ buildConfigurationName = QInputDialog::getText(0,
+ tr("New Configuration"),
+ tr("New configuration name:"),
+ QLineEdit::Normal,
+ QString(), &ok);
+ buildConfigurationName = buildConfigurationName.trimmed();
if (!ok || buildConfigurationName.isEmpty())
return 0;
- CMakeBuildConfiguration *bc = new CMakeBuildConfiguration(cmtarget);
+
+ CMakeBuildConfiguration *bc = new CMakeBuildConfiguration(parent);
bc->setDisplayName(buildConfigurationName);
ProjectExplorer::BuildStepList *buildSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
@@ -220,28 +194,25 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer:
cleanMakeStep->setAdditionalArguments("clean");
cleanMakeStep->setClean(true);
- CMakeOpenProjectWizard copw(cmtarget->cmakeProject()->projectManager(),
- cmtarget->project()->projectDirectory(),
+ CMakeOpenProjectWizard copw(project->projectManager(),
+ project->projectDirectory(),
bc->buildDirectory(),
bc->environment());
if (copw.exec() != QDialog::Accepted) {
delete bc;
return 0;
}
- bc->setToolChain(copw.toolChain());
- cmtarget->addBuildConfiguration(bc); // this also makes the name unique
bc->setBuildDirectory(copw.buildDirectory());
- cmtarget->cmakeProject()->parseCMakeLists();
// Default to all
- if (cmtarget->cmakeProject()->hasBuildTarget("all"))
+ if (project->hasBuildTarget("all"))
makeStep->setBuildTarget("all", true);
return bc;
}
-bool CMakeBuildConfigurationFactory::canClone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source) const
+bool CMakeBuildConfigurationFactory::canClone(const ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source) const
{
return canCreate(parent, source->id());
}
@@ -251,11 +222,10 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::clone(ProjectExplorer::
if (!canClone(parent, source))
return 0;
CMakeBuildConfiguration *old = static_cast<CMakeBuildConfiguration *>(source);
- CMakeTarget *cmtarget(static_cast<CMakeTarget *>(parent));
- return new CMakeBuildConfiguration(cmtarget, old);
+ return new CMakeBuildConfiguration(parent, old);
}
-bool CMakeBuildConfigurationFactory::canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const
+bool CMakeBuildConfigurationFactory::canRestore(const ProjectExplorer::Target *parent, const QVariantMap &map) const
{
return canCreate(parent, ProjectExplorer::idFromMap(map));
}
@@ -264,14 +234,20 @@ CMakeBuildConfiguration *CMakeBuildConfigurationFactory::restore(ProjectExplorer
{
if (!canRestore(parent, map))
return 0;
- CMakeTarget *cmtarget(static_cast<CMakeTarget *>(parent));
- CMakeBuildConfiguration *bc = new CMakeBuildConfiguration(cmtarget);
+ CMakeBuildConfiguration *bc = new CMakeBuildConfiguration(parent);
if (bc->fromMap(map))
return bc;
delete bc;
return 0;
}
+bool CMakeBuildConfigurationFactory::canHandle(const ProjectExplorer::Target *t) const
+{
+ if (!t->project()->supportsProfile(t->profile()))
+ return false;
+ return qobject_cast<CMakeProject *>(t->project());
+}
+
ProjectExplorer::BuildConfiguration::BuildType CMakeBuildConfiguration::buildType() const
{
QString cmakeBuildType;
@@ -303,4 +279,3 @@ ProjectExplorer::BuildConfiguration::BuildType CMakeBuildConfiguration::buildTyp
return Unknown;
}
-
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
index b0f7bb33dda..01be5dab510 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.h
@@ -43,7 +43,6 @@ class ToolChain;
namespace CMakeProjectManager {
namespace Internal {
-class CMakeTarget;
class CMakeBuildConfigurationFactory;
class CMakeBuildConfiguration : public ProjectExplorer::BuildConfiguration
@@ -52,12 +51,11 @@ class CMakeBuildConfiguration : public ProjectExplorer::BuildConfiguration
friend class CMakeBuildConfigurationFactory;
public:
- CMakeBuildConfiguration(CMakeTarget *parent);
+ CMakeBuildConfiguration(ProjectExplorer::Target *parent);
~CMakeBuildConfiguration();
- CMakeTarget *cmakeTarget() const;
-
- virtual QString buildDirectory() const;
+ ProjectExplorer::BuildConfigWidget *createConfigWidget();
+ QString buildDirectory() const;
void setBuildDirectory(const QString &buildDirectory);
@@ -70,7 +68,7 @@ public:
BuildType buildType() const;
protected:
- CMakeBuildConfiguration(CMakeTarget *parent, CMakeBuildConfiguration *source);
+ CMakeBuildConfiguration(ProjectExplorer::Target *parent, CMakeBuildConfiguration *source);
virtual bool fromMap(const QVariantMap &map);
private:
@@ -86,15 +84,18 @@ public:
CMakeBuildConfigurationFactory(QObject *parent = 0);
~CMakeBuildConfigurationFactory();
- QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
+ QList<Core::Id> availableCreationIds(const ProjectExplorer::Target *parent) const;
QString displayNameForId(const Core::Id id) const;
- bool canCreate(ProjectExplorer::Target *parent, const Core::Id id) const;
- CMakeBuildConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id);
- bool canClone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source) const;
+ bool canCreate(const ProjectExplorer::Target *parent, const Core::Id id) const;
+ CMakeBuildConfiguration *create(ProjectExplorer::Target *parent, const Core::Id id, const QString &name = QString());
+ bool canClone(const ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source) const;
CMakeBuildConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *source);
- bool canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const;
+ bool canRestore(const ProjectExplorer::Target *parent, const QVariantMap &map) const;
CMakeBuildConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map);
+
+private:
+ bool canHandle(const ProjectExplorer::Target *t) const;
};
} // namespace Internal
diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
index 50cdf33bf3e..03f2a90cc2f 100644
--- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
@@ -31,12 +31,12 @@
**************************************************************************/
#include "cmakelocatorfilter.h"
-#include "cmaketarget.h"
#include "cmakeproject.h"
#include "makestep.h"
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/session.h>
+#include <projectexplorer/target.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/buildsteplist.h>
diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
index c21b5a45593..d4461b54e50 100644
--- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
@@ -34,7 +34,8 @@
#include "cmakeprojectmanager.h"
#include <utils/pathchooser.h>
-#include <projectexplorer/toolchainmanager.h>
+#include <projectexplorer/profileinformation.h>
+#include <projectexplorer/profilemanager.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/abi.h>
#include <texteditor/fontsettings.h>
@@ -65,8 +66,7 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const
: m_cmakeManager(cmakeManager),
m_sourceDirectory(sourceDirectory),
m_creatingCbpFiles(false),
- m_environment(env),
- m_toolChain(0)
+ m_environment(env)
{
int startid;
if (hasInSourceBuild()) {
@@ -98,8 +98,7 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const
: m_cmakeManager(cmakeManager),
m_sourceDirectory(sourceDirectory),
m_creatingCbpFiles(true),
- m_environment(env),
- m_toolChain(0)
+ m_environment(env)
{
CMakeRunPage::Mode rmode;
@@ -119,8 +118,7 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const
: m_cmakeManager(cmakeManager),
m_sourceDirectory(sourceDirectory),
m_creatingCbpFiles(true),
- m_environment(env),
- m_toolChain(0)
+ m_environment(env)
{
m_buildDirectory = oldBuildDirectory;
addPage(new ShadowBuildPage(this, true));
@@ -200,17 +198,6 @@ void CMakeOpenProjectWizard::setArguments(const QString &args)
m_arguments = args;
}
-ProjectExplorer::ToolChain *CMakeOpenProjectWizard::toolChain() const
-{
- return m_toolChain;
-}
-
-void CMakeOpenProjectWizard::setToolChain(ProjectExplorer::ToolChain *tc)
-{
- m_toolChain = tc;
-}
-
-
Utils::Environment CMakeOpenProjectWizard::environment() const
{
return m_environment;
@@ -414,51 +401,50 @@ void CMakeRunPage::initializePage()
Q_UNUSED(cmakeCxxCompiler);
m_generatorComboBox->clear();
bool hasCodeBlocksGenerator = m_cmakeWizard->cmakeManager()->hasCodeBlocksMsvcGenerator();
- ProjectExplorer::Abi abi = ProjectExplorer::Abi::hostAbi();
- abi = ProjectExplorer::Abi(abi.architecture(), abi.os(), ProjectExplorer::Abi::UnknownFlavor,
- abi.binaryFormat(), 0);
- QList<ProjectExplorer::ToolChain *> tcs =
- ProjectExplorer::ToolChainManager::instance()->findToolChains(abi);
- foreach (ProjectExplorer::ToolChain *tc, tcs) {
+ QList<ProjectExplorer::Profile *> profileList =
+ ProjectExplorer::ProfileManager::instance()->profiles();
+
+ foreach (ProjectExplorer::Profile *p, profileList) {
+ QVariant profileVariant = qVariantFromValue(static_cast<void *>(p));
+
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(p);
ProjectExplorer::Abi targetAbi = tc->targetAbi();
- QVariant tcVariant = qVariantFromValue(static_cast<void *>(tc));
if (targetAbi.os() == ProjectExplorer::Abi::WindowsOS) {
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2005Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor) {
if (hasCodeBlocksGenerator && (cachedGenerator.isEmpty() || cachedGenerator == "NMake Makefiles"))
- m_generatorComboBox->addItem(tr("NMake Generator (%1)").arg(tc->displayName()), tcVariant);
+ m_generatorComboBox->addItem(tr("NMake Generator (%1)").arg(p->displayName()), profileVariant);
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
if (cachedGenerator.isEmpty() || cachedGenerator == "MinGW Makefiles")
- m_generatorComboBox->addItem(tr("MinGW Generator (%1)").arg(tc->displayName()), tcVariant);
+ m_generatorComboBox->addItem(tr("MinGW Generator (%1)").arg(p->displayName()), profileVariant);
}
} else {
// Non windows
if (cachedGenerator.isEmpty() || cachedGenerator == "Unix Makefiles")
- m_generatorComboBox->addItem(tr("Unix Generator (%1)").arg(tc->displayName()), tcVariant);
+ m_generatorComboBox->addItem(tr("Unix Generator (%1)").arg(p->displayName()), profileVariant);
}
}
}
void CMakeRunPage::runCMake()
{
- if (m_cmakeExecutable) {
+ if (m_cmakeExecutable)
// We asked the user for the cmake executable
m_cmakeWizard->cmakeManager()->setCMakeExecutable(m_cmakeExecutable->path());
- }
int index = m_generatorComboBox->currentIndex();
- ProjectExplorer::ToolChain *tc = 0;
+ ProjectExplorer::Profile *p = 0;
if (index >= 0)
- tc = static_cast<ProjectExplorer::ToolChain *>(m_generatorComboBox->itemData(index).value<void *>());
- if (!tc) {
+ p = static_cast<ProjectExplorer::Profile *>(m_generatorComboBox->itemData(index).value<void *>());
+ if (!p) {
m_output->appendPlainText(tr("No generator selected."));
return;
}
- m_cmakeWizard->setToolChain(tc);
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(p);
m_runCMake->setEnabled(false);
m_argumentsLineEdit->setEnabled(false);
@@ -473,12 +459,9 @@ void CMakeRunPage::runCMake()
generator = QLatin1String("-GCodeBlocks - NMake Makefiles");
}
-
Utils::Environment env = m_cmakeWizard->environment();
tc->addToEnvironment(env);
-
-
m_output->clear();
if (m_cmakeWizard->cmakeManager()->isCMakeExecutableValid()) {
diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
index 5a0984de77d..2118649e151 100644
--- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
+++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
@@ -90,8 +90,6 @@ public:
CMakeManager *cmakeManager() const;
QString arguments() const;
void setArguments(const QString &args);
- ProjectExplorer::ToolChain *toolChain() const;
- void setToolChain(ProjectExplorer::ToolChain *);
Utils::Environment environment() const;
bool existsUpToDateXmlFile() const;
@@ -104,7 +102,6 @@ private:
QString m_arguments;
bool m_creatingCbpFiles;
Utils::Environment m_environment;
- ProjectExplorer::ToolChain *m_toolChain;
};
class InSourceBuildPage : public QWizardPage
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 1e2b642a400..8423f85d335 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -31,10 +31,11 @@
**************************************************************************/
#include "cmakeproject.h"
+
+#include "cmakebuildconfiguration.h"
#include "cmakeprojectconstants.h"
#include "cmakeprojectnodes.h"
#include "cmakerunconfiguration.h"
-#include "cmaketarget.h"
#include "makestep.h"
#include "cmakeopenprojectwizard.h"
#include "cmakebuildconfiguration.h"
@@ -46,7 +47,11 @@
#include <projectexplorer/buildenvironmentwidget.h>
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/buildmanager.h>
+#include <projectexplorer/profileinformation.h>
+#include <projectexplorer/profilemanager.h>
#include <projectexplorer/toolchain.h>
+#include <projectexplorer/target.h>
+#include <qtsupport/customexecutablerunconfiguration.h>
#include <cpptools/ModelManagerInterface.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/qtcassert.h>
@@ -107,6 +112,8 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)),
SLOT(targetAdded(ProjectExplorer::Target*)));
+ connect(this, SIGNAL(buildDirectoryChanged()),
+ this, SLOT(triggerBuildSystemEvaluation()));
}
CMakeProject::~CMakeProject()
@@ -130,7 +137,7 @@ void CMakeProject::fileChanged(const QString &fileName)
{
Q_UNUSED(fileName)
- parseCMakeLists();
+ evaluateBuildSystem();
}
void CMakeProject::changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration *bc)
@@ -168,7 +175,7 @@ void CMakeProject::changeActiveBuildConfiguration(ProjectExplorer::BuildConfigur
copw.exec();
}
// reparse
- parseCMakeLists();
+ evaluateBuildSystem();
}
void CMakeProject::targetAdded(ProjectExplorer::Target *t)
@@ -183,7 +190,7 @@ void CMakeProject::targetAdded(ProjectExplorer::Target *t)
void CMakeProject::changeBuildDirectory(CMakeBuildConfiguration *bc, const QString &newBuildDirectory)
{
bc->setBuildDirectory(newBuildDirectory);
- parseCMakeLists();
+ evaluateBuildSystem();
}
QString CMakeProject::defaultBuildDirectory() const
@@ -191,23 +198,31 @@ QString CMakeProject::defaultBuildDirectory() const
return projectDirectory() + QLatin1String("/qtcreator-build");
}
-bool CMakeProject::parseCMakeLists()
+void CMakeProject::evaluateBuildSystem()
{
if (!activeTarget() ||
- !activeTarget()->activeBuildConfiguration())
- return false;
+ !activeTarget()->activeBuildConfiguration()) {
+ buildSystemEvaluationFinished(false);
+ return;
+ }
+
+ CMakeBuildConfiguration *activeBC = qobject_cast<CMakeBuildConfiguration *>(activeTarget()->activeBuildConfiguration());
+ if (!activeBC) {
+ buildSystemEvaluationFinished(false);
+ return;
+ }
foreach (Core::IEditor *editor, Core::EditorManager::instance()->openedEditors())
if (isProjectFile(editor->document()->fileName()))
editor->document()->infoBar()->removeInfo(QLatin1String("CMakeEditor.RunCMake"));
// Find cbp file
- CMakeBuildConfiguration *activeBC = activeTarget()->activeBuildConfiguration();
QString cbpFile = CMakeManager::findCbpFile(activeBC->buildDirectory());
if (cbpFile.isEmpty()) {
emit buildTargetsChanged();
- return false;
+ buildSystemEvaluationFinished(true);
+ return;
}
// setFolderName
@@ -218,7 +233,8 @@ bool CMakeProject::parseCMakeLists()
if (!cbpparser.parseCbpFile(cbpFile)) {
// TODO report error
emit buildTargetsChanged();
- return false;
+ buildSystemEvaluationFinished(true);
+ return;
}
foreach (const QString &file, m_watcher->files())
@@ -228,8 +244,6 @@ bool CMakeProject::parseCMakeLists()
// how can we ensure that it is completely written?
m_watcher->addPath(cbpFile);
- // ToolChain
- // activeBC->updateToolChain(cbpparser.compilerName());
m_projectName = cbpparser.projectName();
m_rootNode->setDisplayName(cbpparser.projectName());
@@ -285,22 +299,24 @@ bool CMakeProject::parseCMakeLists()
createUiCodeModelSupport();
- if (!activeBC->toolChain())
- return true;
+ ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(activeTarget()->profile());
+ if (!tc) {
+ buildSystemEvaluationFinished(true);
+ return;
+ }
QStringList allIncludePaths;
// This explicitly adds -I. to the include paths
allIncludePaths.append(projectDirectory());
allIncludePaths.append(cbpparser.includeFiles());
- QByteArray allDefines;
- allDefines.append(activeBC->toolChain()->predefinedMacros(QStringList()));
- allDefines.append(cbpparser.defines());
+ QByteArray allDefines;
+ allDefines.append(tc->predefinedMacros(QStringList()));
+ allDefines.append(cbpparser.defines());
QStringList allFrameworkPaths;
QList<ProjectExplorer::HeaderPath> allHeaderPaths;
- if (activeBC->toolChain())
- allHeaderPaths = activeBC->toolChain()->systemHeaderPaths();
+ allHeaderPaths = tc->systemHeaderPaths();
foreach (const ProjectExplorer::HeaderPath &headerPath, allHeaderPaths) {
if (headerPath.kind() == ProjectExplorer::HeaderPath::FrameworkHeaderPath)
allFrameworkPaths.append(headerPath.path());
@@ -333,7 +349,8 @@ bool CMakeProject::parseCMakeLists()
}
emit buildTargetsChanged();
emit fileListChanged();
- return true;
+
+ buildSystemEvaluationFinished(true);
}
bool CMakeProject::isProjectFile(const QString &fileName)
@@ -501,11 +518,6 @@ CMakeManager *CMakeProject::projectManager() const
return m_manager;
}
-CMakeTarget *CMakeProject::activeTarget() const
-{
- return static_cast<CMakeTarget *>(Project::activeTarget());
-}
-
QList<ProjectExplorer::BuildConfigWidget*> CMakeProject::subConfigWidgets()
{
QList<ProjectExplorer::BuildConfigWidget*> list;
@@ -530,74 +542,49 @@ bool CMakeProject::fromMap(const QVariantMap &map)
if (!Project::fromMap(map))
return false;
- bool hasUserFile = activeTarget();
- if (!hasUserFile) {
- CMakeTargetFactory *factory =
- ExtensionSystem::PluginManager::getObject<CMakeTargetFactory>();
- CMakeTarget *t = factory->create(this, Core::Id(DEFAULT_CMAKE_TARGET_ID));
+ if (!activeTarget())
+ addTarget(createTarget(ProfileManager::instance()->defaultProfile()));
- Q_ASSERT(t);
- Q_ASSERT(t->activeBuildConfiguration());
+ // We have a user file, but we could still be missing the cbp file
+ // or simply run createXml with the saved settings
+ QFileInfo sourceFileInfo(m_fileName);
+ CMakeBuildConfiguration *activeBC = qobject_cast<CMakeBuildConfiguration *>(activeTarget()->activeBuildConfiguration());
+ if (!activeBC)
+ return false;
+ QString cbpFile = CMakeManager::findCbpFile(QDir(activeBC->buildDirectory()));
+ QFileInfo cbpFileFi(cbpFile);
- // Ask the user for where he wants to build it
- // and the cmake command line
+ CMakeOpenProjectWizard::Mode mode = CMakeOpenProjectWizard::Nothing;
+ if (!cbpFileFi.exists())
+ mode = CMakeOpenProjectWizard::NeedToCreate;
+ else if (cbpFileFi.lastModified() < sourceFileInfo.lastModified())
+ mode = CMakeOpenProjectWizard::NeedToUpdate;
- CMakeOpenProjectWizard copw(m_manager, projectDirectory(), Utils::Environment::systemEnvironment());
+ if (mode != CMakeOpenProjectWizard::Nothing) {
+ CMakeOpenProjectWizard copw(m_manager,
+ sourceFileInfo.absolutePath(),
+ activeBC->buildDirectory(),
+ mode,
+ activeBC->environment());
if (copw.exec() != QDialog::Accepted)
return false;
-
- CMakeBuildConfiguration *bc =
- static_cast<CMakeBuildConfiguration *>(t->buildConfigurations().at(0));
- if (!copw.buildDirectory().isEmpty())
- bc->setBuildDirectory(copw.buildDirectory());
- bc->setToolChain(copw.toolChain());
-
- addTarget(t);
- } else {
- // We have a user file, but we could still be missing the cbp file
- // or simply run createXml with the saved settings
- QFileInfo sourceFileInfo(m_fileName);
- CMakeBuildConfiguration *activeBC = activeTarget()->activeBuildConfiguration();
- QString cbpFile = CMakeManager::findCbpFile(QDir(activeBC->buildDirectory()));
- QFileInfo cbpFileFi(cbpFile);
-
- CMakeOpenProjectWizard::Mode mode = CMakeOpenProjectWizard::Nothing;
- if (!cbpFileFi.exists())
- mode = CMakeOpenProjectWizard::NeedToCreate;
- else if (cbpFileFi.lastModified() < sourceFileInfo.lastModified())
- mode = CMakeOpenProjectWizard::NeedToUpdate;
-
- if (mode != CMakeOpenProjectWizard::Nothing) {
- CMakeOpenProjectWizard copw(m_manager,
- sourceFileInfo.absolutePath(),
- activeBC->buildDirectory(),
- mode,
- activeBC->environment());
- if (copw.exec() != QDialog::Accepted)
- return false;
- activeBC->setToolChain(copw.toolChain());
- }
}
m_watcher = new QFileSystemWatcher(this);
connect(m_watcher, SIGNAL(fileChanged(QString)), this, SLOT(fileChanged(QString)));
- if (!parseCMakeLists()) // Gets the directory from the active buildconfiguration
- return false;
+ triggerBuildSystemEvaluation();
- if (!hasUserFile && hasBuildTarget("all")) {
+ if (hasBuildTarget("all")) {
MakeStep *makeStep = qobject_cast<MakeStep *>(
activeTarget()->activeBuildConfiguration()->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD)->at(0));
Q_ASSERT(makeStep);
makeStep->setBuildTarget("all", true);
}
- foreach (Target *t, targets()) {
+ foreach (Target *t, targets())
connect(t, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(changeActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*)));
- connect(t, SIGNAL(environmentChanged()),
- this, SLOT(changeEnvironment()));
- }
connect(Core::EditorManager::instance(), SIGNAL(editorAboutToClose(Core::IEditor*)),
this, SLOT(editorAboutToClose(Core::IEditor*)));
@@ -817,8 +804,7 @@ bool CMakeFile::reload(QString *errorString, ReloadFlag flag, ChangeType type)
return true;
}
-CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeTarget *target)
- : m_target(target), m_buildConfiguration(0)
+CMakeBuildSettingsWidget::CMakeBuildSettingsWidget() : m_buildConfiguration(0)
{
QFormLayout *fl = new QFormLayout(this);
fl->setContentsMargins(20, -1, 0, -1);
@@ -853,7 +839,7 @@ void CMakeBuildSettingsWidget::init(BuildConfiguration *bc)
{
m_buildConfiguration = static_cast<CMakeBuildConfiguration *>(bc);
m_pathLineEdit->setText(m_buildConfiguration->buildDirectory());
- if (m_buildConfiguration->buildDirectory() == m_target->cmakeProject()->projectDirectory())
+ if (m_buildConfiguration->buildDirectory() == bc->target()->project()->projectDirectory())
m_changeButton->setEnabled(false);
else
m_changeButton->setEnabled(true);
@@ -861,7 +847,9 @@ void CMakeBuildSettingsWidget::init(BuildConfiguration *bc)
void CMakeBuildSettingsWidget::openChangeBuildDirectoryDialog()
{
- CMakeProject *project = m_target->cmakeProject();
+ CMakeProject *project = qobject_cast<CMakeProject *>(m_buildConfiguration->target()->project());
+ if (!project)
+ return;
CMakeOpenProjectWizard copw(project->projectManager(),
project->projectDirectory(),
m_buildConfiguration->buildDirectory(),
@@ -875,15 +863,16 @@ void CMakeBuildSettingsWidget::openChangeBuildDirectoryDialog()
void CMakeBuildSettingsWidget::runCMake()
{
// TODO skip build directory
- CMakeProject *project = m_target->cmakeProject();
+ CMakeProject *project = qobject_cast<CMakeProject *>(m_buildConfiguration->target()->project());
+ if (!project)
+ return;
CMakeOpenProjectWizard copw(project->projectManager(),
project->projectDirectory(),
m_buildConfiguration->buildDirectory(),
CMakeOpenProjectWizard::WantToUpdate,
m_buildConfiguration->environment());
- if (copw.exec() == QDialog::Accepted) {
- project->parseCMakeLists();
- }
+ if (copw.exec() == QDialog::Accepted)
+ project->evaluateBuildSystem();
}
/////
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index 6166a348b24..88f8933fd83 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -36,7 +36,6 @@
#include "cmakeprojectmanager.h"
#include "cmakeprojectnodes.h"
#include "cmakebuildconfiguration.h"
-#include "cmaketarget.h"
#include "makestep.h"
#include <projectexplorer/project.h>
@@ -87,8 +86,6 @@ public:
Core::IDocument *document() const;
CMakeManager *projectManager() const;
- CMakeTarget *activeTarget() const;
-
QList<ProjectExplorer::BuildConfigWidget*> subConfigWidgets();
ProjectExplorer::ProjectNode *rootProjectNode() const;
@@ -102,12 +99,12 @@ public:
QString defaultBuildDirectory() const;
- bool parseCMakeLists();
QString uicCommand() const;
bool isProjectFile(const QString &fileName);
+
signals:
/// emitted after parsing
void buildTargetsChanged();
@@ -128,12 +125,15 @@ private slots:
void uiEditorContentsChanged();
void buildStateChanged(ProjectExplorer::Project *project);
private:
+ void evaluateBuildSystem();
+
void buildTree(CMakeProjectNode *rootNode, QList<ProjectExplorer::FileNode *> list);
void gatherFileNodes(ProjectExplorer::FolderNode *parent, QList<ProjectExplorer::FileNode *> &list);
ProjectExplorer::FolderNode *findOrCreateFolder(CMakeProjectNode *rootNode, QString directory);
void updateCodeModelSupportFromEditor(const QString &uiFileName, const QString &contents);
void createUiCodeModelSupport();
QString uiHeaderFile(const QString &uiFile);
+ void updateRunConfigurations(ProjectExplorer::Target *t);
CMakeManager *m_manager;
QString m_fileName;
@@ -228,16 +228,16 @@ class CMakeBuildSettingsWidget : public ProjectExplorer::BuildConfigWidget
{
Q_OBJECT
public:
- explicit CMakeBuildSettingsWidget(CMakeTarget *target);
+ CMakeBuildSettingsWidget();
QString displayName() const;
// This is called to set up the config widget before showing it
- virtual void init(ProjectExplorer::BuildConfiguration *bc);
+ void init(ProjectExplorer::BuildConfiguration *bc);
+
private slots:
void openChangeBuildDirectoryDialog();
void runCMake();
private:
- CMakeTarget *m_target;
QLineEdit *m_pathLineEdit;
QPushButton *m_changeButton;
CMakeBuildConfiguration *m_buildConfiguration;
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index e6b81c209b4..7384153647f 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -45,6 +45,7 @@
#include <coreplugin/actionmanager/actioncontainer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/target.h>
#include <utils/QtConcurrentTools>
#include <QtConcurrentRun>
#include <QCoreApplication>
@@ -114,22 +115,21 @@ void CMakeManager::runCMake(ProjectExplorer::Project *project)
if (!project)
return;
CMakeProject *cmakeProject = qobject_cast<CMakeProject *>(project);
- if (!cmakeProject)
+ if (!cmakeProject || !cmakeProject->activeTarget() || !cmakeProject->activeTarget()->activeBuildConfiguration())
return;
- if (!cmakeProject->activeTarget())
+ CMakeBuildConfiguration *bc
+ = qobject_cast<CMakeBuildConfiguration *>(cmakeProject->activeTarget()->activeBuildConfiguration());
+ if (!bc)
return;
- if (!cmakeProject->activeTarget()->activeBuildConfiguration())
- return;
- CMakeBuildConfiguration *bc = cmakeProject->activeTarget()->activeBuildConfiguration();
+
CMakeOpenProjectWizard copw(this,
cmakeProject->projectDirectory(),
bc->buildDirectory(),
CMakeOpenProjectWizard::WantToUpdate,
bc->environment());
- if (copw.exec() == QDialog::Accepted) {
- cmakeProject->parseCMakeLists();
- }
+ if (copw.exec() == QDialog::Accepted)
+ cmakeProject->triggerBuildSystemEvaluation();
}
ProjectExplorer::Project *CMakeManager::openProject(const QString &fileName, QString *errorString)
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
index d1c2914899a..b0b516944d7 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.pro
@@ -9,7 +9,6 @@ HEADERS = cmakeproject.h \
cmakeprojectmanager.h \
cmakeprojectconstants.h \
cmakeprojectnodes.h \
- cmaketarget.h \
makestep.h \
cmakerunconfiguration.h \
cmakeopenprojectwizard.h \
@@ -24,7 +23,6 @@ SOURCES = cmakeproject.cpp \
cmakeprojectplugin.cpp \
cmakeprojectmanager.cpp \
cmakeprojectnodes.cpp \
- cmaketarget.cpp \
makestep.cpp \
cmakerunconfiguration.cpp \
cmakeopenprojectwizard.cpp \
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
index e0e8b6c0e76..541176d66a3 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs
@@ -48,8 +48,6 @@ QtcPlugin {
"cmakeprojectplugin.h",
"cmakerunconfiguration.cpp",
"cmakerunconfiguration.h",
- "cmaketarget.cpp",
- "cmaketarget.h",
"cmakeuicodemodelsupport.cpp",
"cmakeuicodemodelsupport.h",
"makestep.cpp",
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
index 46b1db69d93..1d9614a9a80 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
@@ -32,11 +32,11 @@
#include "cmakeprojectplugin.h"
#include "cmakeprojectmanager.h"
+#include "cmakebuildconfiguration.h"
#include "cmakerunconfiguration.h"
#include "cmakeeditorfactory.h"
#include "makestep.h"
#include "cmakeprojectconstants.h"
-#include "cmaketarget.h"
#include "cmakelocatorfilter.h"
#include <coreplugin/icore.h>
@@ -67,9 +67,9 @@ bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString *
addAutoReleasedObject(manager);
addAutoReleasedObject(new MakeStepFactory);
addAutoReleasedObject(new CMakeRunConfigurationFactory);
+ addAutoReleasedObject(new CMakeBuildConfigurationFactory);
addAutoReleasedObject(new CMakeEditorFactory(manager));
- addAutoReleasedObject(new CMakeTargetFactory);
addAutoReleasedObject(new CMakeLocatorFilter);
return true;
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 1f3f2f1c8df..6fdd343cb06 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -35,12 +35,12 @@
#include "cmakebuildconfiguration.h"
#include "cmakeproject.h"
#include "cmakeprojectconstants.h"
-#include "cmaketarget.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/helpmanager.h>
#include <qtsupport/debugginghelper.h>
#include <projectexplorer/environmentwidget.h>
+#include <projectexplorer/target.h>
#include <utils/pathchooser.h>
#include <utils/detailswidget.h>
@@ -60,7 +60,6 @@ using namespace CMakeProjectManager;
using namespace CMakeProjectManager::Internal;
namespace {
-const char CMAKE_RC_ID[] = "CMakeProjectManager.CMakeRunConfiguration";
const char CMAKE_RC_PREFIX[] = "CMakeProjectManager.CMakeRunConfiguration.";
const char USER_WORKING_DIRECTORY_KEY[] = "CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory";
@@ -86,8 +85,9 @@ Core::Id idFromBuildTarget(const QString &target)
} // namespace
-CMakeRunConfiguration::CMakeRunConfiguration(CMakeTarget *parent, const QString &target, const QString &workingDirectory, const QString &title) :
- ProjectExplorer::LocalApplicationRunConfiguration(parent, Core::Id(CMAKE_RC_PREFIX)),
+CMakeRunConfiguration::CMakeRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const QString &target,
+ const QString &workingDirectory, const QString &title) :
+ ProjectExplorer::LocalApplicationRunConfiguration(parent, id),
m_runMode(Gui),
m_buildTarget(target),
m_workingDirectory(workingDirectory),
@@ -98,7 +98,7 @@ CMakeRunConfiguration::CMakeRunConfiguration(CMakeTarget *parent, const QString
ctor();
}
-CMakeRunConfiguration::CMakeRunConfiguration(CMakeTarget *parent, CMakeRunConfiguration *source) :
+CMakeRunConfiguration::CMakeRunConfiguration(ProjectExplorer::Target *parent, CMakeRunConfiguration *source) :
ProjectExplorer::LocalApplicationRunConfiguration(parent, source),
m_runMode(source->m_runMode),
m_buildTarget(source->m_buildTarget),
@@ -122,14 +122,9 @@ void CMakeRunConfiguration::ctor()
setDefaultDisplayName(defaultDisplayName());
}
-CMakeTarget *CMakeRunConfiguration::cmakeTarget() const
+ProjectExplorer::BuildConfiguration *CMakeRunConfiguration::activeBuildConfiguration() const
{
- return static_cast<CMakeTarget *>(target());
-}
-
-CMakeBuildConfiguration *CMakeRunConfiguration::activeBuildConfiguration() const
-{
- return cmakeTarget()->activeBuildConfiguration();
+ return target()->activeBuildConfiguration();
}
QString CMakeRunConfiguration::executable() const
@@ -496,8 +491,7 @@ void CMakeRunConfigurationWidget::setArguments(const QString &args)
// Factory
CMakeRunConfigurationFactory::CMakeRunConfigurationFactory(QObject *parent) :
ProjectExplorer::IRunConfigurationFactory(parent)
-{
-}
+{ setObjectName(QLatin1String("CMakeRunConfigurationFactory")); }
CMakeRunConfigurationFactory::~CMakeRunConfigurationFactory()
{
@@ -506,11 +500,11 @@ CMakeRunConfigurationFactory::~CMakeRunConfigurationFactory()
// used to show the list of possible additons to a project, returns a list of ids
QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target *parent) const
{
- CMakeTarget *t(qobject_cast<CMakeTarget *>(parent));
- if (!t)
+ CMakeProject *project = qobject_cast<CMakeProject *>(parent->project());
+ if (!canHandle(parent))
return QList<Core::Id>();
QList<Core::Id> allIds;
- foreach (const QString &buildTarget, t->cmakeProject()->buildTargetTitles())
+ foreach (const QString &buildTarget, project->buildTargetTitles())
allIds << idFromBuildTarget(buildTarget);
return allIds;
}
@@ -521,12 +515,19 @@ QString CMakeRunConfigurationFactory::displayNameForId(const Core::Id id) const
return buildTargetFromId(id);
}
+bool CMakeRunConfigurationFactory::canHandle(ProjectExplorer::Target *parent) const
+{
+ if (!parent->project()->supportsProfile(parent->profile()))
+ return false;
+ return qobject_cast<CMakeProject *>(parent->project());
+}
+
bool CMakeRunConfigurationFactory::canCreate(ProjectExplorer::Target *parent, const Core::Id id) const
{
- CMakeTarget *t(qobject_cast<CMakeTarget *>(parent));
- if (!t)
+ if (!canHandle(parent))
return false;
- return t->cmakeProject()->hasBuildTarget(buildTargetFromId(id));
+ CMakeProject *project = static_cast<CMakeProject *>(parent->project());
+ return project->hasBuildTarget(buildTargetFromId(id));
}
ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::create(ProjectExplorer::Target *parent,
@@ -534,43 +535,41 @@ ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::create(ProjectE
{
if (!canCreate(parent, id))
return 0;
- CMakeTarget *t(static_cast<CMakeTarget *>(parent));
-
+ CMakeProject *project = static_cast<CMakeProject *>(parent->project());
const QString title(buildTargetFromId(id));
- const CMakeBuildTarget &ct = t->cmakeProject()->buildTargetForTitle(title);
- return new CMakeRunConfiguration(t, ct.executable, ct.workingDirectory, ct.title);
+ const CMakeBuildTarget &ct = project->buildTargetForTitle(title);
+ return new CMakeRunConfiguration(parent, id, ct.executable, ct.workingDirectory, ct.title);
}
bool CMakeRunConfigurationFactory::canClone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration *source) const
{
- if (!qobject_cast<CMakeTarget *>(parent))
+ if (!canHandle(parent))
return false;
- return source->id() == Core::Id(CMAKE_RC_ID);
+ return source->id().toString().startsWith(QLatin1String(CMAKE_RC_PREFIX));
}
ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::clone(ProjectExplorer::Target *parent, ProjectExplorer::RunConfiguration * source)
{
if (!canClone(parent, source))
return 0;
- CMakeTarget *t(static_cast<CMakeTarget *>(parent));
CMakeRunConfiguration *crc(static_cast<CMakeRunConfiguration *>(source));
- return new CMakeRunConfiguration(t, crc);
+ return new CMakeRunConfiguration(parent, crc);
}
bool CMakeRunConfigurationFactory::canRestore(ProjectExplorer::Target *parent, const QVariantMap &map) const
{
- if (!qobject_cast<CMakeTarget *>(parent))
+ if (!qobject_cast<CMakeProject *>(parent->project()))
return false;
QString id = QString::fromUtf8(ProjectExplorer::idFromMap(map).name());
- return id.startsWith(QLatin1String(CMAKE_RC_ID));
+ return id.startsWith(QLatin1String(CMAKE_RC_PREFIX));
}
ProjectExplorer::RunConfiguration *CMakeRunConfigurationFactory::restore(ProjectExplorer::Target *parent, const QVariantMap &map)
{
if (!canRestore(parent, map))
return 0;
- CMakeTarget *t(static_cast<CMakeTarget *>(parent));
- CMakeRunConfiguration *rc(new CMakeRunConfiguration(t, QString(), QString(), QString()));
+ CMakeRunConfiguration *rc(new CMakeRunConfiguration(parent, ProjectExplorer::idFromMap(map),
+ QString(), QString(), QString()));
if (rc->fromMap(map))
return rc;
delete rc;
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index bf64aa36919..5d5d81816f3 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -62,12 +62,11 @@ class CMakeRunConfiguration : public ProjectExplorer::LocalApplicationRunConfigu
friend class CMakeRunConfigurationFactory;
public:
- CMakeRunConfiguration(CMakeTarget *parent, const QString &target,
+ CMakeRunConfiguration(ProjectExplorer::Target *parent, Core::Id id, const QString &target,
const QString &workingDirectory, const QString &title);
~CMakeRunConfiguration();
- CMakeTarget *cmakeTarget() const;
- CMakeBuildConfiguration *activeBuildConfiguration() const;
+ ProjectExplorer::BuildConfiguration *activeBuildConfiguration() const;
QString executable() const;
RunMode runMode() const;
@@ -101,7 +100,7 @@ private slots:
void setCommandLineArguments(const QString &newText);
protected:
- CMakeRunConfiguration(CMakeTarget *parent, CMakeRunConfiguration *source);
+ CMakeRunConfiguration(ProjectExplorer::Target *parent, CMakeRunConfiguration *source);
virtual bool fromMap(const QVariantMap &map);
QString defaultDisplayName() const;
@@ -177,6 +176,8 @@ public:
QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const;
QString displayNameForId(const Core::Id id) const;
+
+ bool canHandle(ProjectExplorer::Target *parent) const;
};
}
diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp
deleted file mode 100644
index 97aee20fb4a..00000000000
--- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation ([email protected])
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at [email protected].
-**
-**************************************************************************/
-
-#include "cmaketarget.h"
-
-#include "cmakeproject.h"
-#include "cmakerunconfiguration.h"
-#include "cmakebuildconfiguration.h"
-
-#include <projectexplorer/buildsteplist.h>
-#include <projectexplorer/deployconfiguration.h>
-#include <projectexplorer/projectexplorerconstants.h>
-#include <qtsupport/customexecutablerunconfiguration.h>
-
-#include <QApplication>
-#include <QStyle>
-
-using namespace CMakeProjectManager;
-using namespace CMakeProjectManager::Internal;
-
-namespace {
-
-QString displayNameForId(const Core::Id id) {
- if (id == Core::Id(DEFAULT_CMAKE_TARGET_ID))
- return QApplication::translate("CMakeProjectManager::Internal::CMakeTarget", "Desktop", "CMake Default target display name");
- return QString();
-}
-
-} // namespace
-
-// -------------------------------------------------------------------------
-// CMakeTarget
-// -------------------------------------------------------------------------
-
-CMakeTarget::CMakeTarget(CMakeProject *parent) :
- ProjectExplorer::Target(parent, Core::Id(DEFAULT_CMAKE_TARGET_ID)),
- m_buildConfigurationFactory(new CMakeBuildConfigurationFactory(this))
-{
- setDefaultDisplayName(displayNameForId(id()));
- setIcon(qApp->style()->standardIcon(QStyle::SP_ComputerIcon));
- connect(parent, SIGNAL(buildTargetsChanged()), SLOT(updateRunConfigurations()));
-}
-
-CMakeTarget::~CMakeTarget()
-{
-}
-
-CMakeProject *CMakeTarget::cmakeProject() const
-{
- return static_cast<CMakeProject *>(project());
-}
-
-ProjectExplorer::BuildConfigWidget *CMakeTarget::createConfigWidget()
-{
- return new CMakeBuildSettingsWidget(this);
-}
-
-bool CMakeTargetFactory::supportsTargetId(const Core::Id id) const
-{
- return id == Core::Id(DEFAULT_CMAKE_TARGET_ID);
-}
-
-CMakeBuildConfiguration *CMakeTarget::activeBuildConfiguration() const
-{
- return static_cast<CMakeBuildConfiguration *>(Target::activeBuildConfiguration());
-}
-
-CMakeBuildConfigurationFactory *CMakeTarget::buildConfigurationFactory() const
-{
- return m_buildConfigurationFactory;
-}
-
-QString CMakeTarget::defaultBuildDirectory() const
-{
- return cmakeProject()->defaultBuildDirectory();
-}
-
-bool CMakeTarget::fromMap(const QVariantMap &map)
-{
- return Target::fromMap(map);
-}
-
-void CMakeTarget::updateRunConfigurations()
-{
- // *Update* runconfigurations:
- QMultiMap<QString, CMakeRunConfiguration*> existingRunConfigurations;
- QList<ProjectExplorer::RunConfiguration *> toRemove;
- foreach (ProjectExplorer::RunConfiguration* rc, runConfigurations()) {
- if (CMakeRunConfiguration* cmakeRC = qobject_cast<CMakeRunConfiguration *>(rc))
- existingRunConfigurations.insert(cmakeRC->title(), cmakeRC);
- QtSupport::CustomExecutableRunConfiguration *ceRC =
- qobject_cast<QtSupport::CustomExecutableRunConfiguration *>(rc);
- if (ceRC && !ceRC->isConfigured())
- toRemove << rc;
- }
-
- foreach (const CMakeBuildTarget &ct, cmakeProject()->buildTargets()) {
- if (ct.library)
- continue;
- if (ct.executable.isEmpty())
- continue;
- if (ct.title.endsWith("/fast"))
- continue;
- QList<CMakeRunConfiguration *> list = existingRunConfigurations.values(ct.title);
- if (!list.isEmpty()) {
- // Already exists, so override the settings...
- foreach (CMakeRunConfiguration *rc, list) {
- rc->setExecutable(ct.executable);
- rc->setBaseWorkingDirectory(ct.workingDirectory);
- rc->setEnabled(true);
- }
- existingRunConfigurations.remove(ct.title);
- } else {
- // Does not exist yet
- addRunConfiguration(new CMakeRunConfiguration(this, ct.executable, ct.workingDirectory, ct.title));
- }
- }
- QMultiMap<QString, CMakeRunConfiguration *>::const_iterator it =
- existingRunConfigurations.constBegin();
- for ( ; it != existingRunConfigurations.constEnd(); ++it) {
- CMakeRunConfiguration *rc = it.value();
- // The executables for those runconfigurations aren't build by the current buildconfiguration
- // We just set a disable flag and show that in the display name
- rc->setEnabled(false);
- // removeRunConfiguration(rc);
- }
-
- foreach (ProjectExplorer::RunConfiguration *rc, toRemove)
- removeRunConfiguration(rc);
-
- if (runConfigurations().isEmpty()) {
- // Oh no, no run configuration,
- // create a custom executable run configuration
- addRunConfiguration(new QtSupport::CustomExecutableRunConfiguration(this));
- }
-}
-
-// -------------------------------------------------------------------------
-// CMakeTargetFactory
-// -------------------------------------------------------------------------
-
-CMakeTargetFactory::CMakeTargetFactory(QObject *parent) :
- ITargetFactory(parent)
-{
-}
-
-CMakeTargetFactory::~CMakeTargetFactory()
-{
-}
-
-QList<Core::Id> CMakeTargetFactory::supportedTargetIds() const
-{
- return QList<Core::Id>() << Core::Id(DEFAULT_CMAKE_TARGET_ID);
-}
-QString CMakeTargetFactory::displayNameForId(const Core::Id id) const
-{
- return ::displayNameForId(id);
-}
-
-bool CMakeTargetFactory::canCreate(ProjectExplorer::Project *parent, const Core::Id id) const
-{
- if (!qobject_cast<CMakeProject *>(parent))
- return false;
- return id == Core::Id(DEFAULT_CMAKE_TARGET_ID);
-}
-
-CMakeTarget *CMakeTargetFactory::create(ProjectExplorer::Project *parent, const Core::Id id)
-{
- if (!canCreate(parent, id))
- return 0;
- CMakeProject *cmakeparent(static_cast<CMakeProject *>(parent));
- CMakeTarget *t(new CMakeTarget(cmakeparent));
-
- // Add default build configuration:
- CMakeBuildConfiguration *bc(new CMakeBuildConfiguration(t));
- bc->setDefaultDisplayName("all");
-
- ProjectExplorer::BuildStepList *buildSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
- ProjectExplorer::BuildStepList *cleanSteps = bc->stepList(ProjectExplorer::Constants::BUILDSTEPS_CLEAN);
-
- // Now create a standard build configuration
- buildSteps->insertStep(0, new MakeStep(buildSteps));
-
- MakeStep *cleanMakeStep = new MakeStep(cleanSteps);
- cleanSteps->insertStep(0, cleanMakeStep);
- cleanMakeStep->setAdditionalArguments("clean");
- cleanMakeStep->setClean(true);
-
- t->addBuildConfiguration(bc);
-
- t->addDeployConfiguration(t->createDeployConfiguration(ProjectExplorer::Constants::DEFAULT_DEPLOYCONFIGURATION_ID));
-
- t->updateRunConfigurations();
-
- return t;
-}
-
-bool CMakeTargetFactory::canRestore(ProjectExplorer::Project *parent, const QVariantMap &map) const
-{
- return canCreate(parent, ProjectExplorer::idFromMap(map));
-}
-
-CMakeTarget *CMakeTargetFactory::restore(ProjectExplorer::Project *parent, const QVariantMap &map)
-{
- if (!canRestore(parent, map))
- return 0;
- CMakeProject *cmakeparent(static_cast<CMakeProject *>(parent));
- CMakeTarget *t(new CMakeTarget(cmakeparent));
- if (t->fromMap(map))
- return t;
- delete t;
- return 0;
-}
diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.h b/src/plugins/cmakeprojectmanager/cmaketarget.h
deleted file mode 100644
index d9e44487d9a..00000000000
--- a/src/plugins/cmakeprojectmanager/cmaketarget.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Contact: Nokia Corporation ([email protected])
-**
-**
-** GNU Lesser General Public License Usage
-**
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this file.
-** Please review the following information to ensure the GNU Lesser General
-** Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at [email protected].
-**
-**************************************************************************/
-
-#ifndef CMAKETARGET_H
-#define CMAKETARGET_H
-
-#include "cmakebuildconfiguration.h"
-
-#include <projectexplorer/target.h>
-
-namespace CMakeProjectManager {
-namespace Internal {
-
-const char DEFAULT_CMAKE_TARGET_ID[] = "CMakeProjectManager.DefaultCMakeTarget";
-
-class CMakeBuildConfiguration;
-class CMakeBuildConfigurationFactory;
-class CMakeProject;
-class CMakeTargetFactory;
-
-class CMakeTarget : public ProjectExplorer::Target
-{
- Q_OBJECT
- friend class CMakeTargetFactory;
-
-public:
- CMakeTarget(CMakeProject *parent);
- ~CMakeTarget();
-
- ProjectExplorer::BuildConfigWidget *createConfigWidget();
-
- CMakeProject *cmakeProject() const;
- CMakeBuildConfiguration *activeBuildConfiguration() const;
-
- CMakeBuildConfigurationFactory *buildConfigurationFactory() const;
-
- QString defaultBuildDirectory() const;
-
-protected:
- bool fromMap(const QVariantMap &map);
-
-private slots:
- void updateRunConfigurations();
-
-private:
- CMakeBuildConfigurationFactory *m_buildConfigurationFactory;
-};
-
-class CMakeTargetFactory : public ProjectExplorer::ITargetFactory
-{
- Q_OBJECT
-
-public:
- CMakeTargetFactory(QObject *parent = 0);
- ~CMakeTargetFactory();
-
- bool supportsTargetId(const Core::Id id) const;
-
- QList<Core::Id> supportedTargetIds() const;
- QString displayNameForId(const Core::Id id) const;
-
- bool canCreate(ProjectExplorer::Project *parent, const Core::Id id) const;
- CMakeTarget *create(ProjectExplorer::Project *parent, const Core::Id id);
- bool canRestore(ProjectExplorer::Project *parent, const QVariantMap &map) const;
- CMakeTarget *restore(ProjectExplorer::Project *parent, const QVariantMap &map);
-};
-
-} // namespace Internal
-} // namespace CMakeProjectManager
-
-#endif // CMAKETARGET_H
diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
index 1a4e427cf94..b41ab0254d8 100644
--- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
@@ -32,10 +32,10 @@
#include "cmakeuicodemodelsupport.h"
#include "cmakeproject.h"
-#include "cmaketarget.h"
#include "cmakebuildconfiguration.h"
#include <cpptools/ModelManagerInterface.h>
+#include <projectexplorer/target.h>
#include <QProcess>
@@ -48,14 +48,10 @@ CMakeUiCodeModelSupport::CMakeUiCodeModelSupport(CPlusPlus::CppModelManagerInter
const QString &uiHeaderFile)
: CppTools::UiCodeModelSupport(modelmanager, source, uiHeaderFile),
m_project(project)
-{
-
-}
+{ }
CMakeUiCodeModelSupport::~CMakeUiCodeModelSupport()
-{
-
-}
+{ }
QString CMakeUiCodeModelSupport::uicCommand() const
{
@@ -64,6 +60,7 @@ QString CMakeUiCodeModelSupport::uicCommand() const
QStringList CMakeUiCodeModelSupport::environment() const
{
- CMakeBuildConfiguration *bc = m_project->activeTarget()->activeBuildConfiguration();
- return bc->environment().toStringList();
+ if (!m_project || !m_project->activeTarget() || !m_project->activeTarget()->activeBuildConfiguration())
+ return QStringList();
+ return m_project->activeTarget()->activeBuildConfiguration()->environment().toStringList();
}
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index a28afbd02e6..fc8f885b542 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -34,14 +34,16 @@
#include "cmakeprojectconstants.h"
#include "cmakeproject.h"
-#include "cmaketarget.h"
#include "cmakebuildconfiguration.h"
#include <projectexplorer/buildsteplist.h>
-#include <projectexplorer/toolchain.h>
-#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/deployconfiguration.h>
#include <projectexplorer/gnumakeparser.h>
+#include <projectexplorer/profileinformation.h>
+#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/target.h>
+#include <projectexplorer/toolchain.h>
#include <utils/qtcprocess.h>
@@ -138,19 +140,20 @@ bool MakeStep::init()
setIgnoreReturnValue(m_clean);
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(target()->profile());
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->buildDirectory());
- if (bc->toolChain())
- pp->setCommand(bc->toolChain()->makeCommand());
+ if (tc)
+ pp->setCommand(tc->makeCommand());
else
pp->setCommand(QLatin1String("make"));
pp->setArguments(arguments);
setOutputParser(new ProjectExplorer::GnuMakeParser());
- if (bc->toolChain())
- appendOutputParser(bc->toolChain()->outputParser());
+ if (tc)
+ appendOutputParser(tc->outputParser());
outputParser()->setWorkingDirectory(pp->effectiveWorkingDirectory());
return AbstractProcessStep::init();
@@ -302,7 +305,13 @@ void MakeStepConfigWidget::updateDetails()
CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration();
if (!bc)
bc = static_cast<CMakeBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
- ProjectExplorer::ToolChain *tc = bc->toolChain();
+ if (!bc) {
+ m_summaryText = tr("<b>No build configuration found on this target.</b>");
+ updateSummary();
+ return;
+ }
+
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(m_makeStep->target()->profile());
if (tc) {
QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->buildTargets());
Utils::QtcProcess::addArgs(&arguments, m_makeStep->additionalArguments());
@@ -315,7 +324,7 @@ void MakeStepConfigWidget::updateDetails()
param.setArguments(arguments);
m_summaryText = param.summary(displayName());
} else {
- m_summaryText = tr("<b>Unknown tool chain</b>");
+ m_summaryText = tr("<b>No tool chain set for this target</b>");
}
emit updateSummary();
}