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

@@ -27,7 +27,7 @@
#include <projectparts.h>
#include <projectpartcontainerv2.h>
#include <projectpartcontainer.h>
namespace {
@@ -35,7 +35,7 @@ using testing::ElementsAre;
using testing::UnorderedElementsAre;
using testing::IsEmpty;
using ClangBackEnd::V2::ProjectPartContainer;
using ClangBackEnd::ProjectPartContainer;
using ClangBackEnd::FilePathId;
class ProjectParts : public testing::Test
@@ -47,24 +47,39 @@ protected:
FilePathId firstSource{11};
FilePathId secondSource{12};
FilePathId thirdSource{13};
ProjectPartContainer projectPartContainer1{"id",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{"/includes"},
{firstHeader, secondHeader},
{firstSource, secondSource}};
ProjectPartContainer updatedProjectPartContainer1{"id",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{"/includes"},
{firstHeader, secondHeader},
{firstSource, secondSource, thirdSource}};
ProjectPartContainer projectPartContainer2{"id2",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{"/includes"},
{firstHeader, secondHeader},
{firstSource, secondSource}};
ProjectPartContainer projectPartContainer1{
"id",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{{"/includes", 1, ClangBackEnd::IncludeSearchPathType::BuiltIn}},
{{"/project/includes", 1, ClangBackEnd::IncludeSearchPathType::User}},
{firstHeader, secondHeader},
{firstSource, secondSource},
Utils::Language::C,
Utils::LanguageVersion::C11,
Utils::LanguageExtension::All};
ProjectPartContainer updatedProjectPartContainer1{
"id",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{{"/includes", 1, ClangBackEnd::IncludeSearchPathType::BuiltIn}},
{{"/project/includes", 1, ClangBackEnd::IncludeSearchPathType::User}},
{firstHeader, secondHeader},
{firstSource, secondSource, thirdSource},
Utils::Language::C,
Utils::LanguageVersion::C11,
Utils::LanguageExtension::All};
ProjectPartContainer projectPartContainer2{
"id2",
{"-DUNIX", "-O2"},
{{"DEFINE", "1", 1}},
{{"/includes", 1, ClangBackEnd::IncludeSearchPathType::BuiltIn}},
{{"/project/includes", 1, ClangBackEnd::IncludeSearchPathType::User}},
{firstHeader, secondHeader},
{firstSource, secondSource},
Utils::Language::C,
Utils::LanguageVersion::C11,
Utils::LanguageExtension::All};
};
TEST_F(ProjectParts, GetNoProjectPartsForAddingEmptyProjectParts)