CMakePM: Only display CMake preset Kits in the project setup page

Fixes: QTCREATORBUG-29535
Change-Id: I87c16c24a8548efb4374af342947d342e19cc510
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Cristian Adam
2024-02-05 16:23:22 +01:00
parent c553d63a32
commit 87c67fc6d7
2 changed files with 20 additions and 0 deletions

View File

@@ -201,6 +201,8 @@ FilePaths CMakeProjectImporter::presetCandidates()
}
}
m_hasCMakePresets = !candidates.isEmpty();
return candidates;
}
@@ -219,6 +221,22 @@ Target *CMakeProjectImporter::preferredTarget(const QList<Target *> &possibleTar
return ProjectImporter::preferredTarget(possibleTargets);
}
bool CMakeProjectImporter::filter(ProjectExplorer::Kit *k) const
{
if (!m_hasCMakePresets)
return true;
const auto presetConfigItem = CMakeConfigurationKitAspect::cmakePresetConfigItem(k);
if (presetConfigItem.isNull())
return false;
const QString presetName = presetConfigItem.expandedValue(k);
return std::find_if(m_project->presetsData().configurePresets.cbegin(),
m_project->presetsData().configurePresets.cend(),
[&presetName](const auto &preset) { return presetName == preset.name; })
!= m_project->presetsData().configurePresets.cend();
}
static CMakeConfig configurationFromPresetProbe(
const FilePath &importPath,
const FilePath &sourceDirectory,