aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangtools/clangtoolrunner.cpp
diff options
context:
space:
mode:
authorJarek Kobus <[email protected]>2023-02-20 20:58:38 +0100
committerJarek Kobus <[email protected]>2023-02-21 07:31:48 +0000
commit69ec9c43618f021a0146a1f23b13f18b827893d1 (patch)
treee47b4648083820eed5819fe7f521f50edd7e0df3 /src/plugins/clangtools/clangtoolrunner.cpp
parentdce702596965735a5bc2bbf3adcf5e1c50f7b55f (diff)
TaskTree: Add TreeStorage::operator*()
Reuse it in some places. Change-Id: I335f38fa0384ea17bd8e981d743f835c3f05b731 Reviewed-by: <[email protected]> Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/clangtools/clangtoolrunner.cpp')
-rw-r--r--src/plugins/clangtools/clangtoolrunner.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp
index f5c955c50e7..90bfe51ca30 100644
--- a/src/plugins/clangtools/clangtoolrunner.cpp
+++ b/src/plugins/clangtools/clangtoolrunner.cpp
@@ -111,11 +111,10 @@ TaskItem clangToolTask(const AnalyzeInputData &input,
};
const TreeStorage<ClangToolStorage> storage;
- const auto mainToolArguments = [=](const ClangToolStorage *data)
- {
+ const auto mainToolArguments = [=](const ClangToolStorage &data) {
QStringList result;
- result << "-export-fixes=" + data->outputFilePath.nativePath();
- if (!input.overlayFilePath.isEmpty() && isVFSOverlaySupported(data->executable))
+ result << "-export-fixes=" + data.outputFilePath.nativePath();
+ if (!input.overlayFilePath.isEmpty() && isVFSOverlaySupported(data.executable))
result << "--vfsoverlay=" + input.overlayFilePath;
result << input.unit.file.nativePath();
return result;
@@ -147,13 +146,13 @@ TaskItem clangToolTask(const AnalyzeInputData &input,
process.setLowPriority();
process.setWorkingDirectory(input.outputDirPath); // Current clang-cl puts log file into working dir.
- const ClangToolStorage *data = storage.activeStorage();
+ const ClangToolStorage &data = *storage;
const QStringList args = checksArguments(input.tool, input.config)
+ mainToolArguments(data)
+ QStringList{"--"}
+ clangArguments(input.config, input.unit.arguments);
- const CommandLine commandLine = {data->executable, args};
+ const CommandLine commandLine = {data.executable, args};
qCDebug(LOG).noquote() << "Starting" << commandLine.toUserOutput();
process.setCommand(commandLine);
@@ -162,8 +161,7 @@ TaskItem clangToolTask(const AnalyzeInputData &input,
qCDebug(LOG).noquote() << "Output:\n" << process.cleanedStdOut();
if (!outputHandler)
return;
- const ClangToolStorage *data = storage.activeStorage();
- outputHandler({true, input.unit.file, data->outputFilePath, input.tool});
+ outputHandler({true, input.unit.file, storage->outputFilePath, input.tool});
};
const auto onProcessError = [=](const QtcProcess &process) {
if (!outputHandler)
@@ -172,15 +170,15 @@ TaskItem clangToolTask(const AnalyzeInputData &input,
.arg(process.commandLine().toUserOutput())
.arg(process.error())
.arg(process.cleanedStdOut());
- const ClangToolStorage *data = storage.activeStorage();
+ const ClangToolStorage &data = *storage;
QString message;
if (process.result() == ProcessResult::StartFailed)
- message = Tr::tr("An error occurred with the %1 process.").arg(data->name);
+ message = Tr::tr("An error occurred with the %1 process.").arg(data.name);
else if (process.result() == ProcessResult::FinishedWithError)
- message = Tr::tr("%1 finished with exit code: %2.").arg(data->name).arg(process.exitCode());
+ message = Tr::tr("%1 finished with exit code: %2.").arg(data.name).arg(process.exitCode());
else
- message = Tr::tr("%1 crashed.").arg(data->name);
- outputHandler({false, input.unit.file, data->outputFilePath, input.tool, message, details});
+ message = Tr::tr("%1 crashed.").arg(data.name);
+ outputHandler({false, input.unit.file, data.outputFilePath, input.tool, message, details});
};
const Group group {