diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index da8094327f0..eb5824a98d4 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -410,11 +410,11 @@ QList CMakeProject::buildTargets() const return m_buildTargets; } -QStringList CMakeProject::buildTargetTitles() const +QStringList CMakeProject::buildTargetTitles(bool runnable) const { QStringList results; foreach (const CMakeBuildTarget &ct, m_buildTargets) { - if (ct.executable.isEmpty()) + if (runnable && (ct.executable.isEmpty() || ct.library)) continue; if (ct.title.endsWith(QLatin1String("/fast"))) continue; @@ -426,8 +426,6 @@ QStringList CMakeProject::buildTargetTitles() const bool CMakeProject::hasBuildTarget(const QString &title) const { foreach (const CMakeBuildTarget &ct, m_buildTargets) { - if (ct.executable.isEmpty()) - continue; if (ct.title.endsWith(QLatin1String("/fast"))) continue; if (ct.title == title) @@ -1103,8 +1101,7 @@ void CMakeCbpParser::parseBuildTarget() while (!atEnd()) { readNext(); if (isEndElement()) { - if (m_buildTargetType || m_buildTarget.title == QLatin1String("all") || m_buildTarget.title == QLatin1String("install")) - m_buildTargets.append(m_buildTarget); + m_buildTargets.append(m_buildTarget); return; } else if (name() == QLatin1String("Compiler")) { parseCompiler(); diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index e255e8a3ff7..077bcea1077 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -88,7 +88,7 @@ public: ProjectExplorer::ProjectNode *rootProjectNode() const; QStringList files(FilesMode fileMode) const; - QStringList buildTargetTitles() const; + QStringList buildTargetTitles(bool runnable = false) const; QList buildTargets() const; bool hasBuildTarget(const QString &title) const; diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index a49f48b13c3..0cf6a85f753 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -487,7 +487,7 @@ QList CMakeRunConfigurationFactory::availableCreationIds(ProjectExplor return QList(); CMakeProject *project = static_cast(parent->project()); QList allIds; - foreach (const QString &buildTarget, project->buildTargetTitles()) + foreach (const QString &buildTarget, project->buildTargetTitles(true)) allIds << idFromBuildTarget(buildTarget); return allIds; }