diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2018-09-25 09:41:32 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2018-09-26 10:45:41 +0000 |
commit | aa290912b832da3d4fd57e762902d3c24614d1a6 (patch) | |
tree | 52e211dc06503c386ad19e8bf4b038c8b5a8323b /src/plugins/clangcodemodel/clangutils.cpp | |
parent | 25ea9a4d2465a1ca7d1375f8937fd36d247f41e4 (diff) |
Clang: Remove project tracking on clangbackend side
...as it is not needed. Just provide the compilation arguments as part
of the Document.
As a side effect, re-initializing the backend after a crash is cheaper
and will not freeze the UI anymore (referenced bug).
Task-number: QTCREATORBUG-21097
Change-Id: I866e25ef1fd5e4d318df16612a7564469e6baa11
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel/clangutils.cpp')
-rw-r--r-- | src/plugins/clangcodemodel/clangutils.cpp | 32 |
1 files changed, 3 insertions, 29 deletions
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 2150521e86..2d74d7f4ef 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -63,26 +63,6 @@ using namespace CppTools; namespace ClangCodeModel { namespace Utils { -/** - * @brief Creates list of message-line arguments required for correct parsing - * @param pPart Null if file isn't part of any project - * @param fileName Path to file, non-empty - */ -QStringList createClangOptions(const ProjectPart::Ptr &pPart, const QString &fileName) -{ - ProjectFile::Kind fileKind = ProjectFile::Unclassified; - if (!pPart.isNull()) - foreach (const ProjectFile &file, pPart->files) - if (file.path == fileName) { - fileKind = file.kind; - break; - } - if (fileKind == ProjectFile::Unclassified) - fileKind = ProjectFile::classify(fileName); - - return createClangOptions(pPart, fileKind); -} - class LibClangOptionsBuilder final : public CompilerOptionsBuilder { public: @@ -122,16 +102,10 @@ private: } }; -/** - * @brief Creates list of message-line arguments required for correct parsing - * @param pPart Null if file isn't part of any project - * @param fileKind Determines language and source/header state - */ -QStringList createClangOptions(const ProjectPart::Ptr &pPart, ProjectFile::Kind fileKind) +QStringList createClangOptions(const ProjectPart &projectPart, ProjectFile::Kind fileKind) { - if (!pPart) - return QStringList(); - return LibClangOptionsBuilder(*pPart).build(fileKind, CompilerOptionsBuilder::PchUsage::None); + return LibClangOptionsBuilder(projectPart) + .build(fileKind, CompilerOptionsBuilder::PchUsage::None); } ProjectPart::Ptr projectPartForFile(const QString &filePath) |