From 47379011ea9e3adaf2bbeb18d3ff390099b57128 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 29 Sep 2016 08:51:08 +0200 Subject: [PATCH] QbsProjectManager: Take Project::FilesMode into account Change-Id: Ia3b56392c6334beb0e892adf952c0f752920d704 Reviewed-by: Jake Petroules Reviewed-by: Orgad Shaneh --- src/plugins/qbsprojectmanager/qbsproject.cpp | 33 +++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 2e4ab20270f..28fb062310d 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -158,29 +158,40 @@ void QbsProject::projectLoaded() m_parsingDelay.start(0); } -static void collectFilesForProject(const qbs::ProjectData &project, QSet &result) +static void collectFilesForProject(const qbs::ProjectData &project, Project::FilesMode mode, + QSet &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::GroupData &grp, prd.groups()) { - foreach (const QString &file, grp.allFilePaths()) - result.insert(file); - result.insert(grp.location().filePath()); + if (mode & Project::SourceFiles) { + foreach (const qbs::GroupData &grp, prd.groups()) { + foreach (const QString &file, grp.allFilePaths()) + 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()) - collectFilesForProject(subProject, result); + collectFilesForProject(subProject, mode, result); } QStringList QbsProject::files(Project::FilesMode fileMode) const { - Q_UNUSED(fileMode); - qCDebug(qbsPmLog) << Q_FUNC_INFO << m_qbsProject.isValid() << isParsing(); + qCDebug(qbsPmLog) << Q_FUNC_INFO << fileMode << m_qbsProject.isValid() << isParsing(); if (!m_qbsProject.isValid() || isParsing()) return QStringList(); QSet result; - collectFilesForProject(m_projectData, result); + collectFilesForProject(m_projectData, fileMode, result); result.unite(m_qbsProject.buildSystemFiles()); qCDebug(qbsPmLog) << "file count:" << result.count(); return result.toList();