diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 3097e118d3e3af9eb9c6ebf971f0e3fde94d49be..70509b02ffa3be7e4a9d3b81badaba03fc00a80b 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -273,7 +273,7 @@ ProjectExplorer::BuildConfiguration *CMakeBuildConfigurationFactory::create(cons m_project->parseCMakeLists(); // Default to all - if (m_project->targets().contains("all")) + if (m_project->hasTarget("all")) makeStep->setBuildTarget("all", true); return bc; } diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 5e7697f16207e4a4a95d8182364dbbe8836e30ad..0655727daf9e7fbb783be3d058afa84aefadc7c6 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -319,6 +319,19 @@ QStringList CMakeProject::targets() const return results; } +bool CMakeProject::hasTarget(const QString &title) const +{ + foreach (const CMakeTarget &ct, m_targets) { + if (ct.executable.isEmpty()) + continue; + if (ct.title.endsWith("/fast")) + continue; + if (ct.title == title) + return true; + } + return false; +} + void CMakeProject::gatherFileNodes(ProjectExplorer::FolderNode *parent, QList<ProjectExplorer::FileNode *> &list) { foreach(ProjectExplorer::FolderNode *folder, parent->subFolderNodes()) @@ -540,7 +553,7 @@ bool CMakeProject::restoreSettingsImpl(ProjectExplorer::PersistentSettingsReader if (!result) return false; - if (!hasUserFile && targets().contains("all")) + if (!hasUserFile && hasTarget("all")) makeStep->setBuildTarget("all", true); m_lastActiveBuildConfiguration = activeCMakeBuildConfiguration(); diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index 81a9a010af16e56bc424fd6d21b65093d8de65eb..b6e54e5580b953f6b07883edb6cb97a6198e9f70 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -90,6 +90,7 @@ public: virtual QStringList files(FilesMode fileMode) const; QStringList targets() const; + bool hasTarget(const QString &title) const; CMakeTarget targetForTitle(const QString &title);