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"))