diff options
author | hjk <hjk@qt.io> | 2020-01-15 08:56:11 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-20 10:11:59 +0000 |
commit | 0334b6e491a3688f2455e075595afde87b8f76af (patch) | |
tree | cc63a1fae976a46ea6ddc5d2cb956d1d7ac37516 /src/plugins/qmakeprojectmanager | |
parent | 7e19d1af7c356dae703e110f9d24b75429ef8fb5 (diff) |
ProjectManager: Add convenience Task subclasses
For Compile, BuildSystem and Deployment. Unclutters user code and reduces
binary size.
Change-Id: Ia18e917bb411754162e9f4ec6056d752a020bb50
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/qmakeprojectmanager')
5 files changed, 44 insertions, 61 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index 08ad2926ada..0d9a8251275 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -769,9 +769,8 @@ QmakeBuildConfigurationFactory::QmakeBuildConfigurationFactory() if (QmakeSettings::warnAgainstUnalignedBuildDir() && !QmakeBuildConfiguration::isBuildDirAtSafeLocation( QFileInfo(projectPath).absoluteDir().path(), QDir(buildDir).absolutePath())) { - issues.append(Task(Task::Warning, QmakeBuildConfiguration::unalignedBuildDirWarning(), - Utils::FilePath(), -1, - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); + issues.append(BuildSystemTask(Task::Warning, + QmakeBuildConfiguration::unalignedBuildDirWarning())); } return issues; }); diff --git a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp index 75ecbdf9aec..be619435b44 100644 --- a/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp +++ b/src/plugins/qmakeprojectmanager/qmakekitinformation.cpp @@ -99,11 +99,10 @@ Tasks QmakeKitAspect::validate(const Kit *k) const const QString mkspec = QmakeKitAspect::mkspec(k); if (!version && !mkspec.isEmpty()) - result << Task(Task::Warning, tr("No Qt version set, so mkspec is ignored."), - FilePath(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); + result << BuildSystemTask(Task::Warning, tr("No Qt version set, so mkspec is ignored.")); if (version && !version->hasMkspec(mkspec)) - result << Task(Task::Error, tr("Mkspec not found for Qt version."), - FilePath(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); + result << BuildSystemTask(Task::Error, tr("Mkspec not found for Qt version.")); + return result; } diff --git a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp index c6c2e6a6dee..83809bc77ad 100644 --- a/src/plugins/qmakeprojectmanager/qmakemakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakemakestep.cpp @@ -218,8 +218,7 @@ void QmakeMakeStep::finish(bool success) && QmakeSettings::warnAgainstUnalignedBuildDir()) { const QString msg = tr("The build directory is not at the same level as the source " "directory, which could be the reason for the build failure."); - emit addTask(Task(Task::Warning, msg, Utils::FilePath(), -1, - ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); + emit addTask(BuildSystemTask(Task::Warning, msg)); } MakeStep::finish(success); } diff --git a/src/plugins/qmakeprojectmanager/qmakeparser.cpp b/src/plugins/qmakeprojectmanager/qmakeparser.cpp index ed6abf5ca75..46ad10a0a00 100644 --- a/src/plugins/qmakeprojectmanager/qmakeparser.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeparser.cpp @@ -29,8 +29,10 @@ #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/buildmanager.h> -using namespace QmakeProjectManager; -using ProjectExplorer::Task; +using namespace ProjectExplorer; +using namespace Utils; + +namespace QmakeProjectManager { QMakeParser::QMakeParser() : m_error(QLatin1String("^(.+):(\\d+):\\s(.+)$")) { @@ -57,39 +59,29 @@ void QMakeParser::stdError(const QString &line) type = Task::Warning; else if (description.startsWith(QLatin1String("error:"), Qt::CaseInsensitive)) type = Task::Error; - Task task = Task(type, - description, - Utils::FilePath::fromUserInput(fileName), - m_error.cap(2).toInt() /* line */, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - emit addTask(task, 1); + emit addTask(BuildSystemTask(type, + description, + FilePath::fromUserInput(fileName), + m_error.cap(2).toInt() /* line */), + 1); return; } if (lne.startsWith(QLatin1String("Project ERROR: ")) || lne.startsWith(QLatin1String("ERROR: "))) { const QString description = lne.mid(lne.indexOf(QLatin1Char(':')) + 2); - Task task = Task(Task::Error, - description, - Utils::FilePath() /* filename */, - -1 /* linenumber */, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - emit addTask(task, 1); + emit addTask(BuildSystemTask(Task::Error, description), 1); return; } if (lne.startsWith(QLatin1String("Project WARNING: ")) || lne.startsWith(QLatin1String("WARNING: "))) { const QString description = lne.mid(lne.indexOf(QLatin1Char(':')) + 2); - Task task = Task(Task::Warning, - description, - Utils::FilePath() /* filename */, - -1 /* linenumber */, - Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); - emit addTask(task, 1); + emit addTask(BuildSystemTask(Task::Warning, description), 1); return; } IOutputParser::stdError(line); } +} // QmakeProjectManager // Unit tests: @@ -101,11 +93,11 @@ void QMakeParser::stdError(const QString &line) # include "projectexplorer/outputparser_test.h" using namespace QmakeProjectManager::Internal; -using namespace ProjectExplorer; + +namespace QmakeProjectManager { void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() { - const Core::Id categoryBuildSystem = Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM); QTest::addColumn<QString>("input"); QTest::addColumn<OutputParserTester::Channel>("inputChannel"); QTest::addColumn<QString>("childStdOutLines"); @@ -130,10 +122,8 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Error, - QLatin1String("undefined file"), - Utils::FilePath(), -1, - categoryBuildSystem)) + << BuildSystemTask(Task::Error, + "undefined file")) << QString(); QTest::newRow("qMake Parse Error") @@ -141,11 +131,10 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Error, - QLatin1String("Parse Error ('sth odd')"), - Utils::FilePath::fromUserInput(QLatin1String("e:\\project.pro")), - 14, - categoryBuildSystem)) + << BuildSystemTask(Task::Error, + "Parse Error ('sth odd')", + FilePath::fromUserInput("e:\\project.pro"), + 14)) << QString(); QTest::newRow("qMake warning") @@ -153,10 +142,8 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Warning, - QLatin1String("bearer module might require ReadUserData capability"), - Utils::FilePath(), -1, - categoryBuildSystem)) + << BuildSystemTask(Task::Warning, + "bearer module might require ReadUserData capability")) << QString(); QTest::newRow("qMake warning 2") @@ -164,10 +151,8 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Warning, - QLatin1String("Failure to find: blackberrycreatepackagestepconfigwidget.cpp"), - Utils::FilePath(), -1, - categoryBuildSystem)) + << BuildSystemTask(Task::Warning, + "Failure to find: blackberrycreatepackagestepconfigwidget.cpp")) << QString(); QTest::newRow("qMake warning with location") @@ -175,22 +160,21 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers_data() << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Warning, - QLatin1String("Unescaped backslashes are deprecated."), - Utils::FilePath::fromUserInput(QLatin1String("e:\\QtSDK\\Simulator\\Qt\\msvc2008\\lib\\qtmaind.prl")), 1, - categoryBuildSystem)) + << BuildSystemTask(Task::Warning, + "Unescaped backslashes are deprecated.", + FilePath::fromUserInput("e:\\QtSDK\\Simulator\\Qt\\msvc2008\\lib\\qtmaind.prl"), 1)) << QString(); + QTest::newRow("moc note") << QString::fromLatin1("/home/qtwebkithelpviewer.h:0: Note: No relevant classes found. No output generated.") << OutputParserTester::STDERR << QString() << QString() << (Tasks() - << Task(Task::Unknown, - QLatin1String("Note: No relevant classes found. No output generated."), - Utils::FilePath::fromUserInput(QLatin1String("/home/qtwebkithelpviewer.h")), 0, - categoryBuildSystem) - ) - << QString();} + << BuildSystemTask(Task::Unknown, + "Note: No relevant classes found. No output generated.", + FilePath::fromUserInput("/home/qtwebkithelpviewer.h"), 0)) + << QString(); +} void QmakeProjectManagerPlugin::testQmakeOutputParsers() { @@ -207,4 +191,7 @@ void QmakeProjectManagerPlugin::testQmakeOutputParsers() tasks, childStdOutLines, childStdErrLines, outputLines); } + +} // QmakeProjectManager + #endif diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 7c197f90d4a..f780541f890 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -1228,14 +1228,13 @@ void QmakeBuildSystem::testToolChain(ToolChain *tc, const FilePath &path) const return; } TaskHub::addTask( - Task(Task::Warning, + BuildSystemTask(Task::Warning, QCoreApplication::translate( "QmakeProjectManager", "\"%1\" is used by qmake, but \"%2\" is configured in the kit.\n" "Please update your kit (%3) or choose a mkspec for qmake that matches " "your target environment better.") - .arg(path.toUserOutput()).arg(expected.toUserOutput()).arg(k->displayName()), - Utils::FilePath(), -1, ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); + .arg(path.toUserOutput()).arg(expected.toUserOutput()).arg(k->displayName()))); m_toolChainWarnings.insert(pair); } |