forked from qt-creator/qt-creator
CMakePM: When using presets only use presets for candidates
Since the CMake presets is built upon Imports, when loading the presets it's better to only use the candidates from preset Kits and not any matching Kit that could handle the build directory. This makes working with CMake Presets a bit easier. Task-number: QTCREATORBUG-29535 Change-Id: I895e2e9162763e4cf3af5cdef5c9d5b228211fab Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -147,8 +147,9 @@ static QString displayPresetName(const QString &presetName)
|
||||
|
||||
FilePaths CMakeProjectImporter::importCandidates()
|
||||
{
|
||||
FilePaths candidates;
|
||||
FilePaths candidates = presetCandidates();
|
||||
|
||||
if (candidates.isEmpty()) {
|
||||
candidates << scanDirectory(projectFilePath().absolutePath(), "build");
|
||||
|
||||
const QList<Kit *> kits = KitManager::kits();
|
||||
@@ -160,6 +161,16 @@ FilePaths CMakeProjectImporter::importCandidates()
|
||||
BuildConfiguration::Unknown);
|
||||
candidates << scanDirectory(shadowBuildDirectory.absolutePath(), QString());
|
||||
}
|
||||
}
|
||||
|
||||
const FilePaths finalists = Utils::filteredUnique(candidates);
|
||||
qCInfo(cmInputLog) << "import candidates:" << finalists;
|
||||
return finalists;
|
||||
}
|
||||
|
||||
FilePaths CMakeProjectImporter::presetCandidates()
|
||||
{
|
||||
FilePaths candidates;
|
||||
|
||||
for (const auto &configPreset : m_project->presetsData().configurePresets) {
|
||||
if (configPreset.hidden.value())
|
||||
@@ -190,9 +201,7 @@ FilePaths CMakeProjectImporter::importCandidates()
|
||||
}
|
||||
}
|
||||
|
||||
const FilePaths finalists = Utils::filteredUnique(candidates);
|
||||
qCInfo(cmInputLog) << "import candidates:" << finalists;
|
||||
return finalists;
|
||||
return candidates;
|
||||
}
|
||||
|
||||
Target *CMakeProjectImporter::preferredTarget(const QList<Target *> &possibleTargets)
|
||||
|
@@ -25,6 +25,7 @@ public:
|
||||
Utils::FilePaths importCandidates() final;
|
||||
ProjectExplorer::Target *preferredTarget(const QList<ProjectExplorer::Target *> &possibleTargets) final;
|
||||
|
||||
Utils::FilePaths presetCandidates();
|
||||
private:
|
||||
QList<void *> examineDirectory(const Utils::FilePath &importPath,
|
||||
QString *warningMessage) const final;
|
||||
|
Reference in New Issue
Block a user