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;
|
return candidates;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,6 +221,22 @@ Target *CMakeProjectImporter::preferredTarget(const QList<Target *> &possibleTar
|
|||||||
return ProjectImporter::preferredTarget(possibleTargets);
|
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(
|
static CMakeConfig configurationFromPresetProbe(
|
||||||
const FilePath &importPath,
|
const FilePath &importPath,
|
||||||
const FilePath &sourceDirectory,
|
const FilePath &sourceDirectory,
|
||||||
|
@@ -24,6 +24,7 @@ public:
|
|||||||
|
|
||||||
Utils::FilePaths importCandidates() final;
|
Utils::FilePaths importCandidates() final;
|
||||||
ProjectExplorer::Target *preferredTarget(const QList<ProjectExplorer::Target *> &possibleTargets) final;
|
ProjectExplorer::Target *preferredTarget(const QList<ProjectExplorer::Target *> &possibleTargets) final;
|
||||||
|
bool filter(ProjectExplorer::Kit *k) const final;
|
||||||
|
|
||||||
Utils::FilePaths presetCandidates();
|
Utils::FilePaths presetCandidates();
|
||||||
private:
|
private:
|
||||||
@@ -48,6 +49,7 @@ private:
|
|||||||
|
|
||||||
const CMakeProject *m_project;
|
const CMakeProject *m_project;
|
||||||
Utils::TemporaryDirectory m_presetsTempDir;
|
Utils::TemporaryDirectory m_presetsTempDir;
|
||||||
|
bool m_hasCMakePresets = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef WITH_TESTS
|
#ifdef WITH_TESTS
|
||||||
|
Reference in New Issue
Block a user