From 2bd4758fe4401b241a5b85df11bb764e8ad8af81 Mon Sep 17 00:00:00 2001
From: Daniel Teske <daniel.teske@nokia.com>
Date: Wed, 28 Mar 2012 13:18:25 +0200
Subject: [PATCH] CMakeProjectManager: Fix crash for makesteps in
 deployconfigurations

Task-number: QTCREATORBUG-7143
Change-Id: I0bf4e0e45367c361bd3efa5e2db9349d438184ab
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
---
 src/plugins/cmakeprojectmanager/makestep.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index 431b6c9deac..524ba5548a5 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -249,7 +249,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep)
 
     // TODO update this list also on rescans of the CMakeLists.txt
     // TODO shouldn't be accessing project
-    CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
+    CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
     foreach (const QString& buildTarget, pro->buildTargetTitles()) {
         QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
         item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
@@ -288,7 +288,7 @@ void MakeStepConfigWidget::buildTargetsChanged()
 {
     disconnect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*)));
     m_buildTargetsList->clear();
-    CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
+    CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
     foreach (const QString& buildTarget, pro->buildTargetTitles()) {
         QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
         item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
@@ -301,6 +301,8 @@ void MakeStepConfigWidget::buildTargetsChanged()
 void MakeStepConfigWidget::updateDetails()
 {
     CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration();
+    if (!bc)
+        bc = static_cast<CMakeBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
     ProjectExplorer::ToolChain *tc = bc->toolChain();
     if (tc) {
         QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets);
-- 
GitLab