aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-01-31 10:16:28 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-02-05 11:36:55 +0000
commitb9d3055e7218e6dc202047c4a341df51c8e8cd67 (patch)
tree46ad419a7bbba9f964a2e04f6e0604ff66fd6ad9 /src/plugins/clangcodemodel
parent69565d6c88ad66e11817bd661c20af8395b6000e (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.cpp16
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp11
-rw-r--r--src/plugins/clangcodemodel/clangutils.h2
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);