forked from qt-creator/qt-creator
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:
@@ -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,
|
||||
|
@@ -24,6 +24,7 @@ public:
|
||||
|
||||
Utils::FilePaths importCandidates() final;
|
||||
ProjectExplorer::Target *preferredTarget(const QList<ProjectExplorer::Target *> &possibleTargets) final;
|
||||
bool filter(ProjectExplorer::Kit *k) const final;
|
||||
|
||||
Utils::FilePaths presetCandidates();
|
||||
private:
|
||||
@@ -48,6 +49,7 @@ private:
|
||||
|
||||
const CMakeProject *m_project;
|
||||
Utils::TemporaryDirectory m_presetsTempDir;
|
||||
bool m_hasCMakePresets = false;
|
||||
};
|
||||
|
||||
#ifdef WITH_TESTS
|
||||
|
Reference in New Issue
Block a user