diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 0f973cd71a2cf69ceb51f6f29fc4d09861dea799..7e92e0140cd1a8077537b533a236bc9649549e23 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 ffb3cce73a9c2f534e8e518c9a2436a8c43cc66f..3f383cc9dced93f72199541d8cf67e8e2d254969 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 e87cb5dc7086f445716ad169d1f1a8246cf590bc..8a89c76a04eac2631c273d558168ae32de67250e 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"))