Clang: Add default diagnostic configuration for Clazy

... and Clang-Tidy + Clazy.

Use stable 'level0' checks.

Change-Id: Icdcbb8807f7925bf93f8b4e11a00c2710d6693cd
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-05-25 15:30:56 +02:00
parent 6575cfc674
commit 840ab99115
2 changed files with 51 additions and 16 deletions

View File

@@ -61,6 +61,19 @@ static void addConfigForPedanticWarnings(ClangDiagnosticConfigsModel &model)
model.appendOrUpdate(config);
}
constexpr const char *DEFAULT_TIDY_CHECKS = "-*,"
"bugprone-*,"
"cppcoreguidelines-*,"
"misc-*,"
"modernize-*,"
"performance-*,"
"readability-*,"
"-cppcoreguidelines-owning-memory,"
"-readability-braces-around-statements,"
"-readability-implicit-bool-conversion,"
"-readability-named-parameter";
constexpr const char *DEFAULT_CLAZY_CHECKS = "level0";
static void addConfigForAlmostEveryWarning(ClangDiagnosticConfigsModel &model)
{
ClangDiagnosticConfig config;
@@ -95,21 +108,9 @@ static void addConfigForTidy(ClangDiagnosticConfigsModel &model)
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
"Clang-Tidy thorough checks"));
config.setIsReadOnly(true);
config.setClangOptions(QStringList{
QStringLiteral("-w"),
});
config.setClangOptions(QStringList{QStringLiteral("-w")});
config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::ChecksPrefixList);
config.setClangTidyChecks("-*,"
"bugprone-*,"
"cppcoreguidelines-*,"
"misc-*,"
"modernize-*,"
"performance-*,"
"readability-*,"
"-cppcoreguidelines-owning-memory,"
"-readability-braces-around-statements,"
"-readability-implicit-bool-conversion,"
"-readability-named-parameter");
config.setClangTidyChecks(QString::fromUtf8(DEFAULT_TIDY_CHECKS));
model.appendOrUpdate(config);
}
@@ -131,6 +132,35 @@ static void addConfigForClangAnalyze(ClangDiagnosticConfigsModel &model)
model.appendOrUpdate(config);
}
static void addConfigForClazy(ClangDiagnosticConfigsModel &model)
{
ClangDiagnosticConfig config;
config.setId("Builtin.Clazy");
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
"Clazy level0 checks"));
config.setIsReadOnly(true);
config.setClangOptions(QStringList{QStringLiteral("-w")});
config.setClazyChecks(QString::fromUtf8(DEFAULT_CLAZY_CHECKS));
model.appendOrUpdate(config);
}
static void addConfigForTidyAndClazy(ClangDiagnosticConfigsModel &model)
{
ClangDiagnosticConfig config;
config.setId("Builtin.TidyAndClazy");
config.setDisplayName(QCoreApplication::translate("ClangDiagnosticConfigsModel",
"Clang-Tidy and Clazy preselected checks"));
config.setIsReadOnly(true);
config.setClangOptions(QStringList{QStringLiteral("-w")});
config.setClangTidyMode(ClangDiagnosticConfig::TidyMode::ChecksPrefixList);
config.setClangTidyChecks(QString::fromUtf8(DEFAULT_TIDY_CHECKS));
config.setClazyChecks(QString::fromUtf8(DEFAULT_CLAZY_CHECKS));
model.appendOrUpdate(config);
}
static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model)
{
addConfigForPedanticWarnings(model);
@@ -138,6 +168,8 @@ static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model)
addConfigForAlmostEveryWarning(model);
addConfigForTidy(model);
addConfigForClangAnalyze(model);
addConfigForClazy(model);
addConfigForTidyAndClazy(model);
}
ClangDiagnosticConfigsModel::ClangDiagnosticConfigsModel(const ClangDiagnosticConfigs &customConfigs)