aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangpchmanager/projectupdater.h
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2018-12-17 12:06:57 +0100
committerMarco Bubke <marco.bubke@qt.io>2019-01-21 15:27:10 +0000
commitdd366b68dea11eebb0b1c53f3cff1902ce2bfefa (patch)
treeb919ffd70c5e3677244d2475381f6fb8defdd3eb /src/plugins/clangpchmanager/projectupdater.h
parenta78e3e5dd5f882a28a3152f2e63ae986a9f2a8c5 (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.h26
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);