diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index a9856ae7b77..255ec0723a8 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -217,10 +217,17 @@ void CMakeBuildSystem::requestDebugging() bool CMakeBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const { const auto cmakeTarget = dynamic_cast(context); - if (cmakeTarget && cmakeTarget->productType() != ProductType::Other) - return action == ProjectAction::AddNewFile || action == ProjectAction::AddExistingFile - || action == ProjectAction::AddExistingDirectory || action == ProjectAction::Rename - || action == ProjectAction::RemoveFile; + if (cmakeTarget) { + const auto buildTarget = Utils::findOrDefault(m_buildTargets, + [cmakeTarget](const CMakeBuildTarget &bt) { + return bt.title + == cmakeTarget->buildKey(); + }); + if (buildTarget.targetType != UtilityType) + return action == ProjectAction::AddNewFile || action == ProjectAction::AddExistingFile + || action == ProjectAction::AddExistingDirectory + || action == ProjectAction::Rename || action == ProjectAction::RemoveFile; + } return BuildSystem::supportsAction(context, action, node); }