diff --git a/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h b/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h index 74b33b72cc7..f1b1a6eefc7 100644 --- a/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h +++ b/src/plugins/mesonprojectmanager/mesoninfoparser/buildoptions.h @@ -249,8 +249,8 @@ protected: struct UnknownBuildOption : BuildOption { - QVariant value() const override { return "Unknown option"; } - QString valueStr() const override { return "Unknown option"; } + QVariant value() const override { return {"Unknown option"}; } + QString valueStr() const override { return {"Unknown option"}; } void setValue(const QVariant &) override {} Type type() const override { return Type::unknown; } BuildOption *copy() const override { return new UnknownBuildOption{*this}; } diff --git a/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.cpp b/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.cpp index 19b52318183..6cd631d4640 100644 --- a/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.cpp +++ b/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.cpp @@ -27,6 +27,19 @@ #include namespace MesonProjectManager { namespace Internal { + +struct WarningRegex +{ + const int lineCnt; + const QRegularExpression regex; +}; + +static const WarningRegex multiLineWarnings[] = { + WarningRegex{ 3, QRegularExpression{R"!(WARNING: Unknown options:)!"}}, + WarningRegex{ 2, QRegularExpression{ + R"!(WARNING: Project specifies a minimum meson_version|WARNING: Deprecated features used:)!"}}, + WarningRegex{ 1, QRegularExpression{R"!(WARNING: )!"}}}; + inline void MesonOutputParser::addTask(ProjectExplorer::Task task) { #ifndef MESONPARSER_DISABLE_TASKS_FOR_TESTS // small hack to allow unit testing without the banana/monkey/jungle @@ -100,7 +113,7 @@ Utils::OutputLineParser::Result MesonOutputParser::processErrors(const QString & Utils::OutputLineParser::Result MesonOutputParser::processWarnings(const QString &line) { - for (const auto &warning : m_multiLineWarnings) { + for (const auto &warning : multiLineWarnings) { const auto match = warning.regex.match(line); if (match.hasMatch()) { m_remainingLines = warning.lineCnt; diff --git a/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.h b/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.h index 11d6942fb23..49eff4fb64b 100644 --- a/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.h +++ b/src/plugins/mesonprojectmanager/project/outputparsers/mesonoutputparser.h @@ -34,20 +34,8 @@ namespace Internal { class MesonOutputParser final : public ProjectExplorer::OutputTaskParser { Q_OBJECT - struct WarningRegex - { - const int lineCnt; - const QRegularExpression regex; - }; const QRegularExpression m_errorFileLocRegex{R"((^.*meson.build):(\d+):(\d+): ERROR)"}; const QRegularExpression m_errorOptionRegex{R"!(ERROR: Value)!"}; - const std::array m_multiLineWarnings{ - WarningRegex{3, QRegularExpression{R"!(WARNING: Unknown options:)!"}}, - WarningRegex{ - 2, - QRegularExpression{ - R"!(WARNING: Project specifies a minimum meson_version|WARNING: Deprecated features used:)!"}}, - WarningRegex{1, QRegularExpression{R"!(WARNING: )!"}}}; int m_remainingLines = 0; QStringList m_pending; void pushLine(const QString &line);