From a7ed20faaa927ecfa7493757756cef35a5c4c33c Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 14 Feb 2017 15:06:45 +0100 Subject: [PATCH] QbsProjectManager: Do not interpret Project::GeneratedFiles literally The files retrieved by calling Project::files() with this flag show up in the locator, in search results etc. So only consider files that we know to be human-readable. Task-number: QTCREATORBUG-17382 Change-Id: I7a66159e67207a09adb57b0c5584b0b067fd1fca Reviewed-by: Eike Ziller Reviewed-by: Nikolai Kosjar --- src/plugins/qbsprojectmanager/qbsproject.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 3c3747d30c5..37fd8b633c5 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -174,8 +174,21 @@ static void collectFilesForProject(const qbs::ProjectData &project, Project::Fil } if (mode & Project::GeneratedFiles) { foreach (const qbs::ProductData &prd, project.products()) { - foreach (const qbs::ArtifactData &artifact, prd.generatedArtifacts()) - result.insert(artifact.filePath()); + foreach (const qbs::ArtifactData &artifact, prd.generatedArtifacts()) { + // A list of human-readable file types that we can reasonably expect + // to get generated during a build. Extend as needed. + static const QSet sourceTags = { + QLatin1String("c"), QLatin1String("cpp"), QLatin1String("hpp"), + QLatin1String("objc"), QLatin1String("objcpp"), + QLatin1String("c_pch_src"), QLatin1String("cpp_pch_src"), + QLatin1String("objc_pch_src"), QLatin1String("objcpp_pch_src"), + QLatin1String("asm"), QLatin1String("asm_cpp"), + QLatin1String("linkerscript"), + QLatin1String("qrc"), QLatin1String("java.java") + }; + if (artifact.fileTags().toSet().intersects(sourceTags)) + result.insert(artifact.filePath()); + } } } }