From b36e9d0e95f53fdebcf63f79060c0ebff42d0bf2 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 22 May 2019 15:08:55 +0200 Subject: ClangPchManager: Improve handling of no include in project PCH We were doing simply nothing but we should call PchCreator::doInMainThreadAfterFinished(). Change-Id: Ia21d2cf4af53121d9e401f6e9a5b432a4daed00f Reviewed-by: Tim Jenssen --- src/tools/clangpchmanagerbackend/source/pchcreator.cpp | 5 ++++- src/tools/clangpchmanagerbackend/source/pchtaskqueue.cpp | 10 ++-------- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'src/tools') diff --git a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp index 9416e310aa..cd7b492868 100644 --- a/src/tools/clangpchmanagerbackend/source/pchcreator.cpp +++ b/src/tools/clangpchmanagerbackend/source/pchcreator.cpp @@ -113,8 +113,11 @@ Utils::SmallStringVector PchCreator::generateClangCompilerArguments(const PchTas void PchCreator::generatePch(PchTask &&pchTask) { m_projectPartPch.projectPartId = pchTask.projectPartId(); - m_projectPartPch.lastModified = QDateTime::currentSecsSinceEpoch(); + + if (pchTask.includes.empty()) + return; + auto content = generatePchIncludeFileContent(pchTask.includes); auto pchOutputPath = generatePchFilePath(); diff --git a/src/tools/clangpchmanagerbackend/source/pchtaskqueue.cpp b/src/tools/clangpchmanagerbackend/source/pchtaskqueue.cpp index 1edbe15806..b9d6a48fe3 100644 --- a/src/tools/clangpchmanagerbackend/source/pchtaskqueue.cpp +++ b/src/tools/clangpchmanagerbackend/source/pchtaskqueue.cpp @@ -33,6 +33,8 @@ #include +#include + namespace ClangBackEnd { void PchTaskQueue::addPchTasks(PchTasks &&newPchTasks, PchTasks &destination) @@ -145,7 +147,6 @@ std::vector PchTaskQueue::createProjectTasks(PchTasks &&pchT auto convert = [this](auto &&pchTask) { return [pchTask = std::move(pchTask), this](PchCreatorInterface &pchCreator) mutable { const auto projectPartId = pchTask.projectPartId(); - if (pchTask.includes.size()) { pchTask.systemPchPath = m_precompiledHeaderStorage.fetchSystemPrecompiledHeaderPath( projectPartId); pchTask.preIncludeSearchPath = m_environment.preIncludeSearchPath(); @@ -157,9 +158,6 @@ std::vector PchTaskQueue::createProjectTasks(PchTasks &&pchT m_precompiledHeaderStorage.insertProjectPrecompiledHeader( projectPartId, projectPartPch.pchPath, projectPartPch.lastModified); } - } else { - m_precompiledHeaderStorage.deleteProjectPrecompiledHeader(projectPartId); - } }; }; @@ -179,7 +177,6 @@ std::vector PchTaskQueue::createSystemTasks(PchTasks &&pchTa auto convert = [this](auto &&pchTask) { return [pchTask = std::move(pchTask), this](PchCreatorInterface &pchCreator) mutable { const auto projectPartIds = pchTask.projectPartIds; - if (pchTask.includes.size()) { pchTask.preIncludeSearchPath = m_environment.preIncludeSearchPath(); pchCreator.generatePch(std::move(pchTask)); const auto &projectPartPch = pchCreator.projectPartPch(); @@ -189,9 +186,6 @@ std::vector PchTaskQueue::createSystemTasks(PchTasks &&pchTa m_precompiledHeaderStorage.insertSystemPrecompiledHeaders( projectPartIds, projectPartPch.pchPath, projectPartPch.lastModified); } - } else { - m_precompiledHeaderStorage.deleteSystemPrecompiledHeaders(projectPartIds); - } }; }; -- cgit v1.2.3