diff options
author | Jarek Kobus <[email protected]> | 2024-01-12 22:33:16 +0100 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2024-01-15 14:16:18 +0000 |
commit | 89e446fb4dd9fad8d10699ce4d22cbcbf92b16de (patch) | |
tree | 28fc15ff9c8cf174b3c78013f8ba0576cc8f3b15 | |
parent | 27471f6c550d1274f5a7cf6c7072efc10172171c (diff) |
ClangTool: Pass AnalyzeUnit to clang setup handler
Change-Id: I4cfbe5c241fcf8d42e5ad597db1dd84bff439ec4
Reviewed-by: <[email protected]>
Reviewed-by: Christian Kandeler <[email protected]>
-rw-r--r-- | src/plugins/clangtools/clangtool.cpp | 6 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolrunner.cpp | 2 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolrunner.h | 2 | ||||
-rw-r--r-- | src/plugins/clangtools/documentclangtoolrunner.cpp | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/clangtools/clangtool.cpp b/src/plugins/clangtools/clangtool.cpp index 448f8fbfdfe..c889bd8c34d 100644 --- a/src/plugins/clangtools/clangtool.cpp +++ b/src/plugins/clangtools/clangtool.cpp @@ -762,14 +762,12 @@ Group ClangTool::runRecipe(const RunSettings &runSettings, if (!diagnosticConfig.isEnabled(tool) && !runSettings.hasConfigFileForSourceFile(unit.file)) continue; - const auto setupHandler = [this, unit, tool] { + const auto setupHandler = [this, tool](const AnalyzeUnit &unit) { const QString filePath = unit.file.toUserOutput(); m_runControl->postMessage(Tr::tr("Analyzing \"%1\" [%2].") .arg(filePath, clangToolName(tool)), StdOutFormat); return true; }; - const AnalyzeInputData input{tool, runSettings, diagnosticConfig, tempDir->path(), - environment, unit}; const auto outputHandler = [this, runSettings](const AnalyzeOutputData &output) { if (!output.success) { qCDebug(LOG).noquote() << "Clang tool task finished with an error:" @@ -799,6 +797,8 @@ Group ClangTool::runRecipe(const RunSettings &runSettings, } updateForCurrentState(); }; + const AnalyzeInputData input{tool, runSettings, diagnosticConfig, tempDir->path(), + environment, unit}; tasks.append(clangToolTask(input, setupHandler, outputHandler)); } taskTree.setRecipe(tasks); diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp index dda4c80b4a4..3d415d862c3 100644 --- a/src/plugins/clangtools/clangtoolrunner.cpp +++ b/src/plugins/clangtools/clangtoolrunner.cpp @@ -131,7 +131,7 @@ GroupItem clangToolTask(const AnalyzeInputData &input, }; const auto onSetup = [storage, input, setupHandler] { - if (setupHandler && !setupHandler()) + if (setupHandler && !setupHandler(input.unit)) return SetupResult::StopWithError; ClangToolStorage *data = storage.activeStorage(); diff --git a/src/plugins/clangtools/clangtoolrunner.h b/src/plugins/clangtools/clangtoolrunner.h index ab4039c92c8..cf77107e71d 100644 --- a/src/plugins/clangtools/clangtoolrunner.h +++ b/src/plugins/clangtools/clangtoolrunner.h @@ -51,7 +51,7 @@ struct AnalyzeOutputData QString errorDetails = {}; }; -using AnalyzeSetupHandler = std::function<bool()>; +using AnalyzeSetupHandler = std::function<bool(const AnalyzeUnit &)>; using AnalyzeOutputHandler = std::function<void(const AnalyzeOutputData &)>; Tasking::GroupItem clangToolTask(const AnalyzeInputData &input, diff --git a/src/plugins/clangtools/documentclangtoolrunner.cpp b/src/plugins/clangtools/documentclangtoolrunner.cpp index c5dd3c8db6a..eee5206f46f 100644 --- a/src/plugins/clangtools/documentclangtoolrunner.cpp +++ b/src/plugins/clangtools/documentclangtoolrunner.cpp @@ -212,7 +212,7 @@ void DocumentClangToolRunner::run() unit, vfso().overlayFilePath().toString(), diagnosticFilter}; - const auto setupHandler = [this, executable] { + const auto setupHandler = [this, executable](const AnalyzeUnit &) { return !m_document->isModified() || isVFSOverlaySupported(executable); }; const auto outputHandler = [this](const AnalyzeOutputData &output) { onDone(output); }; |