CppTools: Classify ambiguous headers depending on other files

This applies for all project managers, except qmake. The qmake project
manager will make use of this in follow up changes.

Before, "foo.h" was always recognized as a CXXHeader. Now, it depends on
the other files. E.g. in a file list {"foo.h", "foo.c"} foo.h is now a
CHeader. In {"foo.h", "foo.c", "bar.cpp"} the file "foo.h" is ambiguous
and we will create two project parts, one where it is a CHeader, the
other where it is a CXXHeader.

Change-Id: I50505163368742584b1380c284d42cbe07cb4fc9
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-11-29 17:32:34 +01:00
parent f54d4fc3db
commit 3a369552c6
12 changed files with 328 additions and 42 deletions

View File

@@ -36,6 +36,7 @@ class CPPTOOLS_EXPORT ProjectFile
public:
enum Kind {
Unclassified,
AmbiguousHeader,
CHeader,
CSource,
CXXHeader,
@@ -49,8 +50,10 @@ public:
};
static Kind classify(const QString &filePath);
static bool isHeader(Kind kind);
static bool isSource(Kind kind);
static bool isHeader(Kind kind);
static bool isAmbiguousHeader(const QString &filePath);
public:
ProjectFile() = default;