diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-01-31 10:16:28 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-02-05 11:36:55 +0000 |
commit | b9d3055e7218e6dc202047c4a341df51c8e8cd67 (patch) | |
tree | 46ad419a7bbba9f964a2e04f6e0604ff66fd6ad9 /src/plugins/clangcodemodel | |
parent | 69565d6c88ad66e11817bd661c20af8395b6000e (diff) |
Clang: Allow to forward warnings flags from build system
Change-Id: I47ebb1ce4f3b5544408eb1d0f891ed5090394282
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel')
-rw-r--r-- | src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp | 16 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/clangutils.cpp | 11 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/clangutils.h | 2 |
3 files changed, 22 insertions, 7 deletions
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index 40d7e4e63f..aaca6380d2 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -452,6 +452,10 @@ public: const QStringList &options() const { return m_options; } const Core::Id &diagnosticConfigId() const { return m_diagnosticConfigId; } + CppTools::UseBuildSystemWarnings useBuildSystemWarnings() const + { + return m_useBuildSystemWarnings; + } private: void addLanguageOptions() @@ -491,6 +495,9 @@ private: void addDiagnosticOptionsForConfig(const CppTools::ClangDiagnosticConfig &diagnosticConfig) { m_diagnosticConfigId = diagnosticConfig.id(); + m_useBuildSystemWarnings = diagnosticConfig.useBuildSystemWarnings() + ? CppTools::UseBuildSystemWarnings::Yes + : CppTools::UseBuildSystemWarnings::No; m_options.append(diagnosticConfig.clangOptions()); addClangTidyOptions(diagnosticConfig); @@ -565,6 +572,7 @@ private: const CppTools::ProjectPart &m_projectPart; Core::Id m_diagnosticConfigId; + CppTools::UseBuildSystemWarnings m_useBuildSystemWarnings = CppTools::UseBuildSystemWarnings::No; CppTools::CompilerOptionsBuilder m_builder; QStringList m_options; }; @@ -586,13 +594,13 @@ void ClangEditorDocumentProcessor::updateBackendDocument(CppTools::ProjectPart & return; } - const QStringList projectPartOptions = ClangCodeModel::Utils::createClangOptions( - projectPart, - CppTools::ProjectFile::Unsupported); // No language option as FileOptionsBuilder adds it. - const FileOptionsBuilder fileOptions(filePath(), projectPart); m_diagnosticConfigId = fileOptions.diagnosticConfigId(); + const QStringList projectPartOptions = ClangCodeModel::Utils::createClangOptions( + projectPart, fileOptions.useBuildSystemWarnings(), + CppTools::ProjectFile::Unsupported); // No language option as FileOptionsBuilder adds it. + const QStringList compilationArguments = projectPartOptions + fileOptions.options(); m_communicator.documentsOpened( diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 4741f1ef96..8a27a115a2 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -66,11 +66,13 @@ namespace Utils { class LibClangOptionsBuilder final : public CompilerOptionsBuilder { public: - LibClangOptionsBuilder(const ProjectPart &projectPart) + LibClangOptionsBuilder(const ProjectPart &projectPart, + UseBuildSystemWarnings useBuildSystemWarnings) : CompilerOptionsBuilder(projectPart, UseSystemHeader::No, UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, + useBuildSystemWarnings, QString(CLANG_VERSION), QString(CLANG_RESOURCE_DIR)) { @@ -101,9 +103,12 @@ private: } }; -QStringList createClangOptions(const ProjectPart &projectPart, ProjectFile::Kind fileKind) +QStringList createClangOptions(const ProjectPart &projectPart, + UseBuildSystemWarnings useBuildSystemWarnings, + ProjectFile::Kind fileKind) { - return LibClangOptionsBuilder(projectPart).build(fileKind, UsePrecompiledHeaders::No); + return LibClangOptionsBuilder(projectPart, useBuildSystemWarnings) + .build(fileKind, UsePrecompiledHeaders::No); } ProjectPart::Ptr projectPartForFile(const QString &filePath) diff --git a/src/plugins/clangcodemodel/clangutils.h b/src/plugins/clangcodemodel/clangutils.h index 0a7a1127bf..b7f705b57b 100644 --- a/src/plugins/clangcodemodel/clangutils.h +++ b/src/plugins/clangcodemodel/clangutils.h @@ -28,6 +28,7 @@ #include <cplusplus/Icons.h> #include <cpptools/projectpart.h> +#include <cpptools/compileroptionsbuilder.h> #include <QTextCursor> @@ -53,6 +54,7 @@ CppTools::CppEditorDocumentHandle *cppDocument(const QString &filePath); void setLastSentDocumentRevision(const QString &filePath, uint revision); QStringList createClangOptions(const CppTools::ProjectPart &projectPart, + CppTools::UseBuildSystemWarnings useBuildSystemWarnings, CppTools::ProjectFile::Kind fileKind); CppTools::ProjectPart::Ptr projectPartForFile(const QString &filePath); |