CMakePM: Allow adding files to OBJECT libraries

Amends 7a46bbe667 which only used
`cmakeTarget->productType() != ProductType::Other` which excludes OBJECT
libraries.

Now the fix actually includes all targets which are not UtilityType,
which was the intention of 7a46bbe667

Fixes: QTCREATORBUG-29914
Change-Id: If661828e43d5c566c876546f5527c0b670405e47
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Cristian Adam
2024-01-25 17:28:53 +01:00
parent 0197a2780a
commit a8370aaf81

View File

@@ -217,10 +217,17 @@ void CMakeBuildSystem::requestDebugging()
bool CMakeBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const
{
const auto cmakeTarget = dynamic_cast<CMakeTargetNode *>(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);
}