QbsProject: Implement filesGeneratedFrom()

Unfortunately we cannot use it for updating the code model after all,
as the same file might be used in different products to generate
different files. However, with the new "recursive" parameter to
qbs::Project::generatedFiles() we can use that function directly there.

Change-Id: Iec8e1a1366c6f4d94198b38bcb464d05106dbbff
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2016-03-01 16:03:58 +01:00
parent 8e1ec99a07
commit 77b1063d8c
2 changed files with 11 additions and 1 deletions

View File

@@ -183,6 +183,14 @@ QStringList QbsProject::files(Project::FilesMode fileMode) const
return result.toList();
}
QStringList QbsProject::filesGeneratedFrom(const QString &sourceFile) const
{
QStringList generated;
foreach (const qbs::ProductData &data, m_projectData.allProducts())
generated << m_qbsProject.generatedFiles(data, sourceFile, false);
return generated;
}
bool QbsProject::isProjectEditable() const
{
return m_qbsProject.isValid() && !isParsing() && !BuildManager::isBuilding();
@@ -788,7 +796,8 @@ void QbsProject::updateCppCodeModel()
for (auto i = factoriesBegin; i != factoriesEnd; ++i) {
if ((*i)->sourceTag() != tag)
continue;
QStringList generated = filesGeneratedFrom(source.filePath());
QStringList generated = m_qbsProject.generatedFiles(prd, source.filePath(),
false);
if (generated.isEmpty())
continue;

View File

@@ -67,6 +67,7 @@ public:
QbsRootProjectNode *rootProjectNode() const override;
QStringList files(FilesMode fileMode) const override;
QStringList filesGeneratedFrom(const QString &sourceFile) const override;
bool isProjectEditable() const;
bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,