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>
This commit is contained in:
Marco Bubke
2018-12-17 12:06:57 +01:00
parent a78e3e5dd5
commit dd366b68de
114 changed files with 3742 additions and 1787 deletions

View File

@@ -50,9 +50,9 @@ void ClangTool::addFile(std::string &&directory,
std::vector<std::string> &&commandLine)
{
m_fileContents.emplace_back(toNativePath(std::move(directory)),
std::move(fileName),
std::move(content),
std::move(commandLine));
std::move(fileName),
std::move(content),
std::move(commandLine));
const auto &fileContent = m_fileContents.back();
@@ -140,4 +140,13 @@ clang::tooling::ClangTool ClangTool::createTool() const
return tool;
}
clang::tooling::ClangTool ClangTool::createOutputTool() const
{
clang::tooling::ClangTool tool = createTool();
tool.clearArgumentsAdjusters();
return tool;
}
} // namespace ClangBackEnd