QbsProjectManager: Take Project::FilesMode into account

Change-Id: Ia3b56392c6334beb0e892adf952c0f752920d704
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Christian Kandeler
2016-09-29 08:51:08 +02:00
parent d452f84930
commit 47379011ea

View File

@@ -158,29 +158,40 @@ void QbsProject::projectLoaded()
m_parsingDelay.start(0); m_parsingDelay.start(0);
} }
static void collectFilesForProject(const qbs::ProjectData &project, QSet<QString> &result) static void collectFilesForProject(const qbs::ProjectData &project, Project::FilesMode mode,
QSet<QString> &result)
{ {
result.insert(project.location().filePath()); if (mode & Project::SourceFiles)
result.insert(project.location().filePath());
foreach (const qbs::ProductData &prd, project.products()) { foreach (const qbs::ProductData &prd, project.products()) {
foreach (const qbs::GroupData &grp, prd.groups()) { if (mode & Project::SourceFiles) {
foreach (const QString &file, grp.allFilePaths()) foreach (const qbs::GroupData &grp, prd.groups()) {
result.insert(file); foreach (const QString &file, grp.allFilePaths())
result.insert(grp.location().filePath()); result.insert(file);
result.insert(grp.location().filePath());
}
result.insert(prd.location().filePath());
}
if (mode & Project::GeneratedFiles) {
foreach (const qbs::ProductData &prd, project.products()) {
foreach (const qbs::ArtifactData &artifact, prd.generatedArtifacts())
result.insert(artifact.filePath());
}
} }
result.insert(prd.location().filePath());
} }
foreach (const qbs::ProjectData &subProject, project.subProjects()) foreach (const qbs::ProjectData &subProject, project.subProjects())
collectFilesForProject(subProject, result); collectFilesForProject(subProject, mode, result);
} }
QStringList QbsProject::files(Project::FilesMode fileMode) const QStringList QbsProject::files(Project::FilesMode fileMode) const
{ {
Q_UNUSED(fileMode); qCDebug(qbsPmLog) << Q_FUNC_INFO << fileMode << m_qbsProject.isValid() << isParsing();
qCDebug(qbsPmLog) << Q_FUNC_INFO << m_qbsProject.isValid() << isParsing();
if (!m_qbsProject.isValid() || isParsing()) if (!m_qbsProject.isValid() || isParsing())
return QStringList(); return QStringList();
QSet<QString> result; QSet<QString> result;
collectFilesForProject(m_projectData, result); collectFilesForProject(m_projectData, fileMode, result);
result.unite(m_qbsProject.buildSystemFiles()); result.unite(m_qbsProject.buildSystemFiles());
qCDebug(qbsPmLog) << "file count:" << result.count(); qCDebug(qbsPmLog) << "file count:" << result.count();
return result.toList(); return result.toList();