From dd366b68dea11eebb0b1c53f3cff1902ce2bfefa Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 17 Dec 2018 12:06:57 +0100 Subject: 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 --- .../source/symbolindexing.h | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/tools/clangrefactoringbackend/source/symbolindexing.h') diff --git a/src/tools/clangrefactoringbackend/source/symbolindexing.h b/src/tools/clangrefactoringbackend/source/symbolindexing.h index 10e1be0358..6f52f863d8 100644 --- a/src/tools/clangrefactoringbackend/source/symbolindexing.h +++ b/src/tools/clangrefactoringbackend/source/symbolindexing.h @@ -81,12 +81,16 @@ public: FilePathCachingInterface &filePathCache, const GeneratedFiles &generatedFiles, ProgressCounter::SetProgressCallback &&setProgressCallback) - : m_filePathCache(filePathCache), - m_usedMacroAndSourceStorage(database), - m_symbolStorage(database), - m_collectorManger(generatedFiles, database), - m_progressCounter(std::move(setProgressCallback)), - m_indexerScheduler(m_collectorManger, m_indexerQueue, m_progressCounter, std::thread::hardware_concurrency()) + : m_filePathCache(filePathCache) + , m_buildDependencyStorage(database) + , m_symbolStorage(database) + , m_collectorManger(generatedFiles, database) + , m_progressCounter(std::move(setProgressCallback)) + , m_indexerScheduler(m_collectorManger, + m_indexerQueue, + m_progressCounter, + std::thread::hardware_concurrency(), + CallDoInMainThreadAfterFinished::Yes) { } @@ -109,12 +113,12 @@ public: } } - void updateProjectParts(V2::ProjectPartContainers &&projectParts) override; + void updateProjectParts(ProjectPartContainers &&projectParts) override; private: using SymbolIndexerTaskScheduler = TaskScheduler; FilePathCachingInterface &m_filePathCache; - BuildDependenciesStorage m_usedMacroAndSourceStorage; + BuildDependenciesStorage m_buildDependencyStorage; SymbolStorage m_symbolStorage; ClangPathWatcher m_sourceWatcher{m_filePathCache}; FileStatusCache m_fileStatusCache{m_filePathCache}; @@ -124,7 +128,7 @@ private: SymbolIndexerTaskQueue m_indexerQueue{m_indexerScheduler, m_progressCounter}; SymbolIndexer m_indexer{m_indexerQueue, m_symbolStorage, - m_usedMacroAndSourceStorage, + m_buildDependencyStorage, m_sourceWatcher, m_filePathCache, m_fileStatusCache, -- cgit v1.2.1