aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp')
-rw-r--r--src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp
index b3ebbc75ad..1d08442c51 100644
--- a/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp
+++ b/src/tools/clangpchmanagerbackend/source/builddependencycollector.cpp
@@ -45,8 +45,27 @@ FilePathIds operator+(const FilePathIds &first, const FilePathIds &second)
return result;
}
+
+FilePaths operator+(FilePaths &&first, FilePaths &&second) {
+ FilePaths result = std::move(first);
+
+ std::copy(second.begin(), second.end(), std::back_inserter(result));
+
+ return result;
}
+FilePaths generatedFilePaths(const V2::FileContainers &containers) {
+ FilePaths paths;
+ paths.reserve(containers.size());
+ std::transform(containers.begin(),
+ containers.end(),
+ std::back_inserter(paths),
+ [](const auto &container) { return container.filePath; });
+ return paths;
+}
+
+} // namespace
+
BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &projectPart)
{
CommandLineBuilder<ProjectPartContainer, Utils::SmallStringVector>
@@ -54,8 +73,9 @@ BuildDependency BuildDependencyCollector::create(const ProjectPartContainer &pro
addFiles(projectPart.sourcePathIds, std::move(builder.commandLine));
- setExcludedFilePaths(
- m_filePathCache.filePaths(projectPart.headerPathIds + projectPart.sourcePathIds));
+ setExcludedFilePaths(m_filePathCache.filePaths(projectPart.headerPathIds +
+ projectPart.sourcePathIds) +
+ generatedFilePaths(m_generatedFiles.fileContainers()));
addUnsavedFiles(m_generatedFiles.fileContainers());