forked from qt-creator/qt-creator
CMake: use filePaths to scan for build directories
Change-Id: I34ccf91d9ca2b8e0b1927ad8b73e2ce2b54ecf0e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -74,17 +74,14 @@ struct DirectoryData
|
|||||||
QVector<ToolChainDescription> toolChains;
|
QVector<ToolChainDescription> toolChains;
|
||||||
};
|
};
|
||||||
|
|
||||||
static QStringList scanDirectory(const QString &path, const QString &prefix)
|
static QStringList scanDirectory(const FilePath &path, const QString &prefix)
|
||||||
{
|
{
|
||||||
QStringList result;
|
QStringList result;
|
||||||
qCDebug(cmInputLog) << "Scanning for directories matching" << prefix << "in" << path;
|
qCDebug(cmInputLog) << "Scanning for directories matching" << prefix << "in" << path;
|
||||||
|
|
||||||
const QDir base = QDir(path);
|
foreach (const FilePath &entry, path.dirEntries({prefix + ".*"}, QDir::Dirs | QDir::NoDotAndDotDot)) {
|
||||||
foreach (const QString &dir, base.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
|
QTC_ASSERT(entry.isDir(), continue);
|
||||||
const QString subPath = path + '/' + dir;
|
result.append(entry.toString());
|
||||||
qCDebug(cmInputLog) << "Checking" << subPath;
|
|
||||||
if (dir.startsWith(prefix))
|
|
||||||
result.append(subPath);
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -119,13 +116,15 @@ QStringList CMakeProjectImporter::importCandidates()
|
|||||||
{
|
{
|
||||||
QStringList candidates;
|
QStringList candidates;
|
||||||
|
|
||||||
QFileInfo pfi = projectFilePath().toFileInfo();
|
candidates << scanDirectory(projectFilePath().absolutePath(), "build");
|
||||||
candidates << scanDirectory(pfi.absolutePath(), "build");
|
|
||||||
|
|
||||||
foreach (Kit *k, KitManager::kits()) {
|
foreach (Kit *k, KitManager::kits()) {
|
||||||
QFileInfo fi(CMakeBuildConfiguration::shadowBuildDirectory(projectFilePath(), k,
|
FilePath shadowBuildDirectory
|
||||||
QString(), BuildConfiguration::Unknown).toString());
|
= CMakeBuildConfiguration::shadowBuildDirectory(projectFilePath(),
|
||||||
candidates << scanDirectory(fi.absolutePath(), QString());
|
k,
|
||||||
|
QString(),
|
||||||
|
BuildConfiguration::Unknown);
|
||||||
|
candidates << scanDirectory(shadowBuildDirectory.absolutePath(), QString());
|
||||||
}
|
}
|
||||||
const QStringList finalists = Utils::filteredUnique(candidates);
|
const QStringList finalists = Utils::filteredUnique(candidates);
|
||||||
qCInfo(cmInputLog) << "import candidates:" << finalists;
|
qCInfo(cmInputLog) << "import candidates:" << finalists;
|
||||||
|
Reference in New Issue
Block a user