diff options
author | Marco Bubke <marco.bubke@qt.io> | 2019-07-25 18:51:18 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2019-08-27 11:50:26 +0000 |
commit | f1be7793c43074d67d47429dd6ec2e4681667820 (patch) | |
tree | 1798478fa3de3001a0d4a6c9a1b95a93883dd847 /src/tools | |
parent | d086bbdc9a271ab265326e268d0da2b1428cc2e8 (diff) | |
download | qt-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')
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; |