From 3ae3e3f330a934a990ee40e38a151799632f83d4 Mon Sep 17 00:00:00 2001 From: Erik <treat@gmx.com> Date: Fri, 23 Apr 2010 16:24:55 +0200 Subject: [PATCH] Import library target from cmake project. Added library flag to CMakeBuildTarget struct which is set when parsing the cbp file. This flag is then used to make sure no runconfiguration is created for library targets. Merge-request: 136 Reviewed-by: dt <qtc-committer@nokia.com> --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 13 +++++++++---- src/plugins/cmakeprojectmanager/cmakeproject.h | 3 ++- src/plugins/cmakeprojectmanager/cmaketarget.cpp | 2 ++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 0f973cd71a2..7e92e0140cd 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -222,7 +222,7 @@ bool CMakeProject::parseCMakeLists() //qDebug()<<"Adding Targets"; m_buildTargets = cbpparser.buildTargets(); // qDebug()<<"Printing targets"; -// foreach(CMakeTarget ct, m_targets) { +// foreach(CMakeBuildTarget ct, m_buildTargets) { // qDebug()<<ct.title<<" with executable:"<<ct.executable; // qDebug()<<"WD:"<<ct.workingDirectory; // qDebug()<<ct.makeCommand<<ct.makeCleanCommand; @@ -754,12 +754,16 @@ void CMakeCbpParser::parseBuildTarget() void CMakeCbpParser::parseBuildTargetOption() { - if (attributes().hasAttribute("output")) + if (attributes().hasAttribute("output")) { m_buildTarget.executable = attributes().value("output").toString(); - else if (attributes().hasAttribute("type") && (attributes().value("type") == "1" || attributes().value("type") == "0")) + } else if (attributes().hasAttribute("type") && (attributes().value("type") == "1" || attributes().value("type") == "0")) { m_buildTargetType = true; - else if (attributes().hasAttribute("working_dir")) + } else if (attributes().hasAttribute("type") && (attributes().value("type") == "3" || attributes().value("type") == "2")) { + m_buildTargetType = true; + m_buildTarget.library = true; + } else if (attributes().hasAttribute("working_dir")) { m_buildTarget.workingDirectory = attributes().value("working_dir").toString(); + } while (!atEnd()) { readNext(); if (isEndElement()) { @@ -963,5 +967,6 @@ void CMakeBuildTarget::clear() makeCleanCommand.clear(); workingDirectory.clear(); title.clear(); + library = false; } diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index ffb3cce73a9..3f383cc9dce 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -57,7 +57,8 @@ class CMakeBuildSettingsWidget; struct CMakeBuildTarget { QString title; - QString executable; + QString executable; // TODO: rename to output? + bool library; QString workingDirectory; QString makeCommand; QString makeCleanCommand; diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp index e87cb5dc708..8a89c76a04e 100644 --- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketarget.cpp @@ -106,6 +106,8 @@ void CMakeTarget::updateRunConfigurations() } foreach(const CMakeBuildTarget &ct, cmakeProject()->buildTargets()) { + if (ct.library) + continue; if (ct.executable.isEmpty()) continue; if (ct.title.endsWith("/fast")) -- GitLab