diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 11e6429d967..e6ee235e62c 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -8,6 +8,7 @@ #include "cmakebuildstep.h" #include "cmakebuildtarget.h" #include "cmakekitaspect.h" +#include "cmakeprocess.h" #include "cmakeproject.h" #include "cmakeprojectconstants.h" #include "cmakeprojectmanagertr.h" @@ -1934,7 +1935,8 @@ void CMakeBuildSystem::runGenerator(Id id) { QTC_ASSERT(cmakeBuildConfiguration(), return); const auto showError = [](const QString &detail) { - Core::MessageManager::writeDisrupting(Tr::tr("cmake generator failed: %1.").arg(detail)); + Core::MessageManager::writeDisrupting( + addCMakePrefix(Tr::tr("cmake generator failed: %1.").arg(detail))); }; const CMakeTool * const cmakeTool = CMakeKitAspect::cmakeTool(buildConfiguration()->target()->kit()); @@ -1981,16 +1983,18 @@ void CMakeBuildSystem::runGenerator(Id id) const auto proc = new Process(this); connect(proc, &Process::done, proc, &Process::deleteLater); connect(proc, &Process::readyReadStandardOutput, this, [proc] { - Core::MessageManager::writeFlashing(QString::fromLocal8Bit(proc->readAllRawStandardOutput())); + Core::MessageManager::writeFlashing( + addCMakePrefix(QString::fromLocal8Bit(proc->readAllRawStandardOutput()).split('\n'))); }); connect(proc, &Process::readyReadStandardError, this, [proc] { - Core::MessageManager::writeDisrupting(QString::fromLocal8Bit(proc->readAllRawStandardError())); + Core::MessageManager::writeDisrupting( + addCMakePrefix(QString::fromLocal8Bit(proc->readAllRawStandardError()).split('\n'))); }); proc->setWorkingDirectory(outDir); proc->setEnvironment(buildConfiguration()->environment()); proc->setCommand(cmdLine); - Core::MessageManager::writeFlashing( - Tr::tr("Running in %1: %2.").arg(outDir.toUserOutput(), cmdLine.toUserOutput())); + Core::MessageManager::writeFlashing(addCMakePrefix( + Tr::tr("Running in %1: %2.").arg(outDir.toUserOutput(), cmdLine.toUserOutput()))); proc->start(); } diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp index 1294f597297..b2e0fd24342 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.cpp @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -58,7 +59,7 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & const QString msg = ::CMakeProjectManager::Tr::tr( "The source directory %1 is not reachable by the CMake executable %2.") .arg(parameters.sourceDirectory.displayName()).arg(cmakeExecutable.displayName()); - BuildSystem::appendBuildSystemOutput(msg + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({msg, QString()}).join('\n')); emit finished(failedToStartExitCode); return; } @@ -67,7 +68,7 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & const QString msg = ::CMakeProjectManager::Tr::tr( "The build directory %1 is not reachable by the CMake executable %2.") .arg(parameters.buildDirectory.displayName()).arg(cmakeExecutable.displayName()); - BuildSystem::appendBuildSystemOutput(msg + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({msg, QString()}).join('\n')); emit finished(failedToStartExitCode); return; } @@ -78,7 +79,7 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & if (!buildDirectory.exists()) { const QString msg = ::CMakeProjectManager::Tr::tr( "The build directory \"%1\" does not exist").arg(buildDirectory.toUserOutput()); - BuildSystem::appendBuildSystemOutput(msg + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({msg, QString()}).join('\n')); emit finished(failedToStartExitCode); return; } @@ -88,7 +89,7 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & const QString msg = ::CMakeProjectManager::Tr::tr( "CMake executable \"%1\" and build directory \"%2\" must be on the same device.") .arg(cmake->cmakeExecutable().toUserOutput(), buildDirectory.toUserOutput()); - BuildSystem::appendBuildSystemOutput(msg + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({msg, QString()}).join('\n')); emit finished(failedToStartExitCode); return; } @@ -117,13 +118,13 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & m_process->setEnvironment(parameters.environment); m_process->setStdOutLineCallback([this](const QString &s) { - BuildSystem::appendBuildSystemOutput(stripTrailingNewline(s)); + BuildSystem::appendBuildSystemOutput(addCMakePrefix(stripTrailingNewline(s))); emit stdOutReady(s); }); m_process->setStdErrLineCallback([this](const QString &s) { m_parser.appendMessage(s, StdErrFormat); - BuildSystem::appendBuildSystemOutput(stripTrailingNewline(s)); + BuildSystem::appendBuildSystemOutput(addCMakePrefix(stripTrailingNewline(s))); }); connect(m_process.get(), &Process::done, this, [this] { @@ -136,8 +137,9 @@ void CMakeProcess::run(const BuildDirParameters ¶meters, const QStringList & TaskHub::clearTasks(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); - BuildSystem::startNewBuildSystemOutput(::CMakeProjectManager::Tr::tr("Running %1 in %2.") - .arg(commandLine.toUserOutput(), buildDirectory.toUserOutput())); + BuildSystem::startNewBuildSystemOutput( + addCMakePrefix(::CMakeProjectManager::Tr::tr("Running %1 in %2.") + .arg(commandLine.toUserOutput(), buildDirectory.toUserOutput()))); ProcessProgress *progress = new ProcessProgress(m_process.get()); progress->setDisplayName(::CMakeProjectManager::Tr::tr("Configuring \"%1\"") @@ -170,14 +172,24 @@ void CMakeProcess::handleProcessDone(const Utils::ProcessResultData &resultData) } if (!msg.isEmpty()) { - BuildSystem::appendBuildSystemOutput(msg + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({msg, QString()}).join('\n')); TaskHub::addTask(BuildSystemTask(Task::Error, msg)); } emit finished(code); const QString elapsedTime = Utils::formatElapsedTime(m_elapsed.elapsed()); - BuildSystem::appendBuildSystemOutput(elapsedTime + '\n'); + BuildSystem::appendBuildSystemOutput(addCMakePrefix({elapsedTime, QString()}).join('\n')); +} + +QString addCMakePrefix(const QString &str) +{ + return QString("%1%2").arg(Constants::OUTPUT_PREFIX, str); +} + +QStringList addCMakePrefix(const QStringList &list) +{ + return Utils::transform(list, [](const QString &str) { return addCMakePrefix(str); }); } } // CMakeProjectManager::Internal diff --git a/src/plugins/cmakeprojectmanager/cmakeprocess.h b/src/plugins/cmakeprojectmanager/cmakeprocess.h index a49033c929b..c46a4ba84c9 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprocess.h +++ b/src/plugins/cmakeprojectmanager/cmakeprocess.h @@ -43,4 +43,7 @@ private: QElapsedTimer m_elapsed; }; +QString addCMakePrefix(const QString &str); +QStringList addCMakePrefix(const QStringList &list); + } // CMakeProjectManager::Internal diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h index f0da2a488ae..2e9a6ea58e0 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h @@ -71,5 +71,8 @@ const char TOOL_ID[] = "CMakeProjectManager.CMakeKitInformation"; // Data const char BUILD_FOLDER_ROLE[] = "CMakeProjectManager.data.buildFolder"; +// Output +const char OUTPUT_PREFIX[] = "[cmake] "; + } // namespace Constants } // namespace CMakeProjectManager diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 47515593186..4388aef0225 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -5,6 +5,7 @@ #include "cmakebuildsystem.h" #include "cmakekitaspect.h" +#include "cmakeprocess.h" #include "cmakeproject.h" #include "cmakeprojectconstants.h" #include "cmakeprojectmanagertr.h" @@ -411,8 +412,8 @@ void CMakeManager::buildFile(Node *node) bc->buildDirectory()); targetBase = relativeBuildDir / "CMakeFiles" / (targetNode->displayName() + ".dir"); } else if (!generator.contains("Makefiles")) { - Core::MessageManager::writeFlashing( - Tr::tr("Build File is not supported for generator \"%1\"").arg(generator)); + Core::MessageManager::writeFlashing(addCMakePrefix( + Tr::tr("Build File is not supported for generator \"%1\"").arg(generator))); return; } diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.cpp b/src/plugins/cmakeprojectmanager/fileapiparser.cpp index 3899cb45d39..943bebc1c18 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.cpp +++ b/src/plugins/cmakeprojectmanager/fileapiparser.cpp @@ -3,6 +3,7 @@ #include "fileapiparser.h" +#include "cmakeprocess.h" #include "cmakeprojectmanagertr.h" #include @@ -42,9 +43,10 @@ FilePath FileApiParser::cmakeReplyDirectory(const FilePath &buildDirectory) static void reportFileApiSetupFailure() { - Core::MessageManager::writeFlashing(Tr::tr("Failed to set up CMake file API support. %1 cannot " - "extract project information.") - .arg(QGuiApplication::applicationDisplayName())); + Core::MessageManager::writeFlashing( + addCMakePrefix(Tr::tr("Failed to set up CMake file API support. %1 cannot " + "extract project information.") + .arg(QGuiApplication::applicationDisplayName()))); } static std::pair cmakeVersion(const QJsonObject &obj) diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index fed19ca3d2b..7c27c2e5b53 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -303,8 +303,9 @@ void FileApiReader::makeBackupConfiguration(bool store) replyPrev.removeRecursively(); QTC_CHECK(!replyPrev.exists()); if (!reply.renameFile(replyPrev)) - Core::MessageManager::writeFlashing(Tr::tr("Failed to rename \"%1\" to \"%2\".") - .arg(reply.toString(), replyPrev.toString())); + Core::MessageManager::writeFlashing( + addCMakePrefix(Tr::tr("Failed to rename \"%1\" to \"%2\".") + .arg(reply.toString(), replyPrev.toString()))); } FilePath cmakeCacheTxt = m_parameters.buildDirectory.pathAppended("CMakeCache.txt"); @@ -315,8 +316,8 @@ void FileApiReader::makeBackupConfiguration(bool store) if (cmakeCacheTxt.exists()) if (!FileUtils::copyIfDifferent(cmakeCacheTxt, cmakeCacheTxtPrev)) Core::MessageManager::writeFlashing( - Tr::tr("Failed to copy \"%1\" to \"%2\".") - .arg(cmakeCacheTxt.toString(), cmakeCacheTxtPrev.toString())); + addCMakePrefix(Tr::tr("Failed to copy \"%1\" to \"%2\".") + .arg(cmakeCacheTxt.toString(), cmakeCacheTxtPrev.toString()))); } void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &configurationArguments)