ClangTools: use VFSoverlay if the clang tool supports it

check the help output of a clang tool whether virtual file
system overlay is supported. Prepares for the vfso support
of clazy-standalone.

Change-Id: I157c94de1dda41c83945c9bc8a4c2e132b2e6551
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2020-08-25 06:18:26 +02:00
parent 43ee53c233
commit 7bbbdeac52
4 changed files with 33 additions and 24 deletions

View File

@@ -72,21 +72,6 @@ static QStringList clazyChecksArguments(const ClangDiagnosticConfig diagnosticCo
return {};
}
static QStringList mainToolArguments(const QString &mainFilePath, const QString &outputFilePath)
{
return {
"-export-fixes=" + outputFilePath,
QDir::toNativeSeparators(mainFilePath),
};
}
static QString virtualFileSystemOverlay(const QString &overlayFilePath)
{
if (overlayFilePath.isEmpty())
return {};
return "--vfsoverlay=" + overlayFilePath;
}
static QStringList clangArguments(const ClangDiagnosticConfig &diagnosticConfig,
const QStringList &baseOptions)
{
@@ -110,8 +95,7 @@ ClangTidyRunner::ClangTidyRunner(const ClangDiagnosticConfig &config, QObject *p
setExecutable(clangTidyExecutable());
setArgsCreator([this, config](const QStringList &baseOptions) {
return QStringList() << tidyChecksArguments(config)
<< mainToolArguments(fileToAnalyze(), outputFilePath())
<< virtualFileSystemOverlay(m_overlayFilePath)
<< mainToolArguments()
<< "--"
<< clangArguments(config, baseOptions);
});
@@ -124,11 +108,10 @@ ClazyStandaloneRunner::ClazyStandaloneRunner(const ClangDiagnosticConfig &config
setOutputFileFormat(OutputFileFormat::Yaml);
setExecutable(clazyStandaloneExecutable());
setArgsCreator([this, config](const QStringList &baseOptions) {
return QStringList()
<< clazyChecksArguments(config)
<< mainToolArguments(fileToAnalyze(), outputFilePath())
<< "--"
<< clangArguments(config, baseOptions);
return QStringList() << clazyChecksArguments(config)
<< mainToolArguments()
<< "--"
<< clangArguments(config, baseOptions);
});
}