diff options
| author | Nikolai Kosjar <[email protected]> | 2015-11-10 16:54:53 +0100 |
|---|---|---|
| committer | Nikolai Kosjar <[email protected]> | 2015-11-11 15:14:56 +0000 |
| commit | d8f119c8a222188556bf63e7adbef24c9ca3fe7f (patch) | |
| tree | f6d606959297dc186910ad040f3a021dff8c20b7 /src/plugins/cpptools/cppcodemodelsettings.cpp | |
| parent | 72785e3a11bea85f09a76084813c890f5d26f9d0 (diff) | |
Clang: Allow to provide extra command line options
This can be used to experiment with clang options that e.g. affect
diagnostics.
Changes take effect on editor re-open.
Change-Id: Ie46d0ff085a3700a748dbcf4b94b93b0bf9c4642
Reviewed-by: Leena Miettinen <[email protected]>
Reviewed-by: Eike Ziller <[email protected]>
Diffstat (limited to 'src/plugins/cpptools/cppcodemodelsettings.cpp')
| -rw-r--r-- | src/plugins/cpptools/cppcodemodelsettings.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcodemodelsettings.cpp b/src/plugins/cpptools/cppcodemodelsettings.cpp index 35555868a13..5d35cf7d3e8 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.cpp +++ b/src/plugins/cpptools/cppcodemodelsettings.cpp @@ -36,6 +36,7 @@ using namespace CppTools; static QLatin1String cppHeaderMimeType(Constants::CPP_HEADER_MIMETYPE); static QLatin1String cHeaderMimeType(Constants::C_HEADER_MIMETYPE); +static QLatin1String clangExtraOptionsKey(Constants::CPPTOOLS_EXTRA_CLANG_OPTIONS); void CppCodeModelSettings::fromSettings(QSettings *s) { @@ -45,6 +46,8 @@ void CppCodeModelSettings::fromSettings(QSettings *s) foreach (const QString &mimeType, supportedMimeTypes()) setIdForMimeType(supporters, mimeType); + setExtraClangOptions(s->value(clangExtraOptionsKey, defaultExtraClangOptions()).toStringList()); + QVariant v = s->value(QLatin1String(Constants::CPPTOOLS_MODEL_MANAGER_PCH_USAGE), PchUse_None); setPCHUsage(static_cast<PCHUsage>(v.toInt())); s->endGroup(); @@ -59,6 +62,7 @@ void CppCodeModelSettings::toSettings(QSettings *s) foreach (const QString &mimeType, m_modelManagerSupportByMimeType.keys()) var[mimeType] = m_modelManagerSupportByMimeType[mimeType]; s->setValue(QLatin1String(Constants::CPPTOOLS_MODEL_MANAGER_SUPPORTERS_KEY), QVariant(var)); + s->setValue(clangExtraOptionsKey, extraClangOptions()); s->setValue(QLatin1String(Constants::CPPTOOLS_MODEL_MANAGER_PCH_USAGE), pchUsage()); s->endGroup(); @@ -116,6 +120,33 @@ bool CppCodeModelSettings::hasModelManagerSupportIdForMimeType(const QString &mi return m_modelManagerSupportByMimeType.value(mimeType) == id; } +QStringList CppCodeModelSettings::defaultExtraClangOptions() +{ + return { + QStringLiteral("-Weverything"), + QStringLiteral("-Wno-c++98-compat"), + QStringLiteral("-Wno-c++98-compat-pedantic"), + QStringLiteral("-Wno-unused-macros"), + QStringLiteral("-Wno-newline-eof"), + QStringLiteral("-Wno-exit-time-destructors"), + QStringLiteral("-Wno-global-constructors"), + QStringLiteral("-Wno-gnu-zero-variadic-macro-arguments"), + QStringLiteral("-Wno-documentation"), + QStringLiteral("-Wno-shadow"), + QStringLiteral("-Wno-missing-prototypes"), // Not optimal for C projects. + }; +} + +QStringList CppCodeModelSettings::extraClangOptions() const +{ + return m_extraClangOptions; +} + +void CppCodeModelSettings::setExtraClangOptions(const QStringList &extraClangOptions) +{ + m_extraClangOptions = extraClangOptions; +} + void CppCodeModelSettings::setIdForMimeType(const QVariant &var, const QString &mimeType) { QHash<QString, QVariant> mimeToId = var.toHash(); |
