summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-07-25 18:51:18 +0200
committerMarco Bubke <marco.bubke@qt.io>2019-08-27 11:50:26 +0000
commitf1be7793c43074d67d47429dd6ec2e4681667820 (patch)
tree1798478fa3de3001a0d4a6c9a1b95a93883dd847 /src/tools
parentd086bbdc9a271ab265326e268d0da2b1428cc2e8 (diff)
downloadqt-creator-f1be7793c43074d67d47429dd6ec2e4681667820.tar.gz
ClangPchManager: Expose more internals from BuildDependenciesProvider
We will need it later. Change-Id: Ic2c85780bf965be8e4c8603fed365d806576fdc6 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp21
-rw-r--r--src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h7
-rw-r--r--src/tools/clangpchmanagerbackend/source/builddependenciesproviderinterface.h3
3 files changed, 20 insertions, 11 deletions
diff --git a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp
index c2e3b4a5f9..9e0f62bc7d 100644
--- a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp
+++ b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.cpp
@@ -55,21 +55,24 @@ OutputContainer setUnion(InputContainer1 &&input1,
BuildDependency BuildDependenciesProvider::create(const ProjectPartContainer &projectPart)
{
- m_ensureAliveMessageIsSentCallback();
+ return create(projectPart,
+ createSourceEntriesFromStorage(projectPart.sourcePathIds, projectPart.projectPartId));
+}
- auto sourcesAndProjectPart = createSourceEntriesFromStorage(projectPart.sourcePathIds,
- projectPart.projectPartId);
+BuildDependency BuildDependenciesProvider::create(const ProjectPartContainer &projectPart,
+ SourceEntries &&sourceEntries)
+{
+ m_ensureAliveMessageIsSentCallback();
- if (!m_modifiedTimeChecker.isUpToDate(sourcesAndProjectPart.first)) {
+ if (!m_modifiedTimeChecker.isUpToDate(sourceEntries)) {
BuildDependency buildDependency = m_generator.create(projectPart);
- storeBuildDependency(buildDependency, sourcesAndProjectPart.second);
+ storeBuildDependency(buildDependency, projectPart.projectPartId);
return buildDependency;
}
- return createBuildDependencyFromStorage(
- std::move(sourcesAndProjectPart.first));
+ return createBuildDependencyFromStorage(std::move(sourceEntries));
}
BuildDependency BuildDependenciesProvider::createBuildDependencyFromStorage(
@@ -103,7 +106,7 @@ UsedMacros BuildDependenciesProvider::createUsedMacrosFromStorage(const SourceEn
return usedMacros;
}
-std::pair<SourceEntries, ProjectPartId> BuildDependenciesProvider::createSourceEntriesFromStorage(
+SourceEntries BuildDependenciesProvider::createSourceEntriesFromStorage(
const FilePathIds &sourcePathIds, ProjectPartId projectPartId) const
{
SourceEntries includes;
@@ -119,7 +122,7 @@ std::pair<SourceEntries, ProjectPartId> BuildDependenciesProvider::createSourceE
transaction.commit();
- return {includes, projectPartId};
+ return includes;
}
void BuildDependenciesProvider::storeBuildDependency(const BuildDependency &buildDependency,
diff --git a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h
index 924e3e4f45..765ba98a68 100644
--- a/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h
+++ b/src/tools/clangpchmanagerbackend/source/builddependenciesprovider.h
@@ -52,17 +52,20 @@ public:
{}
BuildDependency create(const ProjectPartContainer &projectPart) override;
+ BuildDependency create(const ProjectPartContainer &projectPart,
+ SourceEntries &&sourceEntries) override;
void setEnsureAliveMessageIsSentCallback(std::function<void()> &&callback)
{
m_ensureAliveMessageIsSentCallback = std::move(callback);
}
+ SourceEntries createSourceEntriesFromStorage(const FilePathIds &sourcePathIds,
+ ProjectPartId projectPartId) const override;
+
private:
BuildDependency createBuildDependencyFromStorage(SourceEntries &&includes) const;
UsedMacros createUsedMacrosFromStorage(const SourceEntries &includes) const;
- std::pair<SourceEntries, ProjectPartId> createSourceEntriesFromStorage(
- const FilePathIds &sourcePathIds, ProjectPartId projectPartId) const;
void storeBuildDependency(const BuildDependency &buildDependency, ProjectPartId projectPartId);
private:
diff --git a/src/tools/clangpchmanagerbackend/source/builddependenciesproviderinterface.h b/src/tools/clangpchmanagerbackend/source/builddependenciesproviderinterface.h
index 7af8c054cc..7b5e9342b6 100644
--- a/src/tools/clangpchmanagerbackend/source/builddependenciesproviderinterface.h
+++ b/src/tools/clangpchmanagerbackend/source/builddependenciesproviderinterface.h
@@ -35,6 +35,9 @@ class BuildDependenciesProviderInterface
{
public:
virtual BuildDependency create(const ProjectPartContainer &projectPart) = 0;
+ virtual BuildDependency create(const ProjectPartContainer &projectPart, SourceEntries &&sourceEntries) = 0;
+ virtual SourceEntries createSourceEntriesFromStorage(const FilePathIds &sourcePathIds,
+ ProjectPartId projectPartId) const = 0;
protected:
~BuildDependenciesProviderInterface() = default;