forked from qt-creator/qt-creator
ClangTools: Allow invoking clazy-standalone instead of clang
...this is for testing and debugging purposes so far. Eventually, we want to switch to clazy-standalone. But as of now there is no released clazy version supporting the required "-export-fixes=" option. It's in clazy's master branch only. Change-Id: If09941dc387658bbc17646a9140f4ee8fad4d6b3 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -50,8 +50,12 @@ QList<RunnerCreator> ClangTidyClazyRunWorker::runnerCreators()
|
||||
if (m_diagnosticConfig.clangTidyMode() != CppTools::ClangDiagnosticConfig::TidyMode::Disabled)
|
||||
creators << [this]() { return createRunner<ClangTidyRunner>(); };
|
||||
|
||||
if (!m_diagnosticConfig.clazyChecks().isEmpty())
|
||||
if (!m_diagnosticConfig.clazyChecks().isEmpty()) {
|
||||
if (!qEnvironmentVariable("QTC_USE_CLAZY_STANDALONE_PATH").isEmpty())
|
||||
creators << [this]() { return createRunner<ClazyStandaloneRunner>(); };
|
||||
else
|
||||
creators << [this]() { return createRunner<ClazyPluginRunner>(); };
|
||||
}
|
||||
|
||||
return creators;
|
||||
}
|
||||
|
@@ -86,6 +86,14 @@ static QStringList tidyChecksArguments(const ClangDiagnosticConfig diagnosticCon
|
||||
return {};
|
||||
}
|
||||
|
||||
static QStringList clazyChecksArguments(const ClangDiagnosticConfig diagnosticConfig)
|
||||
{
|
||||
const QString clazyChecks = diagnosticConfig.clazyChecks();
|
||||
if (!clazyChecks.isEmpty())
|
||||
return {"-checks=" + diagnosticConfig.clazyChecks()};
|
||||
return {};
|
||||
}
|
||||
|
||||
static QStringList mainToolArguments(const QString &mainFilePath, const QString &outputFilePath)
|
||||
{
|
||||
return {
|
||||
@@ -123,6 +131,21 @@ ClangTidyRunner::ClangTidyRunner(const ClangDiagnosticConfig &config, QObject *p
|
||||
});
|
||||
}
|
||||
|
||||
ClazyStandaloneRunner::ClazyStandaloneRunner(const ClangDiagnosticConfig &config, QObject *parent)
|
||||
: ClangToolRunner(parent)
|
||||
{
|
||||
setName(tr("Clazy"));
|
||||
setOutputFileFormat(OutputFileFormat::Yaml);
|
||||
setExecutable(qEnvironmentVariable("QTC_USE_CLAZY_STANDALONE_PATH"));
|
||||
setArgsCreator([this, config](const QStringList &baseOptions) {
|
||||
return QStringList()
|
||||
<< clazyChecksArguments(config)
|
||||
<< mainToolArguments(filePath(), m_logFile)
|
||||
<< "--"
|
||||
<< clangArguments(config, baseOptions);
|
||||
});
|
||||
}
|
||||
|
||||
ClazyPluginRunner::ClazyPluginRunner(const ClangDiagnosticConfig &config, QObject *parent)
|
||||
: ClangToolRunner(parent)
|
||||
{
|
||||
|
@@ -40,6 +40,14 @@ public:
|
||||
ClangTidyRunner(const CppTools::ClangDiagnosticConfig &config, QObject *parent = nullptr);
|
||||
};
|
||||
|
||||
class ClazyStandaloneRunner final : public ClangToolRunner
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ClazyStandaloneRunner(const CppTools::ClangDiagnosticConfig &config, QObject *parent = nullptr);
|
||||
};
|
||||
|
||||
class ClazyPluginRunner final : public ClangToolRunner
|
||||
{
|
||||
Q_OBJECT
|
||||
|
Reference in New Issue
Block a user