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)
|
if (m_diagnosticConfig.clangTidyMode() != CppTools::ClangDiagnosticConfig::TidyMode::Disabled)
|
||||||
creators << [this]() { return createRunner<ClangTidyRunner>(); };
|
creators << [this]() { return createRunner<ClangTidyRunner>(); };
|
||||||
|
|
||||||
if (!m_diagnosticConfig.clazyChecks().isEmpty())
|
if (!m_diagnosticConfig.clazyChecks().isEmpty()) {
|
||||||
creators << [this]() { return createRunner<ClazyPluginRunner>(); };
|
if (!qEnvironmentVariable("QTC_USE_CLAZY_STANDALONE_PATH").isEmpty())
|
||||||
|
creators << [this]() { return createRunner<ClazyStandaloneRunner>(); };
|
||||||
|
else
|
||||||
|
creators << [this]() { return createRunner<ClazyPluginRunner>(); };
|
||||||
|
}
|
||||||
|
|
||||||
return creators;
|
return creators;
|
||||||
}
|
}
|
||||||
|
@@ -86,6 +86,14 @@ static QStringList tidyChecksArguments(const ClangDiagnosticConfig diagnosticCon
|
|||||||
return {};
|
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)
|
static QStringList mainToolArguments(const QString &mainFilePath, const QString &outputFilePath)
|
||||||
{
|
{
|
||||||
return {
|
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)
|
ClazyPluginRunner::ClazyPluginRunner(const ClangDiagnosticConfig &config, QObject *parent)
|
||||||
: ClangToolRunner(parent)
|
: ClangToolRunner(parent)
|
||||||
{
|
{
|
||||||
|
@@ -40,6 +40,14 @@ public:
|
|||||||
ClangTidyRunner(const CppTools::ClangDiagnosticConfig &config, QObject *parent = nullptr);
|
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
|
class ClazyPluginRunner final : public ClangToolRunner
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Reference in New Issue
Block a user