diff options
author | Marco Bubke <marco.bubke@qt.io> | 2018-12-17 12:06:57 +0100 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2019-01-21 15:27:10 +0000 |
commit | dd366b68dea11eebb0b1c53f3cff1902ce2bfefa (patch) | |
tree | b919ffd70c5e3677244d2475381f6fb8defdd3eb /src/plugins/clangpchmanager/projectupdater.h | |
parent | a78e3e5dd5f882a28a3152f2e63ae986a9f2a8c5 (diff) |
PchManager: Split pch tasks in project and system pch tasks
Like you can see in the task numbers this patch is touching many different
areas. So I will only touch the main parts. It is using a clang action
instead of an extra process which will be enabling the handling of
generated files in PCHs. The flags from the project part are now not
anymore transformed in a command line but they are saved in the container
semantically aware so that they can later be merged. Most of this patch is
simply polishing of other patches.
Task-number: QTCREATORBUG-21346
Task-number: QTCREATORBUG-21380
Task-number: QTCREATORBUG-21382
Task-number: QTCREATORBUG-21383
Task-number: QTCREATORBUG-21693
Task-number: QTCREATORBUG-21778
Change-Id: I9b0c02d8149b554254e819448fbc61eeaa5b7494
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangpchmanager/projectupdater.h')
-rw-r--r-- | src/plugins/clangpchmanager/projectupdater.h | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/plugins/clangpchmanager/projectupdater.h b/src/plugins/clangpchmanager/projectupdater.h index fd4ff95538..896a02def0 100644 --- a/src/plugins/clangpchmanager/projectupdater.h +++ b/src/plugins/clangpchmanager/projectupdater.h @@ -31,6 +31,8 @@ #include <filecontainerv2.h> #include <filepathcachinginterface.h> #include <generatedfiles.h> +#include <includesearchpath.h> +#include <projectpartcontainer.h> #include <projectexplorer/headerpath.h> @@ -46,10 +48,6 @@ class ProjectFile; namespace ClangBackEnd { class ProjectManagementServerInterface; - -namespace V2 { -class ProjectPartContainer; -} } QT_FORWARD_DECLARE_CLASS(QStringList) @@ -64,33 +62,39 @@ class PchManagerClient; class CLANGPCHMANAGER_EXPORT ProjectUpdater { public: + struct SystemAndProjectIncludeSearchPaths + { + ClangBackEnd::IncludeSearchPaths system; + ClangBackEnd::IncludeSearchPaths project; + }; + ProjectUpdater(ClangBackEnd::ProjectManagementServerInterface &server, ClangBackEnd::FilePathCachingInterface &filePathCache); - void updateProjectParts(const std::vector<CppTools::ProjectPart *> &projectParts); + void updateProjectParts(const std::vector<CppTools::ProjectPart *> &projectParts, + Utils::SmallStringVector &&toolChainArguments); void removeProjectParts(const QStringList &projectPartIds); void updateGeneratedFiles(ClangBackEnd::V2::FileContainers &&generatedFiles); void removeGeneratedFiles(ClangBackEnd::FilePaths &&filePaths); -unittest_public: void setExcludedPaths(ClangBackEnd::FilePaths &&excludedPaths); const ClangBackEnd::FilePaths &excludedPaths() const; const ClangBackEnd::GeneratedFiles &generatedFiles() const; HeaderAndSources headerAndSourcesFromProjectPart(CppTools::ProjectPart *projectPart) const; - ClangBackEnd::V2::ProjectPartContainer toProjectPartContainer( + ClangBackEnd::ProjectPartContainer toProjectPartContainer( CppTools::ProjectPart *projectPart) const; - std::vector<ClangBackEnd::V2::ProjectPartContainer> toProjectPartContainers( + ClangBackEnd::ProjectPartContainers toProjectPartContainers( std::vector<CppTools::ProjectPart *> projectParts) const; void addToHeaderAndSources(HeaderAndSources &headerAndSources, const CppTools::ProjectFile &projectFile) const; - static QStringList compilerArguments(CppTools::ProjectPart *projectPart); + static QStringList toolChainArguments(CppTools::ProjectPart *projectPart); static ClangBackEnd::CompilerMacros createCompilerMacros( const ProjectExplorer::Macros &projectMacros); - static Utils::SmallStringVector createIncludeSearchPaths( - const ProjectExplorer::HeaderPaths &projectPartHeaderPaths); + static SystemAndProjectIncludeSearchPaths createIncludeSearchPaths( + const CppTools::ProjectPart &projectPart); static ClangBackEnd::FilePaths createExcludedPaths( const ClangBackEnd::V2::FileContainers &generatedFiles); |